Copier des nombres précédés d'une apostrophe
Bonjour à tous,
J'ai un petit problème lorsque j'essaie de copier des cellules contenant des nombres précédés d'une apostrophe.
Grosso modo j'ai un fichier qui me sert à comparer des codes clients présents dans deux fichiers.
Si dans mon second fichier je détecte des codes clients absents dans mon premier fichier, je copie les codes et les ajoute dans mon premier fichier.
Jusque la rien de fou.
Sauf que j'ai un problème. Dans mon second fichier j'ai des codes comme '401 par exemple. Je m'attends donc à obtenir la valeur '401 dans mon premier fichier. Sauf que j'obtiens 401. Le pire c'est que parfois j'obtiens bien le code précédé de l'apostrophe.
Voici un exemple mon fichier 2
Le résultat dans mon fichier 1
et le résultat pour le code suivant le '444.
J'avoue ne pas comprendre pourquoi le même code me sort deux résultats différents.
Ci-joint le code en question.
Sub verif_client()
Dim clients, totparam, i, y As Integer
Dim findstring As String
Dim rngFound As Range
Application.ScreenUpdating = False
y = 0
clients = Sheets(1).UsedRange.Rows.Count
totparam = Sheets("Param").UsedRange.Rows.Count
For i = 4 To clients - 1
findstring = Trim(Sheets(1).Cells(i, 1).Value)
With Worksheets("Param").Cells
Set rngFound = .Find(findstring, LookIn:=xlValues)
If Not rngFound Is Nothing Then
'something is found
Else
customer = customer + 1
wbbascule.Sheets("Ideal").Cells(customer, 1).Value = findstring
y = y + 1
End If
End With
Next
If y <> 0 Then GoTo newcustomer
Application.ScreenUpdating = True
Exit Sub
newcustomer:
MsgBox (y & " nouveaux clients détectés et on été ajoutés à l'onglet Param de la macro.")
'Workbooks(source).Close SaveChanges:=False
wbbascule.Save
End
End Sub
Merci d'avance.
Bonjour,
Tenter de remplacer
wbbascule.Sheets("Ideal").Cells(customer, 1).Value = findstring
par
wbbascule.Sheets("Ideal").Cells(customer, 1).Value = "'" & findstring
ça évite que ça convertisse la valeur numérique en nombre.
Bonne nouvelle ca marche.
Merci énormément.
Par contre je ne comprends pas pourquoi je n'avais pas le même résultat pour chaque client ?
De ce que j'en voie, le seul moment où la valeur est mise à jour c'est ici:
wbbascule.Sheets("Ideal").Cells(customer, 1).Value = findstring
Donc quand c'est mis à jour via cette ligne de code ça sort le nombre et Excel, je pense, met à jour la valeur sous forme de nombre.
D'ailleurs petite question, ce ne serait pas mieux de stocker tous les nombres sous forme de nombre? au lieu de rajouter des ' devant?
Dans les cas où ce n'est pas changé, je pense que rien n'est trouvé et cette ligne de code n'est sûrement pas exécutée.