Macro besoin d'une petite aide ...

mezgo37 Messages postés 8 Statut Membre -  
mezgo37 Messages postés 8 Statut Membre -
bonjour
J'ai un petit probleme de prog avec un macro qui m'avait été fait par XJL
J'ai un tabeau avec plus de 250 numero de tel a 4 chiffres le parc téléphonique s'agrandi et on rajoute sur chaque colone un chiffre supplementaire (le 8)

j'ai plusieur ligne ou je dois rajouter le "8" le probleme rencontré que sur mon fichier des modif avait deja était fait manuellement donc certainne case on deja 5 chiffre ex: 81234 ma macro rajoute a celle là un 8 quand meme alors qu'elle n'a besoin. car elle a dejà était modifier manullement là est mon probleme
l'autre pb est que j'arrive pas a lancer les 2 marcros en meme temp. enfin c'est un detaille

si quelqu'un peu m'aider svp si jamais le bosse de la macro XJL est dans le coin pour aider ;))

Sub ajout1()

For i = 1 To 100
If Cells(i, 3).Value <> "" Then
If IsNumeric(Cells(i, 3).Value) = True Then
Cells(i, 3).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
Next i
End Sub

Sub ajout2()

For i = 1 To 100
If Cells(i, 20).Value <> "" Then
If IsNumeric(Cells(i, 20).Value) = True Then
Cells(i, 20).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
Next i
End Sub

merci d'avance
A voir également:

1 réponse

xjl Messages postés 232 Statut Membre 183
 
Salut,

petite précision: si tu crois que je suis un pro de la macro, tu me surestime grandement ! ;-)

Ensuite pour ton problème: si j'ai bien compris, t'as des numéros dans les colonnes 3 et 20, ok, mais tu peux mettre les deux boucles dans la même macro...

Sub ajout1()

For i = 1 To 100
If Len(Cells(i, 3).Value) = 4 Then
If IsNumeric(Cells(i, 3).Value) = True Then
Cells(i, 3).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
Next i

For i = 1 To 100
If Len(Cells(i, 20).Value) = 4 Then
If IsNumeric(Cells(i, 20).Value) = True Then
Cells(i, 20).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
Next i
End Sub

Et voilà, ça devrait marcher, en fait, au lieu de vérifier si une case est vide, tu vérifies sur la longueur de la chaine de caractères qu'elle contient est égale à 4, puis tu vérifies qu'elle est numérique et seulement si ces deux conditions sont remplies, alors tu rajoutes un 8 devant ! J'espère que ça te vas ?! ;-)
0
mezgo37 Messages postés 8 Statut Membre
 
Merci XJL en plus d'etre un Pro pour la prog tu es modeste!

ca marche!


Mais mais mais ... j'ai encore une contrainte sur mon fichier Je dois rajout maintenant un "8" que au cellule qui commence par le nombre 6 ou 7 en avec les meme condition que avant

merci encore xjl si tu peu m'aider
0
xjl Messages postés 232 Statut Membre 183 > mezgo37 Messages postés 8 Statut Membre
 
Bon, j'ai honte de mettre un code aussi moche (aussi peu optimisé) mais j'ai un gros problème avec les or (d'ailleurs si qqun sait pourquoi ça marche pas je suis preneur), mais ce code fonctionne et si ça peut t'aider...

Sub ajout1()


For i = 1 To 100
If Len(Cells(i, 3).Value) = 4 Then
If IsNumeric(Cells(i, 3).Value) = True Then
If Left(Cells(i, 3).Value, 1) = 6 Then
Cells(i, 3).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
End If
Next i

For i = 1 To 100
If Len(Cells(i, 3).Value) = 4 Then
If IsNumeric(Cells(i, 3).Value) = True Then
If Left(Cells(i, 3).Value, 1) = 7 Then
Cells(i, 3).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
End If
Next i

For i = 1 To 100
If Len(Cells(i, 20).Value) = 4 Then
If IsNumeric(Cells(i, 20).Value) = True Then
If Left(Cells(i, 20).Value, 1) = 6 Then
Cells(i, 20).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
End If
Next i

For i = 1 To 100
If Len(Cells(i, 20).Value) = 4 Then
If IsNumeric(Cells(i, 20).Value) = True Then
If Left(Cells(i, 20).Value, 1) = 7 Then
Cells(i, 20).Select
ActiveCell.Value = "8" & ActiveCell.Value
End If
End If
End If
Next i

End Sub
0
mezgo37 Messages postés 8 Statut Membre > xjl Messages postés 232 Statut Membre
 
il est tres bien le code le plus important et qu'il fonctionne

JE TE REMERCIE ENCORE

;-)
0