Bonjour,
J'explique mon problème : Je dois vérifier qu'un nombre constitué de 7 chiffres correspond bien à deux autres colonnes (colonne 1 et 2).
Le problème étant que ce nombre est "plus ou moins" la concaténation des deux autres (récupération toujours du second, troisième et quatrième chiffre du nombre colonne 1 en début et en fin récupération de tous les chiffres du nombre colonne 2)... Au milieu des deux, il y a un certain nombre de zéros.
Le problème est que le nombre en colonne 2 peut varier (allant de 1 à 3 chiffres)... Ce nombre variant en fonction des lignes, mon nombre de zéros aussi (puisqu'en tout, il me faut 7 chiffres).
Un exemple :
nombre colonne 1 : 1302
nombre colonne 2 : 8
Nombre colonne 39 : 3020008
Autre exemple :
nombre colonne 1 : 2513
nombre colonne 2 : 102
nombre colonne 39 : 5130102
J'ai créé le code suivant :
Celui-ci ne marche que quand il ne faut rajotuer qu'un seul 0.
Il y aurait donc deux moyens de me débloquer :
1) Me dire pourquoi quand je met des guillemets ça ne marche pas (et comment je peux faire pour que ça marche en gardant mon code en l'état).
2) Me dire comment je pourrais faire pour n'avoir qu'une seule boucle if (c'est à dire s'il y a moyen que je mette une ligne du genre : Cells(i, 39) = Mid(Cells(i, 1), 2, lenght) & 7-3-lenght*0 & Cells(i, 2) (mettre un certain nombre de zéros)
Quelqu'un saurait-il m'aider ? Cela m'aiderait beaucoup.
Merci d'avance
J'explique mon problème : Je dois vérifier qu'un nombre constitué de 7 chiffres correspond bien à deux autres colonnes (colonne 1 et 2).
Le problème étant que ce nombre est "plus ou moins" la concaténation des deux autres (récupération toujours du second, troisième et quatrième chiffre du nombre colonne 1 en début et en fin récupération de tous les chiffres du nombre colonne 2)... Au milieu des deux, il y a un certain nombre de zéros.
Le problème est que le nombre en colonne 2 peut varier (allant de 1 à 3 chiffres)... Ce nombre variant en fonction des lignes, mon nombre de zéros aussi (puisqu'en tout, il me faut 7 chiffres).
Un exemple :
nombre colonne 1 : 1302
nombre colonne 2 : 8
Nombre colonne 39 : 3020008
Autre exemple :
nombre colonne 1 : 2513
nombre colonne 2 : 102
nombre colonne 39 : 5130102
J'ai créé le code suivant :
Code:
Sub test_lot()
For i = 4 To 2181
lenght = Len(Cells(i, 2))
If lenght = 1 Then
If Cells(i, 39) = Mid(Cells(i, 1), 2, lenght) & "000" & Cells(i, 2) Then
Cells(i, 40) = Cells(i, 39)
End If
ElseIf lenght = 2 Then
If Cells(i, 39) = Mid(Cells(i, 1), 2, lenght) & "00" & Cells(i, 2) Then
Cells(i, 40) = Cells(i, 39)
End If
ElseIf lenght = 3 Then
If Cells(i, 39) = Mid(Cells(i, 1), 2, lenght) & 0 & Cells(i, 2) Then
Cells(i, 40) = Cells(i, 39)
End If
End If
Next i
End Sub
Celui-ci ne marche que quand il ne faut rajotuer qu'un seul 0.
Il y aurait donc deux moyens de me débloquer :
1) Me dire pourquoi quand je met des guillemets ça ne marche pas (et comment je peux faire pour que ça marche en gardant mon code en l'état).
2) Me dire comment je pourrais faire pour n'avoir qu'une seule boucle if (c'est à dire s'il y a moyen que je mette une ligne du genre : Cells(i, 39) = Mid(Cells(i, 1), 2, lenght) & 7-3-lenght*0 & Cells(i, 2) (mettre un certain nombre de zéros)
Quelqu'un saurait-il m'aider ? Cela m'aiderait beaucoup.
Merci d'avance