Probleme de boucle vba

Résolu/Fermé
chrismeun Messages postés 235 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 1 juin 2012 - 31 mai 2011 à 17:47
chrismeun Messages postés 235 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 1 juin 2012 - 1 juin 2011 à 18:40
Bonjour,

dans un tableau je selectionne une partie de colonne e10:e ....jusqu'a la fin de la colonne

puis je recherche une valeur definie par une variable(n°client), quand je trouve cette valeur, je recopie la ligne entiere et la copie dans une autre feuille
...jusque la cela fonctionne !!! je reviens a la cellule trouvée et je voudrais continuer ma recherche ....et c'est la que je coince ,si quelqu'un peux m'aider

voila mon code
Sheets("cLIENT").Select

Dim CODECLIENT As String
CODECLIENT = InputBox(" Quel compte client voulez vous consulter?")
Sheets("recapfacture").Select
Range("a2").Select


Range("C10:C28").Select
While ActiveCell >= 0
Selection.Find(What:=CODECLIENT, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate


ActiveCell.Offset(0, -2).Activate
ActiveCell.Offset(-0, 0).Range("a1:dv1").Select
ActiveCell.Offset(0, 2).Range("a1").Activate
Selection.Copy
Sheets("Consultation compte").Select
Range("a5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows("5:5").Select
Rows("5:5").Insert Shift:=xlDown
Sheets("recapfacture").Select
ActiveCell.Offset(1, 0).Activate
Wend

End Sub

1 réponse

michel_m Messages postés 16589 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 12 janvier 2023 3 289
31 mai 2011 à 19:06
Bonsoir

essaies ce code

codeclient = InputBox(" Quel compte client voulez vous consulter?")
With Sheets("recapfacture")
     nbre = Application.CountIf(.Range("C10:C28"), codeclient)
     lig = 9
     lig_2 = 5
     Application.ScreenUpdating = False
     For cptr = 1 To nbre
          lig = .Columns(3).Find(codeclient, .Cells(lig, "C"), xlValues).Row
          temp = .Range(.Cells(lig, "A"), .Cells(lig, "DV")).Value
          With Sheets("Consultation compte")
               .Range(.Cells(lig_2, "A"), .Cells(lig_2, "DV")) = temp
               lig_2 = lig_2 + 1
          End With
     Next
End With
0
chrismeun Messages postés 235 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 1 juin 2012 1
1 juin 2011 à 10:03
bonjour,

merci de ton aide , cela fonctionne trés bien et en plus j'ai appris !!! cela me servira dans mes prochaines macros
maintenant je vais chercher comment dimensionner automatiquement le tableau obtenu pour l'imprimer puis le remettre a zero....si tu as une idée je suis preneur car tes méthodes sont beaucoup plus efficaces que mes tatonnements
merci d'avance
0
michel_m Messages postés 16589 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 12 janvier 2023 3 289
1 juin 2011 à 10:29
Bonjour

Tu veux imprimer que le tableau ou la feuille "consultation compte" avec le tableau ?

pour remettre à zéro, il serait peut-être ° prudent de le faire soir quand on relance la macro ou soit par une petite macro avec un bouton "raz". tu dis ?
0
chrismeun Messages postés 235 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 1 juin 2012 1
1 juin 2011 à 10:39
bjr,

juste la partie de la feuille "consultation compte" col A :P qui s'ajuste en hauteur automatiquement en fonction du nombre de lignes
merci d'avance
0
michel_m Messages postés 16589 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 12 janvier 2023 3 289
1 juin 2011 à 10:55
et pour la remise à zéro ?
0
chrismeun Messages postés 235 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 1 juin 2012 1
1 juin 2011 à 11:19
si possible effacer le contenu a partir de la ligne 8 afin de conserver les formats...
merci de ton aide
0