Macro de recherche excel
vautour
-
CapitainCo Messages postés 127 Statut Membre -
CapitainCo Messages postés 127 Statut Membre -
Bonjour,
J'ai fait pas mal de VB l'annee passee mais les macro c'est la premiere fois ...
En clair celle ci devrai copier le contenu d'une cellule de la "sheet1", et comparer ce contenu a une colone de la feuille "HP", pour ensuite copier certaine cellule de la ligne trouvee pour les replacer dans la "sheet1".
J'ai ecrit ce code sur base de ce que j'ai lu sur le net.
n = 26
Do While n < 600
Sheets("sheet1").Select
Cells(n, 4).Select
Selection.Copy
Sheets("HP").Select
i = 0
Do While Sheets("HP").Cells(i, 7) <> Sheets("sheet1").Cells(n, 4)
i = i + 1
Loop
Sheets("HP").Select
Cells(i, 3).Select
Selection.Copy
Sheets("sheet1").Select
Cells(n, 8).Select
ActiveSheet.Paste
n = n + 1
Loop
Merci d'avance au futur lecteur ou lectrice ;-)
J'ai fait pas mal de VB l'annee passee mais les macro c'est la premiere fois ...
En clair celle ci devrai copier le contenu d'une cellule de la "sheet1", et comparer ce contenu a une colone de la feuille "HP", pour ensuite copier certaine cellule de la ligne trouvee pour les replacer dans la "sheet1".
J'ai ecrit ce code sur base de ce que j'ai lu sur le net.
n = 26
Do While n < 600
Sheets("sheet1").Select
Cells(n, 4).Select
Selection.Copy
Sheets("HP").Select
i = 0
Do While Sheets("HP").Cells(i, 7) <> Sheets("sheet1").Cells(n, 4)
i = i + 1
Loop
Sheets("HP").Select
Cells(i, 3).Select
Selection.Copy
Sheets("sheet1").Select
Cells(n, 8).Select
ActiveSheet.Paste
n = n + 1
Loop
Merci d'avance au futur lecteur ou lectrice ;-)
A voir également:
- Macro de recherche excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Si ou excel - Guide
3 réponses
je ne suis pas sur d'avoir saisie tout ton probleme mais test ca et tu me dira si c'est ce que tu chercher
n = 26
Do While n < 600
Sheets(1).Select
Cells(n, 4).Select
Selection.Copy
Sheets("HP").Select
i = 1
y = 1
Do While Sheets("HP").Cells(y, 7) <> ""
If Sheets("HP").Cells(i, 7) <> Sheets(1).Cells(n, 4) Then
i = i + 1
End If
y = y + 1
Loop
Sheets("HP").Cells(i, 3).Select
Selection.Copy
Sheets(1).Select
Cells(n, 8).Select
ActiveSheet.Paste
n = n + 1
Loop
n = 26
Do While n < 600
Sheets(1).Select
Cells(n, 4).Select
Selection.Copy
Sheets("HP").Select
i = 1
y = 1
Do While Sheets("HP").Cells(y, 7) <> ""
If Sheets("HP").Cells(i, 7) <> Sheets(1).Cells(n, 4) Then
i = i + 1
End If
y = y + 1
Loop
Sheets("HP").Cells(i, 3).Select
Selection.Copy
Sheets(1).Select
Cells(n, 8).Select
ActiveSheet.Paste
n = n + 1
Loop
précise les erreurs stp
si mon code ne marche pas si il y pas de doublon, il suffit juste de mettre une valeur bouleen du genre trouver=false
n = 26
Do While n < 600
Sheets(1).Select
Cells(n, 4).Select
Selection.Copy
Sheets("HP").Select
i = 1
y = 1
trouver=false
Do While Sheets("HP").Cells(y, 7) <> ""
If Sheets("HP").Cells(i, 7) <> Sheets(1).Cells(n, 4) Then
i = i + 1
else
trouver=true
End If
y = y + 1
Loop
if trouver=true then
Sheets("HP").Cells(i, 3).Select
Selection.Copy
Sheets(1).Select
Cells(n, 8).Select
ActiveSheet.Paste
end if
n = n + 1
Loop
si mon code ne marche pas si il y pas de doublon, il suffit juste de mettre une valeur bouleen du genre trouver=false
n = 26
Do While n < 600
Sheets(1).Select
Cells(n, 4).Select
Selection.Copy
Sheets("HP").Select
i = 1
y = 1
trouver=false
Do While Sheets("HP").Cells(y, 7) <> ""
If Sheets("HP").Cells(i, 7) <> Sheets(1).Cells(n, 4) Then
i = i + 1
else
trouver=true
End If
y = y + 1
Loop
if trouver=true then
Sheets("HP").Cells(i, 3).Select
Selection.Copy
Sheets(1).Select
Cells(n, 8).Select
ActiveSheet.Paste
end if
n = n + 1
Loop
voila j'ai fais une macro qui va chercher pour chaque valeur de la colonne A de la feuille 1 si elle existe dans la colonne A de la feuille HP; si oui elle recupere la valeur de la colonne B dans sa colonne B
Il te reste plus qu'a modifier les coordonnée des colonne pour ton cas
i = 1
Do While Worksheets(1).Range("A" & i).Value <> ""
y = 1
Do While Worksheets("HP").Range("A" & y).Value <> ""
If Worksheets(1).Range("A" & i).Value = Worksheets("HP").Range("A" & y).Value Then
Worksheets(1).Range("B" & i).Value = Worksheets("HP").Range("B" & y).Value
Exit Do
End If
y = y + 1
Loop
i = i + 1
Loop
Il te reste plus qu'a modifier les coordonnée des colonne pour ton cas
i = 1
Do While Worksheets(1).Range("A" & i).Value <> ""
y = 1
Do While Worksheets("HP").Range("A" & y).Value <> ""
If Worksheets(1).Range("A" & i).Value = Worksheets("HP").Range("A" & y).Value Then
Worksheets(1).Range("B" & i).Value = Worksheets("HP").Range("B" & y).Value
Exit Do
End If
y = y + 1
Loop
i = i + 1
Loop
Et je n'ai pas de doublon en faite, c'est pour cela que pour ma 2eme boucle je m etaia arranger pour quel s arrete directement. Mais ca ca n est qu'un details.
Ca me semble si simple mais pourtant ...