Filtre suivant une cellule dans un autre onglet
Résolu
mchotard
Messages postés
457
Date d'inscription
Statut
Membre
Dernière intervention
-
mchotard Messages postés 457 Date d'inscription Statut Membre Dernière intervention -
mchotard Messages postés 457 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Vba filtrer selon valeur cellule
- Excel compter cellule couleur sans vba - Guide
- Excel couleur cellule selon valeur - Guide
- Proteger cellule excel - Guide
- Excel remplissage automatique selon valeur ✓ - Forum Excel
- Excel si cellule contient partie texte ✓ - Forum Excel
6 réponses
Bonjour MChotard, bonjour le forum,
la ligne ci-dessous filtre la colonne 3 (=C) de l'onglet Feuil2 avec comme critère la valeur de la cellule A1 de l'onglet Feuil1 :
tu adapteras à ton cas...
la ligne ci-dessous filtre la colonne 3 (=C) de l'onglet Feuil2 avec comme critère la valeur de la cellule A1 de l'onglet Feuil1 :
Sheets("Feuil2").Range("A1").AutoFilter Field:=3, Criteria1:=Sheets("Feuil1").Range("A1").Value
tu adapteras à ton cas...
Merci Thautherme c'est super, cela m'arrange tout à fait. Je ne voudrais pas abuser mais aurais-tu une solution pour un autre problème. J'ai un tableau avec des noms qui se répète chaque mois. Parfois je suis amené à ajouter d'autres noms. J'au une macro qui marche très bien pour insérer, les noms dans mon fichier général.
Ma question : est-il possible de générer automatiquement une liste des noms à partir de mon fichier général pour avoir une liste des noms sans doublon et à jour. Autrement dit si j'ajoute des noms dans mon fichier générale, je souhaite que ma liste soit mise à jour automatiquement âr une macro par ex.
Mois Nom ma liste
Janvier AAA AAA
Janvier CCC CCC
Janvier DDD DDD
Janvier EEE EEE
Janvier FFF FFF
Février AAA
Février CCC
Février DDD
Février EEE
Février FFF
Mars AAA
Mars CCC
Mars DDD
Mars EEE
Mars FFF
Merci si tu peux m'aider, mais ta première intervention me satisfait pleinement
A+
Ma question : est-il possible de générer automatiquement une liste des noms à partir de mon fichier général pour avoir une liste des noms sans doublon et à jour. Autrement dit si j'ajoute des noms dans mon fichier générale, je souhaite que ma liste soit mise à jour automatiquement âr une macro par ex.
Mois Nom ma liste
Janvier AAA AAA
Janvier CCC CCC
Janvier DDD DDD
Janvier EEE EEE
Janvier FFF FFF
Février AAA
Février CCC
Février DDD
Février EEE
Février FFF
Mars AAA
Mars CCC
Mars DDD
Mars EEE
Mars FFF
Merci si tu peux m'aider, mais ta première intervention me satisfait pleinement
A+
Bonjour MChotard, bonjour le forum,
Essaie comme ça :
Essaie comme ça :
Public Sub Macro1()
Dim O As Object 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter)
DL = O.Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 2 (=B) de l'onglet O
Set PL = O.Range("B2:B" & DL) 'définit la plage PL
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For Each CEL In PL 'boucle sur toutes les cellules CEL de la plage PL
D(CEL.Value) = "" 'alimente le dictionnaire D
Next CEL 'prochaine cellule de la boucle
'si C2 n'est pas vide, efface les annciennes données (l'ancienne liste)
If Range("C2").Value <> "" Then O.Range("C2:C" & O.Cells(Application.Rows.Count, 3).End(xlUp).Row).ClearContents
'renvoie dans la colonne C (à partir de C2) la liste du dictionnaire D sans doublons (=D.Keys)
O.Range("C2").Resize(D.Count) = Application.Transpose(D.keys)
End Sub
Décidément tu es à la fois un pro et un rapide, grand merci. Ça marche super.
Une dernière demande et après je cesse de t'importuner. Est-il possible que ma liste (c2:c) puisse s'insérer dans une autre feuille que j'ai appelé "constantes".
Tu es formidable et mille fois merci
MC
Une dernière demande et après je cesse de t'importuner. Est-il possible que ma liste (c2:c) puisse s'insérer dans une autre feuille que j'ai appelé "constantes".
Tu es formidable et mille fois merci
MC
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir MChotard, bonsoir le forum,
Remplace la fin de la macro par cette partie :
Remplace la fin de la macro par cette partie :
With Sheets("constantes") 'prend en compte l'onglet "constantes"
'si C2 n'est pas vide, efface les annciennes données (l'ancienne liste)
If .Range("C2").Value <> "" Then .Range("C2:C" & .Cells(Application.Rows.Count, 3).End(xlUp).Row).ClearContents
'renvoie dans la colonne C (à partir de C2) la liste du dictionnaire D sans doublons (=D.Keys)
.Range("C2").Resize(D.Count) = Application.Transpose(D.keys)
End With 'fin de la prise en compte de l'onglet "constantes"