[Excel] Problème avec "Cells.Find"
Résolu
NarcisseJulien
Messages postés
29
Statut
Membre
-
NarcisseJulien Messages postés 29 Statut Membre -
NarcisseJulien Messages postés 29 Statut Membre -
Bonjour,
Je me retrouve face a un problème avec mon code vba d'une maccro visant à rechercher une valeur dans la colone G de la feuil1 (nommé Janvier), copier les lignes contenant cette valeur (tjr dans la colone G) et ensuite coller ces ligne à partir de la ligne 13 dans une feuil2 (nommée pièces).
La valeur recherchée est donc mise dans la celule D7 de la feuil "pièces"
Je lance la maccro via une userform situé dans cette feuil "pièces"
J'éffectue un comptage de cette valeur dans la colone G de la feuil "janvier"
Je stok cette information dans une variable "k"
Puis je fait une boucle allant de 1 à k pour chercher et copier les lignes contenants la valeur cherchée (dans la colone G) dans ma feuil pièces et ce à partir de la ligne 13.
Mon problème... ça fonctionne pas et j'arrive pas à voir où ça bloque...
Voici le code VBA que j'execute :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/06/2011 par Narcisse Julien
'
j = Range("D7").Value
Sheets("Janvier").Select
k = Application.CountIf(Range("G1").EntireColumn, j)
For i = 1 To k
Cells.Find(What:=j, After:=ActiveRow, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Sheets("Pièces").Select
Rows(12 + i & ":" & 12 + i).Select
ActiveSheet.Paste
Next i
End Sub
Si qu'elqu'un a une petite idée de comment m'aider ... Je vous remerice par avance pour votre aimabilité.
Je me retrouve face a un problème avec mon code vba d'une maccro visant à rechercher une valeur dans la colone G de la feuil1 (nommé Janvier), copier les lignes contenant cette valeur (tjr dans la colone G) et ensuite coller ces ligne à partir de la ligne 13 dans une feuil2 (nommée pièces).
La valeur recherchée est donc mise dans la celule D7 de la feuil "pièces"
Je lance la maccro via une userform situé dans cette feuil "pièces"
J'éffectue un comptage de cette valeur dans la colone G de la feuil "janvier"
Je stok cette information dans une variable "k"
Puis je fait une boucle allant de 1 à k pour chercher et copier les lignes contenants la valeur cherchée (dans la colone G) dans ma feuil pièces et ce à partir de la ligne 13.
Mon problème... ça fonctionne pas et j'arrive pas à voir où ça bloque...
Voici le code VBA que j'execute :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/06/2011 par Narcisse Julien
'
j = Range("D7").Value
Sheets("Janvier").Select
k = Application.CountIf(Range("G1").EntireColumn, j)
For i = 1 To k
Cells.Find(What:=j, After:=ActiveRow, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Sheets("Pièces").Select
Rows(12 + i & ":" & 12 + i).Select
ActiveSheet.Paste
Next i
End Sub
Si qu'elqu'un a une petite idée de comment m'aider ... Je vous remerice par avance pour votre aimabilité.
1 réponse
-
Bonjour
Sub xxx() With Sheets("janvier") donnee = .Range("D7") nbre = Application.CountIf(.Columns("G"), donnee) If nbre = 0 Then GoTo erreur: Application.ScreenUpdating = False lig = 65536 For cptr = 1 To nbre lig = .Columns("G").Find(donnee, .Cells(lig, "G"), xlValues).Row Sheets("pieces").Rows(12 + cptr) = .Rows(lig).Value Next End With Exit Sub erreur: MsgBox "valeur inconnue", vbCritical End Sub
Michel-
-
-
[url=http://www.images-host.fr][img]http://www.images-host.fr[/img][/url]
[url=http://www.images-host.fr][img]http://www.images-host.fr[/img][/url]
Voici des SS de l'erreur et du code executé... -
-
Salut, Eric, Ca va ? :o)
Peux tu m'expliquer pourquoi tu écris
j=range("D7").value
puis
donnee= j
j'avoue que je n'en vois pas du tout l'intérêt et l'utilité, surtout pour écrire en plus une variable à 1 caractère ( i, j, k sont tolérés dans les boucles et encore!...) :o((
J'avais mis l'appel en D7 de sheet "janvier"
donc il fallait écriredonnee = Sheets("pieces").Range("D7") With Sheets("janvier") nbre = Application.CountIf(.Columns("G"), donnee)
J'ai testé c'est OK
https://www.cjoint.com/?3Fwxq13QHdX
-