Extraire deux colonnes identiques de plusieurs feuilles

Bonjour,

Je vous expose mon problème.

Je possède un script VBA qui me permet de cliquer sur un bouton, ce dernier m'ouvre un explorateur Windows.

Suite à ça je choisi un fichier en entrée, le reste du script permet de copier le contenu des colonnes A et B de la première feuille du fichier en entrée et de copier le contenu dans un autre fichier excel qui contient le script.

Ce que j'aimerai faire maintenant c'est de pouvoir copier les colonnes A et B des feuilles 1, 2, 3 etc... en cliquant sur ce bouton.

Voici le code que je possède maintenant :

Option Explicit

Private Sub CommandButton1()
Dim Fichier, WbkCopy As Workbook, WbkColle As Workbook
Dim Colonnes(), Col As Integer, Resultat As Variant
   'On attribue à la variable WbkColle le fichier actuel (celui qui contient la macro)
   Set WbkColle = ThisWorkbook
   'Nom des entêtes de colonnes à importer
   Colonnes = Array("Nom Technique", "Template proposé")

   'Sélection du fichier
   Fichier = Application.GetOpenFilename("Fichiers Excels, *.xls*")
   'En cas de clic sur "ANNULER"
   If Fichier <> False Then
        'On ouvre le fichier en question
        Set WbkCopy = Workbooks.Open(Fichier)

            With WbkCopy.Sheets("Defects") '==> NOM de la feuille
                'Boucle sur toutes les entêtes des colonnes
                For Col = 1 To .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
                    'teste si l'entête correspond à un des noms des colonnes à copier
                    Resultat = Application.Match(.Cells(1, Col), Colonnes, 0)
                    'Si l'entête est trouvée (colonne à copier)
                    If Not IsError(Resultat) Then
                        'Copié - Collé ==> NOM de la feuille à coller
                        .Columns(Col).Copy WbkColle.Sheets("Sheet2").Cells(1, Cells.Columns.Count).End(xlToLeft).Offset(0, 1)
                    End If
            Next Col
            End With

    WbkCopy.Close
    End If
Set WbkCopy = Nothing
Set WbkColle = Nothing
End Sub

Auriez-vous une idée sur comment réaliser cet exploit ?

Merci d'avance pour vos réponses.

Cordialement.

Bonjour,

De ce que j'ai compris.

Option Explicit

Private Sub CommandButton1()
Dim WbkCopy As Workbook, WbkColle As Workbook
Dim Wst As Worksheet
Dim Fichier As Variant
Dim Resultat As Double
Dim Colonnes() As String
Dim Col As Integer

    Application.ScreenUpdating = False
    'On attribue à la variable WbkColle le fichier actuel (celui qui contient la macro)
    Set WbkColle = ThisWorkbook
    'Nom des entêtes de colonnes à importer
    Colonnes = Array("Nom Technique", "Template proposé")

    'Sélection du fichier
    Fichier = Application.GetOpenFilename("Fichiers Excels, *.xls*")
    'En cas de clic sur "ANNULER"
    If Fichier <> False Then
        'On ouvre le fichier en question
        Set WbkCopy = Workbooks.Open(Fichier)
        'Pour chaque feuille du classeur actif
        For Each Wst In ActiveWorkbook.Worksheets
            'Boucle sur toutes les entêtes des colonnes
            For Col = 1 To Wst.Cells(1, Columns.Count).End(xlToLeft).Column
                'teste si l'entête correspond à un des noms des colonnes à copier
                Resultat = Application.Match(Wst.Cells(1, Col), Colonnes, 0)
                'Si l'entête est trouvée (colonne à copier)
                If Not IsError(Resultat) Then
                    'Copié - Collé ==> NOM de la feuille à coller
                    Wst.Columns(Col).Copy WbkColle.Worksheets("Sheet2").Cells(1, Cells.Columns.Count).End(xlToLeft).Offset(0, 1)
                End If
            Next Col
            'Prochaine feuille
        Next Wst
        WbkCopy.Close
    End If

    Set WbkCopy = Nothing
    Set WbkColle = Nothing

End Sub

Ah excuse moi j'ai du mal à me faire comprendre.

En fait j'ai un fichier nommé TdB DCO qui contient 5 feuilles avec des données.

Pour l'instant sur mon script j'arrive à récupérer les données de la première feuille du fichier Tdb et à les rapatrier dans un autre fichier excel appelé Importation avec un bouton (le bouton étant sur la première feuille qui fera office de page d'accueil, mes données quand à elles sont sur la deuxième feuille).

Ce que j'aimerai faire c'est rapatrier les données de la deuxième feuille du fichier TdB (et les données des autres feuilles par la suite) dans une autre feuille du fichier Importation pour ne pas qu'elles soient avec les données que j'ai déjà rapatrié de la première feuille du fichier TdB

Par exemple :

Fichier TdB contient les feuilles : Requierements, Defects, Test Plan, Test Lab etc elles possèdent toutes des données.

Pour l'instant dans le fichier Importation, je récupère les données de Defects dans une feuille.

Mais j'aimerai importer les données de Requierements dans une feuille à part dans le fichier Importation, et ce pour toutes les feuilles du fichier TdB.

Je sais pas si j'ai réussi à me faire comprendre avec ça ^^

Rechercher des sujets similaires à "extraire deux colonnes identiques feuilles"