Soucis boucle dans excel
Résolu
aexial
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
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
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:
- Soucis boucle dans excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
3 réponses
Salut,
C'est pas mal pour un début...
Bon à quoi correspond ton i dans :
Cells(x, 3) = Cells(x, i)
Essaye ceci :
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...
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...
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
Peut etre est ce du au cas ou il n'y a pas de réponse pour la condition if?
Merci
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...
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...
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
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
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