Bonjour,
A mon tour d'ouvrir un sujet car j'essayai de trouver une solution pour ce sujet, mais je me suis trouvé confronté à une incompréhension quand au résultat obtenu.
Pour faire court dans le classeur joint de trouve en A1 la donnée "68.95<br/>125.65".
Je cherchai à extraire la partie de gauche avant le <br/> soit 68.95. Par formule pas de soucis j'obtiens bien le résultat :
=GAUCHE(A1;CHERCHE("<br/>";A1)-1)
Cependant, par VBA, en utilisant la même logique, je me retrouve avec le résultat 68,95, donc ma valeur textuelle convertie automatiquement en nombre :
Sub TRANSFO()
With ThisWorkbook.Worksheets(1)
' .Range("A:A").NumberFormat = "@"
.Cells(1, 1) = Left(.Cells(1, 1), InStr(1, .Cells(1, 1), "<br/>") - 1)
End With
End Sub
J'ai réussi à contourner le problème en modifiant le typage de ma colonne via la ligne en commentaire, mais pourquoi la fonction GAUCHE formule EXCEL ne renvoi pas le même type de donnée que la fonction LEFT VBA ? Je sais que GAUCHE/DROITE/STXT renvoie une donnée textuelle mais alors pourquoi n'est pas le cas de LEFT (et je suppose RIGHT et MID ..)
Je reste perplexe, ce n'est peut être pas un gros problème mais ça me tracasse beaucoup dans la logique d'interprétation VBA ..
Merci à tous pour vos éclaircissements.
Cdlt,