Probleme de boucle vba

Résolu
chrismeun Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -  
chrismeun Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. chrismeun Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. chrismeun Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      et pour la remise à zéro ?
      0
    5. chrismeun Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      si possible effacer le contenu a partir de la ligne 8 afin de conserver les formats...
      merci de ton aide
      0