Soucis boucle dans excel

Résolu
aexial -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
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

A voir également:

3 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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...
0
aexial
 
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
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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...
0
aexial
 
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
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
0
aexial
 
ca marche!
merci bcp d'avoir pris du temps decu..pour que je sache à quoi correspond le notion de .End(xlUp).Row ?
Merci
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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.
0