affichage de résutats surprenants !!!

affichage de résutats surprenants !!! - VB/VBA/VBS - Programmation

Marsh Posté le 03-11-2018 à 06:58:21    

Bonjour à tous,
 
Je suis "tombé" par hasard sur des résultats curieux! lors de l'écriture de macro
 
Je serai curieux de connaitre le pourquoi du comment..
 
Je suis désolé mais n'étant pas un habitué de ce site je ne vois pas le moyen pour  mettre mon code en  encadré
Précision Je travaille avec Excel 97 .Oui c'est peut-être de la préhistoire, mais à l'heure ou des laboratoires cherchent à cloner des dinosaures..... ;)  
 
Mes remerciements a ceux qui solutionneront mon énigme
 
Mon code:
 
Option Base 1
Sub toto()
Dim variable_1 As Integer, variable_2 As String, variable_3 As String, Mafeuille As Worksheet, i As Integer
Set Mafeuille = ThisWorkbook.Worksheets("Feuil1" )
variable_1 = 1789
Mafeuille.Cells(1, 1) = "(" & variable_1 & " )"  'Résultat affiché: -1789
Mafeuille.Cells(2, 1) = "(" & CStr(variable_1) & " )" 'Résultat affiché: -1789
 
variable_2 = 1789
Mafeuille.Cells(3, 1) = "("e; & variable_2 & " )" 'Résultat affiché: -1789
 
variable_3 = "(" & variable_1 & " )"
Mafeuille.Cells(4, 1) = variable_3   'Résultat affiché: -1789
For i = 1 To Len(variable_3)
Mafeuille.Cells(4, i + 1) = Mid(variable_3, i, 1) 'Résultat affiché: ( 1 7 8 9 )
Next i
 
Mafeuille.Cells(5, 1) = "(" & 1789 & " )"  'Résultat affiché: -1789
End Sub

Reply

Marsh Posté le 03-11-2018 à 06:58:21   

Reply

Marsh Posté le 03-11-2018 à 09:33:06    

En fait, quand tu mets un nombre entre parenthèse directement comme ça, cela veut dire que tu indiques un nombre négatif (c'est une histoire de convention dans certains documents comptables...). Si tu veux changer ce comportement, il faut aller dans le panneaux de configuration de Windows :
"Panneaux de configuration" > "Modifier le format des nombres, des dates et de l'heure" > "Options régionales" > "Personnaliser ..." > "Symbole monétaire" > "Format négatif"  
 
 
Sinon (et c'est le mieux) tu veux juste afficher ton nombre entre parenthèse, il faut que tu fasses :  
Mafeuille.Cells(5, 1) = "=(" & 1789 & " )"
ou bien
Mafeuille.Cells(5, 1) = "'(" & 1789 & " )"


Message édité par antac le 03-11-2018 à 09:33:28
Reply

Marsh Posté le 03-11-2018 à 16:37:48    

Eh bien je tombe de haut !! j'ai commencé l'informatique avec les cartes perforées, pratiqué FORTRAN IV, Basic et autres langages, et jamais je n'ai lu, ni entendu parlé de ce fondamental !
Comme Quoi quelque soit le niveau, on a toujours des carences !
En tous cas merci infiniment car je n'aurai jamais pu imaginer seul la source de ce problème.

Reply

Marsh Posté le 04-11-2018 à 22:32:21    

C'est surtout valable sur Excel. Mais je peux comprendre que c'est troublant

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed