Soucis boucle dans excel

Résolu
Bonjour,
petit soucis sur Excel sur une macro..je débute donc je galère.
Je m'explique.
J'ai un fichier excel sur lequel j'ai une centaine de nom sur la colonne A et prénom en colonne B et j'ai rajouter sur la colonne G, H et I les noms et prénoms et adresse de mille personne environs..le but étant avec la macro de rajouter en colonne C l'adresse des personnes (colonne A et B)..je supprimerais ensuite à manuellement les colonnes G,H et I
en cherchant j'ai triffouillé une macro qui ne marche pas...j'ai testé sur les 11 lignes..quelqu'un a - t - il une idée?
Merci d'avance

code:

Sub Test_V01()
Dim x As Integer
'
For x = 2 To 11
'
if Cells(x, 1).value = Cells(x, 7).value And Cells(x, 2).value = Cells(x, 8).value

Then
Cells(x, 3) = Cells(x, i)
Else: Cells(x, 3) = vide
End If
Next x

End Sub

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,
    C'est pas mal pour un début...
    Bon à quoi correspond ton i dans :
    Cells(x, 3) = Cells(x, i)
    Essaye ceci :
    Sub Test_V01() 
    Dim Lign As Integer 
    For Lign = 2 To 11 
        If Cells(Lign, 1).value = Cells(Lign, 7).value And Cells(Lign, 2).value = Cells(Lign, 8).value Then 
            Cells(Lign, 3).Value = Cells(Lign, 9).Value 
        End If 
    Next Lign 
    End Sub 


    1- j'ai remplacé ta variable x par Lign. Motif : il est préférable d'éviter les variables d'une lettre, minimum 3 caractères (conseil d'un pro sévissant sur ce forum)
    2- ton Else Cells(x, 3) = vide est incorrect et inutile. Donc supprimé.
    3- Si, ne sachant pas, le nom et prénom contenu en A10 et B10 se retrouve en G152 et H152... Comment ta macro réagit? elle l'ignore. Si tu as ce genre de cas, dis le...
    Essaye et dis...
    1. merci pour l'aide..en fait le I correspondait à la colonne..tu as bien modifié en 9..par contre ta macro ne plante pas mais il ne se passe rien du tout..

      Peut etre est ce du au cas ou il n'y a pas de réponse pour la condition if?
      Merci
      1. Modérateur
        La macro fonctionne impecc... Du feu de dieu!!!!
        C'est juste que tu n'as pas tout expliqué... En fait, tes noms et prénoms ne sont pas situés sur les mêmes lignes.
        Exemple :
        A2 : DUPOND, B2 : Marcel, G2 : DUPOND, H2 : Marcel, I2 : 8 rue Rose
        Toi, à la place tu as :
        A2 : DUPOND, B2 : Marcel, G121 : DUPOND, H121 : Marcel, I121 : 8 rue Rose

        C'est cela? ... ou pas...
    2. oui comme tu dis j'ai pas tout expliqué..
      par exemple sur la colonne A et B je vais avoir DUPOND (colonne A) et michel (colonne B) et rien en c..sur la colonne G et H on retrouvera ce dupond michel mais comme tu l'as compris il ne sera pas du tout dans la meme ligne..le but est donc de mettre les infos de ce dupond michel colonne I (c'est l'adresse) dans la colonne C
      Le but étant de ne pas faire le tric à la main car j'ai en gros 200 noms en colonne A et B et plus de 1000 en G et H.
      Désolé si je ne suis pas clair

      En tout cas merci de te creuser la tete lol
      1. Modérateur
        Essaye ceci :
        Sub test()
        Dim Lign As Integer, LignRech As Integer
        For Lign = 2 To Range("A65536").End(xlUp).Row
            For LignRech = 2 To Range("G65536").End(xlUp).Row
                If Cells(Lign, 1).Value = Cells(LignRech, 7).Value And Cells(Lign, 2).Value = Cells(LignRech, 8).Value Then
                    Cells(Lign, 3).Value = Cells(LignRech, 9).Value
                    Exit For
                End If
            Next LignRech
        Next Lign
        End Sub
      2. ca marche!
        merci bcp d'avoir pris du temps decu..pour que je sache à quoi correspond le notion de .End(xlUp).Row ?
        Merci
      3. Modérateur
        Row = ligne
        End(xlUp) parcourt la colonne de la fin vers le haut.
        Donc : Range("A65536").End(xlUp).row = numéro de la dernière cellule remplie de la colonne A.