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
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. 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
    1. 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
      1. 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
      2. 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