Autres une macro pour filtrer puis copier et coller les colonnes

Hanane nourh

XLDnaute Nouveau
Bonjour,
j'ai une base de données avec plusieurs colonnes et je veux copier les donnes de chaque Clients et les coller sur un autre onglet .

je vous ai mis un fichier simplifier ,
en faite je veux filtrer par rapport au client
puis copier les données et les coller sur un autre onglet,

merci d'avance pour vos contributions

c'est URGENT
 

Pièces jointes

  • Clients.xlsm
    8.1 KB · Affichages: 4

Phil69970

XLDnaute Impliqué
@Hanane nourh

Je te propose ce fichier:

*Petit rappel :
Ici nous sommes QUE des volontaires nous répondons aux questions que nous voulons et au rythme que nous voulons.....
Voir la charte du forum ici notamment le point 2 de la dite charte du demandeur.

Demandeur​

2 – Tous les membres du forum répondent gracieusement aux questions. Il n’y a donc aucune obligation de résultat et de délai. Les mots URGENT, SOS, AU SECOURS sont donc à bannir.


 

Pièces jointes

  • Clients V1.xlsm
    30.3 KB · Affichages: 3

Hanane nourh

XLDnaute Nouveau
@Hanane nourh

Je te propose ce fichier:

*Petit rappel :
Ici nous sommes QUE des volontaires nous répondons aux questions que nous voulons et au rythme que nous voulons.....
Voir la charte du forum ici notamment le point 2 de la dite charte du demandeur.

Demandeur​

2 – Tous les membres du forum répondent gracieusement aux questions. Il n’y a donc aucune obligation de résultat et de délai. Les mots URGENT, SOS, AU SECOURS sont donc à bannir.
D'abord, je te remercie infiniment pour ton retour,
Et par rapport au mot urgent je suis nouvelle sur le Forum. Et je sais bien que c'est volontairement
 

Hanane nourh

XLDnaute Nouveau
D'abord, je te remercie infiniment pour ton retour,
Et par rapport au mot urgent je suis nouvelle sur le Forum. Et je sais bien que c'est volontairement
ah je m'excuse , je renvoie le fichier
Bonjour ,
je te remercie encore une fois sur le programme d'hier,
par contre dans le code vba , peut être quand j'ai trop simplifier le fichier que j'ai posé
en faite je vous joints le même fichier mais avec un nouveau onglet data base v2
car en faite je veux filtrer les clients mais par exemple j'ai paris 1/paris 2/paris 3 alors pour moi c'est le même client ,
du coup est ce que y a une possibilité de préciser le nom de ce que je veux filtrer.
merci d'avance pour vos aides
 

Pièces jointes

  • Clients V1.xlsm
    40.9 KB · Affichages: 4

Phil69970

XLDnaute Impliqué
Bonjour @Hanane nourh

Comment veux tu qu'excel sache que Paris1, Paris2, Paris3 sont le même client sans clé d'identification c'est pas très évident.
En clair tu gardes tes noms de clients et tu crées une colonne avec un identifiant unique pour chaque client peut importe dans quelle colonne se trouve la clé colonne A ou colonne E par exemple.

1620112053772.png

C'est la méthode facile et normal que ta base de donnée devrait avoir.....

Je vais réfléchir pour voir si on peut contourner le problème mais il me faut savoir si tous les clients sont pareils c'est à dire : nom (sans espace avant et/ou après) suivit d'un nombre et combien de chiffres il y a après.
Quelle devra être la logique si un client s'appelle par exemple "studio21" tu as du mettre "studio211","studio212","studio213" ?
Dans tous les cas je ne comprends pas pourquoi tu as mis Paris1, Paris2, Paris3 et non pas Paris tout court....

@Phil69970
 

Hanane nourh

XLDnaute Nouveau
en faite pour mon fichier les clients sont nommés par des références et non pas par le nom de la ville ,
par exemple: le client TRNAVA: sur mon fichier y a 2 références qui commence par 56XXXX .
apparemment cette méthode que tu m'as mentionnée ca vas pas m'aider car j'ai une base de données hyper grande, et en faite a chaque fois j'actualise le fichier.
j'espère que j'étais un peu claire.
Merci beaucoup pour ton aide
j'ai trouver ce code sur le forum mais j'arrive pas a le faire fonctionner:

Sub Macrocosmétique()
Dim DerLig As Long, Plage As String, MonCritere As String
Dim WS1 As Worksheet, WS2 As Worksheet

Set WS1 = Worksheets("Suivi global BHU")

Set WS2 = Worksheets("Feuil1")
MonCritere = "Cosmétique"

'met la feuille source en mode filtre si elle ne l'est pas
If Not WS1.AutoFilterMode Then WS1.Range("A1:I1").AutoFilter

'tri selon les critères
WS1.Range("A10").AutoFilter Field:=11, Criteria1:=MonCritere
WS1.Range("A10").AutoFilter Field:=16, Criteria1:="=Actif", Operator:=xlOr, Criteria2:="=Inactif"
'détermination de la dernière ligne du tableau
DerLig = WS1.Range("A" & Rows.Count).End(xlUp).Row
'copie la feuille origine sur la feuille source
Plage = "C10:C" & DerLig & ",F10:F" & DerLig & ",I10:K" & DerLig & ",N10:N" & DerLig & ",P10:Q" & DerLig
WS1.Range(Plage).SpecialCells(xlCellTypeVisible).Copy WS2.Range("A1") ' sur une seule ligne

'met la feuille cible en mode filtre si elle ne l'est pas
If Not WS2.AutoFilterMode Then WS2.Range("A1:I1").AutoFilter
'adapte les colonnes au contenu
WS2.Columns("A:H").AutoFit
'supprime la trace de sélection
Application.CutCopyMode = False

'se repositionne sur feuille source en A1
WS1.Range("A1").Select

End Sub
 

Phil69970

XLDnaute Impliqué
Re

Dans ton fichier du post #3 tes clients sont du texte (des noms), dans le post #6 tu me dis que les clients sont du texte + des nombres et dans ton post #8 les clients sont un nombre et peut être du texte .....
Faudrait savoir .... changer la regle du jeu à presque tous les post !!! 🤔
Tu éclaircies tes idées et tu mets un vrai fichier exemple sans donnée confidentiel avec ce que tu veux exactement serait le bienvenu avec 10 à 20 lignes avec ce que tu as et ce que tu veux.... et comment tu le veux.

@Phil69970
 

Hanane nourh

XLDnaute Nouveau
Re

Dans ton fichier du post #3 tes clients sont du texte (des noms), dans le post #6 tu me dis que les clients sont du texte + des nombres et dans ton post #8 les clients sont un nombre et peut être du texte .....
Faudrait savoir .... changer la regle du jeu à presque tous les post !!! 🤔
Tu éclaircies tes idées et tu mets un vrai fichier exemple sans donnée confidentiel avec ce que tu veux exactement serait le bienvenu avec 10 à 20 lignes avec ce que tu as et ce que tu veux.... et comment tu le veux.

@Phil69970
voila, j'ai mis un fichier avec Client/Produit/quantité/date
du coup j'ai mis que deux types de client
exemple: rennes: c'est qui commence par FV
et Mulhouse qui commence par 76
ce que je veux c'est de copier le tableau dont le client qui contient le code commence par FV....
ainsi de suite et le coller sur la feuille rennes .
alors je sais pas comment je fais ,je crois mettre sur le code vba ce que je dois filtrer en précisant
les codes des clients ....
merci pour ton aide
 

Pièces jointes

  • copie filtre.xlsm
    19 KB · Affichages: 1

Phil69970

XLDnaute Impliqué
Re

Plus ça va moins je comprends....:oops:
1-Comment veux tu qu'excel sache que 76 veux dire Mulhouse et FV veux dire Rennes (et les autres comment je les devine) c'est impossible sans table de correspondance.
un vrai fichier exemple sans donnée confidentiel avec ce que tu veux exactement serait le bienvenu avec 10 à 20 lignes avec ce que tu as et ce que tu veux.... et comment tu le veux.
De plus ton fichier ne me dit pas du tout ce que tu veux obtenir. Il n'y a rien dans ton fichier dans l'onglet Rennes
Remplie ton fichier de quelques lignes de résultat (tous les onglets) et réponds à la question 1

*Ce qui se conçoit bien s’énonce clairement, et les mots pour le dire arrivent aisément

@Phil69970
 

Discussions similaires

Haut Bas