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 :

Filtre et tri d'une colonne avec macro [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Filtre et tri d'une colonne avec macro
    Bonjour à tous,

    Comme je suis un bon débutant et me voulant pas trop vous prendre la tête, j'ai effectué des recherches sur la macro que je voudrais mais comme d'hab, rien trouver. Alors je me tourne vers vous pour vous demander de l'aide.

    Je vous joins mon calc.

    Voilà ce que je recherche à faire comme macro.

    A partir de la feuille "Accueil" que je voudrais un bouton ou autre pour filtrer la feuille "Janvier" en "vide" de la colonne V puis coller ce qui reste de ligne dans la feuille "Dossiersansreponse".

    Je vous remercie pour votre aide.

    Nicklebreton
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 261
    Points : 388
    Points
    388
    Par défaut Filter Coller
    Bonjour,
    Il aurait été bien de remplir les lignes avec quelques exemples "bidons".
    Pour ce qui est du filtrage, pas de problème.

    Par contre pour :
    puis coller ce qui reste de ligne dans la feuille "Dossiersansreponse
    La feuille "Janvier" est complètement différente de la feuille "DossierSansReponse". L'une contient 23 colonnes et l'autre seulement 19. Que doit t'on exactement copier d'une feuille à l'autre ?

    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Filter Coller
    Bonjour,

    Il faudrait juste les colonnes de A à O car les autres éléments ne font pas partir de la suite de mon travail final.


    Merci par avance.

    Nicklebreton

  4. #4
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 261
    Points : 388
    Points
    388
    Par défaut Filtrer données
    Bonjour en pièce le fichier modifié.
    Sur la feuille Janvier, il faut cliquer sur le bouton filtrer.
    La macro filtre pour ne récupérer que les "vides" de la colonne V et copie les données dans la feuille "DossierSansReponse"
    Comme le fichier exemple ne contient aucune donnée j'ai volontairement rempli les cellules concernées par le mot vide afin de bien voir que le filtrage fonctionne correctement.
    Pour lancer la macro depuis un autre bouton (exemple accueil) il faut attribuer la macro à ce nouveau bouton.
    Cordialement
    Fichiers attachés Fichiers attachés
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Filtre
    Bonjour et merci Mobydick_62.

    Je viens de modifier le fichier d'origine et je viens de me rendre compte que si je rajoute des feuilles ppour d'autres mois, les informations copier à partir de la feuille "janvier" vont disparaitre. Comment je peux faire pour lui faire copier les autres lignes des autres feuilles que si elles sont vides sur la feuille "Dossiersansreponse".

    Je vous remercie pour votre aide par avance.

    Nicklebreton

  6. #6
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 261
    Points : 388
    Points
    388
    Par défaut Filter Coller
    Bonsoir,
    Pour coller dans la feuille "DossierSansreponse" les données à la suite, il faut récupèrer dans cette feuille la première ligne vide.
    Le premier problème que j'ai rencontré est que la fonction que j'utilise normalement ne fonctionnera pas car dans la feuille "DossierSansreponse" il y a des liste intégrées donc ma fonction considère les lignes vides comme étant remplies.
    Voir photo ci-dessous.
    Nom : Capture.png
Affichages : 2227
Taille : 9,3 Ko

    As tu besoin de ces listes intégrées ?

    Donc j'ai utilisé une autre fonction pour trouver la première ligne vide. Mais cela fonctionne uniquement que si on considère que dans la colonne considérée les cellules sont toujours remplies.
    Je m'explique lors du filtrage et la copie j'ai considéré que la colonne A devait obligatoirement contenir une donnée. Donc je récupère la première cellule vide de la colonne A pour pouvoir coller à la suite. Bien sur cela peut être une autre colonne mais laquelle ?
    Dans le fichier joint la macro filtre et copie les données. Si tu refais sur la feuille février par exemple, la macro va récupérer la première cellule libre qui est A26 et copie à partir de cette cellule car je considère que la colonne A contient forcément des données.
    Je ne sais pas si tu me suis mais difficile de l'expliquer.

    Regarde le code et je pense que tu comprendras.
    Cordialement
    Fichiers attachés Fichiers attachés
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Filter Coller
    Bonjour,

    Je viens de refaire le fichier avec les macros et avec toutes les feuilles. La fonction ne veut pas se faire à chaque fois, il efface les données du mois précédent.

    Sinon je viens de faire un test pour avoir juste un bouton à partir de l'accueil et je bloque sur ce mot dans la ligne de la macro : "Dim oFeuilleSource As Object, oZone As Object"

    Merci par avance.

    Nicklebreton
    Fichiers attachés Fichiers attachés

  8. #8
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 261
    Points : 388
    Points
    388
    Par défaut Filter Coller
    Bonsoir, c'est normal que cela écrase, car ta cellule destination dans la feuille "DossierSansReponse" est toujours A2, donc les copies s'écrasent les unes sur les autres.
    Ce n'est pas le code que je t'ai transmis la dernière fois. Car si tu regardes bien je fais appel à une fonction (LigneVide) qui me retourne la première ligne vide pour que les copies se fassent les unes dernière les autres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      'Je récupère la première ligne vide de la colonne A considérant que cette colonne contient forcément quelque chose après filtrage et collage.
      lig = LigneVide()
      oFeuilleDest = ThisComponent.getSheets.getByName("DossierSansreponse")
      oCellDest = oFeuilleDest.getCellRangeByName("A" & lig) 'lig étant la première ligne vide
    Également il est inutile de faire autant de macro qu'il y a de mois, il suffit de garder la même macro et on lui passe en paramètre le mois à traiter en fonction du clic sur le bouton concerné.
    Demain, je vais te modifier cela avec du commentaire pour que tu comprenne mieux.

    PAR AILLEURS : Dans ton premier post tu veux filtrer sur la colonne V qui contient des "1" ou rien. Et tu veux filtrer les "vide". Mais je m'aperçois dans ton deuxième fichier que la colonne V ne contient que des vides, donc la macro prend tout. Ce qui est illogique. Par contre c'est dans la colonne L que je vois des 1 ou rien. Donc sur quelle colonne doit t'on vraiment filtrer ?
    Si j'ai bien compris tu veux filtrer les enregistrement incomplet ou sans réponse ou sans suite..... Donc il nous faut une colonne qui nous permette de déterminer exactement quelles sont les lignes à récupérer et à transférer dans la feuille "DossierSansReponse".
    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  9. #9
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 261
    Points : 388
    Points
    388
    Par défaut Filter Coller
    Bonjour en pièce jointe le fichier modifié

    1. Pour que tout fonctionne correctement, le filtrage se base sur la colonne V. Si dans cette colonne il y a des cellules vides c’est donc celles-ci que l’on va traiter.
    2. Dans tes feuilles (ligne 1) il y a des étiquettes et sur certaines pas (DATE_DEPOT, DEPARTEMENT DU DEMANDEUR ect…..) Il serait bien que toutes tes colonnes contiennent leur étiquettes et surtout sur la colonne V. Sinon le filtrage ne fonctionnera pas. En effet dans le code il faut considérer si la zone à filtrer contient des étiquettes ou pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ContainsHeader = False
    3. Que tes feuilles soient correctement orthographiées. J’ai constaté que ta feuille «*Avril*» s’appelait en fait «*Avil*». Donc dans mon code si j’appelle le mois Avril j’ai forcément une erreur.

    Pour le code tous les boutons (janvier, février, mars….. Filtre Ensemble Des Mois) sont reliés à la même macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub ActionBouton(oEvt As Object)
    Cette macro détermine quel bouton l’a appelé et agit en conséquence. (voir le code)
    J’ai complété les feuilles mois avec des données fictives pour que tu vois les résultat final.

    Enfin concernant ce que tu écris
    Sinon je viens de faire un test pour avoir juste un bouton à partir de l'accueil et je bloque sur ce mot dans la ligne de la macro : "Dim oFeuilleSource As Object, oZone As Object"
    Ce n'est que les déclarations de variables. La déclaration d'une feuille ou d'une zone sont des variables de type objet. Pour comprendre je t'invite à lire les tutoriels sur ce site ou la FAQ pour comprendre les bases de la programmation.

    Cordialement
    Fichiers attachés Fichiers attachés
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Utilisateur
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Filter Coller
    Bonjour à tous,

    Merci Mobydick_62 pour cette dernière discusion qui fonctionne.

    Je viens vers pour vous remercier tous et surout un grand merci à Mobydick_62 pour son aide

    Bonne courage à tous et je cloture cette discusion.

    A Bientôt.

    Nicklebreton

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/10/2014, 10h15
  2. [XL-2010] Macro pour remplir une colonne avec un bouton
    Par Boujnah dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/02/2014, 15h28
  3. Réponses: 5
    Dernier message: 10/12/2012, 12h20
  4. tri dans une colonne asp:TemplateField avec l'id
    Par heoue dans le forum ASP.NET
    Réponses: 0
    Dernier message: 27/01/2009, 17h04
  5. Réponses: 4
    Dernier message: 30/05/2008, 10h47

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