IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Récupération liste de filtre automatique [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre habitué Avatar de ancel17
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Mars 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Mars 2007
    Messages : 312
    Points : 178
    Points
    178
    Par défaut Récupération liste de filtre automatique
    Bonjour,

    Question con du jour, mais question qui pourrait me simplifier la vie...

    Est-il possible par un moyen ou un autre de récupérer dans un objet "liste déroulante", la liste d'un filtre automatique ?

    La raison de ce "A L'AIIIIIIDE !!!", est la suivante :
    Je parviens à lister les éléments sans doublon au moyen d'un calcul matriciel, mais mon soucis est qu'il rend les actions excessivement longue.
    Alors quand je vois à quelle vitesse est mis en place un filtre automatique, ça me laisse rêveur !!!

    Je vous joins un fichier avec les formules utilisées pour lister les valeurs (le tableau est en ligne 5010).

    LISTER VAL UNIQUES.ods

    Voilà, voilà !

    Merci de votre aide !
    Sigue soñando

  2. #2
    Membre habitué Avatar de ancel17
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Mars 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Mars 2007
    Messages : 312
    Points : 178
    Points
    178
    Par défaut
    Re bonjour tout le monde !

    Après quelques recherche j'ai réussi à faire sous excel au moyen d'une macro au démarrage du classeur ce que je souhaite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Workbook_Open()
    Dim c As Range
    Dim fl As Worksheet
    Dim derlg As Integer
    Set fl = Me.Worksheets("Base")
    derlg = fl.Range("A" & fl.Rows.Count).End(xlUp).Row
    For Each c In fl.Range("B1:G1").Cells
        fl.Range(c, Cells(derlg, c.Column)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=fl.Cells(1, c.Column + 7), Unique:=True
    Next c
    derlg = 0
    Set c = Nothing
    Set fl = Nothing
    End Sub
    Mon problème est donc maintenant de traduire ce tout petit code VBA en Basic pour qu'il puisse être exécuté par un fichier .ods !

    Je joins le fichier excel qui va bien : LISTER VAL UNIQUES.xls

    Merci !
    Sigue soñando

  3. #3
    Membre habitué Avatar de ancel17
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Mars 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Mars 2007
    Messages : 312
    Points : 178
    Points
    178
    Par défaut
    Problème résolu !

    Le code ci-dessous est un poil plus élaboré que la question initiale mais on s'y retrouve, surtout avec le fichier joint
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub Main
    MonDocument = ThisComponent						' Le document actuel
    Feuilles = MonDocument.Sheets					' La collection des feuilles
    If Not(Feuilles.hasByName("Résultat")) Then
    	Feuilles.insertNewByName("Résultat",0)			' Nouvelle feuille au début du classeur
    EndIf
    Resultat = Feuilles.getByName("Résultat")		' La feuille Résultat
    Feuille = Feuilles.getByName("Base")			' La feuille "Base"
    Curseur = Feuille.createCursor()				' Créer un curseur pour trouver la dernière ligne
    Curseur.goToEndOfUsedArea(false)				' Déplacer le curseur à la fin
    derLig = Curseur.RangeAddress.EndRow-1			' Dernière ligne = celle où se trouve le curseur
    derCol = Curseur.RangeAddress.EndColumn
    j = 0
    For i = 0 to dercol
    	If Feuille.getCellByPosition(i,0).Value = 1 Then
    		j = j+1
    		Plage = Feuille.getCellRangeByPosition(i,2,i,derLig)	' Plage à filtrer
    		Filtre = Plage.createFilterDescriptor(true)		' Créer un filtre avec réglages par défaut
    		With Filtre
    			.CopyOutputData = True						' Demander la copie des données
    			.OutputPosition = Resultat.getCellByPosition(j-1,2).CellAddress	' Destination de la copie
    			.SkipDuplicates = True						' Enlever les doublons
    		End With
    		Plage.filter(Filtre)							' Appliquer le filtre
    		Resultat.getCellByPosition(j-1,0).String = Feuille.getCellByPosition(i,1).String
    		Resultat.getCellByPosition(j-1,1).String = "Tous"
    	End If
    Next i		
    End Sub
    LISTER VAL UNIQUES 2.ods
    Sigue soñando

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Utiliser la liste d’un filtre automatique
    Par JM741 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/04/2011, 17h41
  2. Récupération liste de choix après filtre
    Par p0l1n dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2010, 21h48
  3. [E-03] récupération éléments issus d'un filtre automatique.
    Par Delivrance dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2008, 21h52
  4. Réponses: 7
    Dernier message: 17/09/2008, 15h04
  5. [Excel] Récupération d'un filtre automatique dans une cellule
    Par billy123 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/03/2007, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo