Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro autofilter :saisir donnee variable

  • Initiateur de la discussion Initiateur de la discussion euromarcs
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

euromarcs

Guest
Bonjour,

Je suis novice (le mot est faible😀 ) dans les macros et autres plaisirs d'Excel !!!

ma config : windows XP et excel 2002.

J'ai un classeur excel qui comporte une dizaine de colonnes :

departements, ville, public/privé, etc...

Je désire réaliser une macro afin de faire un tri.
d'abord par départements, l'idéal serait que l'on puisse saisir un numéro de département et que le tri s'effectue.
Puis un autre tri (optionnel) par ville..........
Puis un autre tri (toujours optionnel) par public/privé.
Ensuite (ca je m'en charge.!!!😛 ) je copie la liste sur une autre feuille pour impréssion.[/
SIZE]

Je suis conscient de la haute technicité 🙂confused: ) de ma demande, mais je vous renvoies à ma première phrase.....suis novice!!!!
 
Re : macro autofilter :saisir donnee variable

Bonjour

Voici une macro don je me sers pour selectionner des lignes en fonction de critere sur des filtres automatique

Code:
Sub Recherche(feuille As String, ajout As Boolean)
'   ceci est une macro de recherche parametrée avec deux criteres
'   critere 1 ---> Nom de la feuille
'   critere 2 ---> Ajout si vrai, ajoute à la liste

'   La feuille Travail est concernée, en colonne A, nous trouvons les n° de colonne à filtrer
'                                     en colonne b, les valeurs à trouver
'                                     en colonne c, le resultat de la recherche
    
    Dim cellule As Range, i As Long ' Definition d'un objet range
    
    If ajout <> True Then ' je remets à blanc la colonne trouve
        Sheets("Travail").Range("C:C").ClearContents
        Sheets("Travail").Range("C1") = "trouve"
    End If
    
    With Sheets(feuille) ' selon le nom de la feuille passée en parametre
        For Each cellule In sheets("Travail").Range("A2:A" & sheets("Travail").range("A65535").end(xlup).row) ' je passe en revue tous les criteres definis en feuille travail
            .Range("A1").AutoFilter Field:=cellule, Criteria1:=cellule.Offset(0, 1) ' Je lance le filtre
        Next cellule
        
        If .Range("A65535").End(xlUp).Row = 1 Then Sheets("Travail").Range("C2").Value = -1: GoTo fin  ' Pas de valeur trouvées, je sors
        
        ' je passe en revue toute les lignes restantes (Colonne A, Toutes les base contiennent un code en colonne A)
        For Each cellule In .Range("A1:A" & .Range("A65535").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
            ' Je mets dans la colonne C de la feuille Travail toutes les lignes trouvées
            If cellule.Row > 1 Then Sheets("Travail").Range("C" & Sheets("Travail").Range("C65535").End(xlUp).Row + 1) = cellule.Row
        Next cellule
fin:
        On Error Resume Next ' Showalldata peut provoquer une erreur si toutes les lignes sont visibles
        .ShowAllData ' Réafficher toutes les valeurs
        On Error GoTo 0
    End With
End Sub

elle est un peu plus complexe , mais fonctionne avec toutes les bases de données

J'ai une feuille "Travail"
En A2, je mets la colonne concernée, en B2 la valeur à extraire
En A3 et B3 le deuxieme critere
en A4 et B4 le troisieme et ains de suite

ensuite je lance la macro avec en parametres
1 le nom de la feuille (en string)
2 False ou true, True pour ajouter la nouvelle selection à la precedente

Le resultat de la macro se trouve sur la feuille Travail dans la colonne C ou elle rescence tous les n° de ligne selectionnées
 
Dernière édition:
Re : macro autofilter :saisir donnee variable


Whaouuuu.......... ca c'est du rapide, j'aurais jamais cru avoir une réponse si vite..........
Merci wilfried 42😀
Je teste cela demain et je reviens vers toi pour te donner le résultat 😉
en tout cas merci de t'être penché sur mon cas.........
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…