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

Fermé
binorda Messages postés 4 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 22 mars 2016 - 18 mars 2016 à 18:01
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 mars 2016 à 07:45
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.
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 mars 2016 à 07:44
Bonjour

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

combien de colonnes dans "decompte distrib" ?
0
binorda Messages postés 4 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 22 mars 2016
20 mars 2016 à 14:49
Bonjour Michel,

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

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

Bien à vous
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > binorda Messages postés 4 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 22 mars 2016
20 mars 2016 à 16:53
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
binorda Messages postés 4 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 22 mars 2016
21 mars 2016 à 14:02
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > binorda Messages postés 4 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 22 mars 2016
21 mars 2016 à 14:18
Non, mais cela aurait TRES facile avec des ent^tes...

je repasse tout à l'heure...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 21/03/2016 à 17:18
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
binorda Messages postés 4 Date d'inscription vendredi 18 mars 2016 Statut Membre Dernière intervention 22 mars 2016
22 mars 2016 à 22:55
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 23/03/2016 à 07:47
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