Copier les lignes qui sont sous une ligne à valeur donnée

binorda Messages postés 4 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je suis nouveau ici, j'utilise excel depuis longtemps et commence à avoir besoin de rentrer des formules plus complexes pour mettre en place certain process. Je crains d'être obligé de passer par vba pour certain process que je n'arrive pas résoudre avec des formules. Par contre je suis totalement débutant en vba ... j'espère que vous pourrez m'aider .
Voici mon problème :

Je reçois d'un distributeur des décomptes de vente contenant sur un seul *.xls des infos de plusieurs clients. Infos que je dois dispatcher à mon tour en faisant à chaque client un décompte avec les infos qui le concerne (vente, recap des ventes, stock).

voici ce que je n'arrive pas à faire:

Dans l'onglet "Décompte DISTRIB" (celui de mon distributeur) j'ai besoin de copier toutes les lignes se trouvant SOUS la ligne contenant la valeur "RECAPITULATIF DES VENTES ET RETOURS PAR CLIENT" , disons les 100 lignes qui se trouvent en dessous pour faire large, ou mieux : toutes les lignes tant qu'il y a une valeur à l'intérieur.

Copier ces lignes SOUS la ligne contentant "RECAPITULATIF DES VENTES ET RETOURS" dans l'onglet "Décompte ROY" (décompte de mon client 1)

Ensuite j'aurais besoin de supprimer (de ces lignes importées) celles qui ne contiennent PAS le mot "Royant" (puisque par élimination ce sont les lignes d'autres clients)
Et enfin supprimer (toujours de ces lignes importées) les lignes complètement vides pour que le doc soit propre.

Je ne réalise pas trop à quel point ce que je souhaite faire est compliqué ou pas et je remercie infiniment ceux qui aurons la patience de m'aider.

Thomas.

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    dans quelle colonne(s) trouve t'on "royant" ?

    combien de colonnes dans "decompte distrib" ?
    0
    1. binorda Messages postés 4 Statut Membre
       
      Bonjour Michel,

      on trouve royant dans la colonne C (la 3ème donc)

      "decompte distrib" contient 8 colonnes (de A à H)

      Bien à vous
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > binorda Messages postés 4 Statut Membre
         
        Si il existe des ent^tes dans "distrib" la solution pourrait passer par filtre et copie des lignes visibles
        si oui voir dans ce site de Jacques Boisgontier rubrique filtre automatique-copie d'une zone filtée
        0
    2. binorda Messages postés 4 Statut Membre
       
      les décomptes que je reçois ne contiennent pas d'entêtes de colonne ...
      est-ce si compliqué de copier des lignes qui se trouvent sous une ligne contenant une cellule de valeur "xxxx" ?
      Merci
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > binorda Messages postés 4 Statut Membre
         
        Non, mais cela aurait TRES facile avec des ent^tes...

        je repasse tout à l'heure...
        0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    re

    Option Explicit
    '-----------------------
    Sub extraire()
    Dim Onglet As String, Client As String
    Application.ScreenUpdating = False
    Client = "Royant"
    Onglet = "Décompte ROY"
    selectionner Client, Onglet
    End Sub
    '-----------------------------
    Sub selectionner(Nom, feuille)
    Dim Nbre As Integer, Lig As Integer, Cptr As Integer, Tampon
    Dim Lig2 As Integer

    With Sheets("Décompte DISTRIB")
    Nbre = Application.CountIf(.Columns("C"), Nom)
    Lig = 1
    For Cptr = 1 To Nbre
    Lig = .Columns("C").Find(Nom, .Cells(Lig, "C")).Row
    Tampon = .Range(.Cells(Lig, "A"), .Cells(Lig, "H"))
    .Rows(Lig).Delete
    With Sheets(feuille)
    Lig2 = Lig2 + 1
    .Range(.Cells(Lig2, "A"), .Cells(Lig2, "H")) = Tampon
    End With
    Next
    End With
    End Sub

    tu seras peut-^tre surpris de voir 2 macros mais j'envisage que tu veux procéder peut-^tre avec tous les clients avec leur feuille "décompte machin"... ce qui n"cessitera des aménagements des codes
    tu dis...
     Michel
    0
    1. binorda Messages postés 4 Statut Membre
       
      Hello Michel,

      navré mais la macro ne fonctionne pas top ...
      j'ai besoin de copier les lignes qui contiennent "royant" (ou le nom d'un autre client) mais se trouvent SOUS la ligne qui contient RECAPITULATIF DES VENTES ET RETOURS PAR CLIENT
      et les copier dans l'onglet "decompte ROY" sous la ligne contenant RECAPITULATIF DES VENTES ET RETOURS PAR CLIENT
      j'ai pas l'impression que ta macro fasse tout a fait ça .
      Cool si tu as un moment pour t'y pencher encore.

      Merci pour ton aide précieuse.
      Bien à toi

      Thomas
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour
      désolé mais j'avais testé et OK;. de plus j'avais anticipé des choix différents que "royant" par une macro paramétrée:. Le choix de différents noms auraient être précisé dans ta demande initiale
      d'autre part j'ai considéré que "recapitulatif. des ventes etc" était en ligne 1. sinon tu te serais donné la peine de l'écrire dans ta demande

      pour plusieurs noms tu fais 2 listes : noms et onglet et tu choisis le nom que tu veux


      abandon du suivi:
      0