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 :

Fusionner Certaines feuilles excel selon des conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 1
    Par défaut Fusionner Certaines feuilles excel selon des conditions
    Bonjour,

    Je cherche à copier coller en valeur des feuilles excel dans un nouveau fichier excel avec comme condition le nom de cette feuille.
    J'ai trouvé ce code; mais je n'arrive pas à intégrer la partie
    ==> Copier coller uniquement les feuilles qui s'appellent "A".

    Quelqu'un peut m'aider pleaaaaase?



    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub test()
     
    'On crée une variable 'wbFusion' de type Classeur Excel
    Dim wbFusion As Workbook
    'On l'associe au classeur à partir duquel tu lances la macro
    Set wbFusion = ThisWorkbook
     
    'On crée une variable wbCible qui va correspondre tour à tour aux classeur à importer
    Dim wbCible As Workbook
    Dim shCible As Worksheet
     
    'Afin de lui affecter des fichiers, l'utilisateur va les sélectionner via une boîte de dialogue
    'NOTA : le With XXXXXXXXX évite de répéter plein de fois XXXXXXXXX lorsque l'on parle de la même chose ;)
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Choisissez le(s) classeur(s) à importer"
        .Filters.Add "Classeur Excel", "*.xls,*.xls?" 'on filtre par tous les fichiers .xls et xls? avec '?' signifiant "1 caractère"
        .ButtonName = "Importer ce(s) classeur(s)"
        .AllowMultiSelect = True 'on autorise la sélection multiple
        .Show 'on affiche la fenêtre, on attend le retour de l'utilisateur pour continuer
     
        'on a réglé la boîte de dialogue, maintenant il faut traiter les données de l'utilisateur :
        'si l'utilisateur n'a pas sélectionné de fichier, on met un message d'erreur
        If .SelectedItems.Count = 0 Then
            MsgBox "Veuillez sélectionner au moins un fichier", vbExclamation, "Erreur"
        'Sinon, on traite :
        Else
            For i = 1 To .SelectedItems.Count
                'On ouvre chaque classeur un par un
                Set wbCible = Workbooks.Open(.SelectedItems(i))
                CouleurOnglet = RGB(Rnd * 255, Rnd * 255, Rnd * 255) 'on va mettre toutes les pages de ce classeur importées avec l'onglet de la même couleur
                CompteurClasseur = CompteurClasseur + 1 'on incrémente un compteur, facultatif
                'Pour chaque feuille du wbCible :
                For Each shCible In wbCible.Sheets
                    shCible.Tab.Color = CouleurOnglet
                    shCible.Name = Int(Rnd * 99999) 'nom aléatoire pour être certain qu'il n'y ait pas de doublon plantant la macro
                    shCible.Copy after:=wbFusion.Sheets(wbFusion.Sheets.Count) 'on la copie à la fin de wbFusion
                    CompteurFeuille = CompteurFeuille + 1 'on incrémente un compteur, facultatif
                Next shCible
                'On ferme le classeur sans enregistrer (on a changé le nom des pages avant copie)
                wbCible.Close SaveChanges:=False
            'On passe au classeur suivant
            Next i
            'Facultatif, à l'aide des compteurs, on indique à l'utilisateur que tout s'est bien passé
            MsgBox CompteurFeuille & " feuilles ont bien été importées, provenant de " & CompteurClasseur & " classeurs Excel.", vbInformation, "Import réussi"
        End If
    End With
     
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il faut scinder les problèmes.
    Il y a d'une part une procédure de copie des données avec comme arguments
    • la plage source (celle que l'on veut copier)
    • la cellule cible (celle à partir de laquelle on colle les cellules copiées)

    Les conditions qui définissent si l'on copie ou pas (feuille dont le nom commence par la lettre "a") c'est en amont qu'il faut gérer cela

    Exemple dans cette contribution nommée Regrouper plusieurs feuilles sur une autre. (2003-2010)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2017, 22h57
  2. Supprimer des lignes Excel selon plusieurs conditions avec VBA
    Par StVenum dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/01/2017, 13h04
  3. Macro excel selon des conditions
    Par cejink dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/04/2015, 16h28
  4. [XL-2010] Trier des feuilles excel selon un résultat.
    Par adsens dans le forum Excel
    Réponses: 5
    Dernier message: 24/11/2014, 19h12
  5. Réponses: 2
    Dernier message: 28/09/2011, 10h09

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