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

Macros et VBA Excel Discussion :

VBA [Tri venant de plusieurs feuille], une partie d'occurence reste [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Points : 2
    Points
    2
    Par défaut VBA [Tri venant de plusieurs feuille], une partie d'occurence reste
    Bonjour à tous!

    Je vous explique mon problème: j'ai 4 feuilles dans un classeur, avec chacune une liste d'application avec beaucoup de doublon(Aucun doublon d'une feuille par rapport à l'autre par contre). Chacune de ces listes appartient à une catégorie, qui correspond au nom de leur feuille.

    Je cherche, dans un premier temps, à faire une liste sans doublon de ces applications.

    J'ai réussi à récupérer une liste, sans doublon, néanmoins j'ai encore des "mots" inutiles.

    Voici pour exemple, chacune des colonnes correspond à une feuille de mon classeur.

    Appli1 Appli2 Appli3 Appli4
    1 2 3
    1 2 3 4
    3 4

    Donc le problème c'est que dans chaque feuille, la liste ne commence pas au même moment (c'est sensé être dynamique).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub GénérerListe()
     
    Sheets("Tableau de bord").Range("U4:U200").Clear
     
    Sheets("Appli1").Range("B2:B200").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Range("U4"), Unique:=True
    Sheets("Appli2").Range("B2:B200").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Cells(Rows.Count, 21).End(xlUp)(2), Unique:=True
    Sheets("Appli3").Range("B2:B200").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Cells(Rows.Count, 21).End(xlUp)(2), Unique:=True
    Sheets("Appli4").Range("B2:B200").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Cells(Rows.Count, 21).End(xlUp)(2), Unique:=True
     
    End Sub
    B2 correspond au titre de ma colonne "Appli".
    Si je met B1, il me copie du vide (il n'y a rien dans B1) et ne me fait pas de liste
    Si je met B2, ça fonctionne, mais il me compte le mot "Appli" 4 fois dans ma liste (Et j'aurai donc besoin de le remplacer par les nom de feuille)
    Si je met B3, il me copie mes formules et pas les valeurs.

    Si vous avez une idée..

    Merci bien!

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,
    Une façon de faire:
    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
    Public Sub AjoutListe(sAppli As String)
       Dim LastRow As Long, rng As Range
       Set rng = Sheets(sAppli).Range("B3:B200")
       rng.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
       rng.Copy
       LastRow = Cells(Rows.Count, 21).End(xlUp).Row
       Range("U" & LastRow).PasteSpecial Paste:=xlPasteValues
       Set rng = Nothing
    End Sub
     
    Public Sub GénérerListe()
       Sheets("Tableau de bord").Select
       Sheets("Tableau de bord").Range("U4:U200").Clear
       AjoutListe "Appli1"
       AjoutListe "Appli2"
       AjoutListe "Appli3"
       AjoutListe "Appli4"
    End Sub
    en fait le AdvencedFilter utilise le 1er résultat pour décider du "format" de l'entièreté du résultat. Si le 1er résultat est une valeur, tout sera pris comme valeurs, si le 1er résultat est une formule, tout sera pris comme formules. Il n'y a pas de paramètre pour forcer à la prise des valeurs uniquement, comme dans PasteSpecial.
    Bonne continuation.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Tu avais raison. Du coup j'ai réussi à faire ce que je voulais en modifier la cellule de départ et mon tableau d'origine. Merci bien!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/10/2016, 08h44
  2. copie de cellules de plusieurs feuilles à une autre
    Par soipx dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/05/2009, 09h58
  3. {VBA Excel}Recopie de plusieurs Feuilles
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 29/06/2007, 14h27
  4. [VBA-E] Inscrire dans le textbox une partie du contenu d'une cellule
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2006, 08h06
  5. excel VBA comment recopier sur plusieurs feuilles
    Par floflo2006 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2005, 15h56

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