Copier-coller des plages de fichiers dans un nouveau fichier

Bonjour

je commence tout juste le VBA et je suis confronté à un problème que je n'arrive pas à résoudre.

J'ai une quantité indéfini de fichiers Excel dans un dossier A. Chaque fichier contient 2 onglets. Je souhaite copier une plage de cellule spécifique (qui est sous forme de colonne) dans chaque onglet puis coller ces plages dans une seule colonne, les une en dessous des autres, dans un nouveau fichier B. Ce fichier B contiendra donc à la fin une seule grande colonne avec toutes les plages de cellules des 2 onglets de tous les fichiers présents dans mon dossier initial.

Dans ce nouveau fichier, je souhaite ensuite détecter toutes les cellules identiques et supprimer les doubles pour obtenir une colonne propre avec toutes les valeurs qui n'apparaissent qu'une seule fois. Je veux aussi supprimer toutes les cases vides dans ma colonne.

Pour cela j'ai fait une Macro (ci-jointe) mais je bloque au moment d'appeler la méthode .paste (dans la dernière procédure)

Pourriez-vous m'aider?

Merci beaucoup

Guillaume

Pour aller plus vite voici le code de ma Macro:

' Cette procédure va ouvrir tous les fichiers présent dans le répertoire sélectionné
' Sélectionner des TICKER dans les 2 onglets de chaque fichiers, comparaison, liste de tous les TICKER, etc.
' Créer un fichier avec la liste de tous les TICKER
' Sauvegarder ce fichier dans un nouveau répertoire nommé Quarter_Data_List_2017_01_20_12_35
Private Sub SavetickerlistAS(WS As Worksheet, LRow As Long)

' Déclaration des variables
  Dim WB_File_Pf As Workbook
  Dim WB_File_Pf_WS_1 As Worksheet
  Dim WB_File_Pf_WS_2 As Worksheet
  Dim WB_File_Qdl As Workbook
  Dim WB_File_Qdl_WS As Worksheet
  Dim WB_File_Pf_WS_LRow As Long
  Dim WB_File_Pf_WS_Range As Range
  Dim WB_File_Qdl_WS_Range As Range
  Dim Qdl_LRow As Long
  Dim i, j, k As Long
  Dim Depart As String

' Programmation

  Application.DisplayAlerts = False

' Création du nouveau fichier Excel de sortie appelé WB_File_Qdl et nomination du premier onglet
  Set WB_File_Qdl = Workbooks.Add
  Set WB_File_Qdl_WS = WB_File_Qdl.Worksheets(1)
  WB_File_Qdl_WS.Name = "TICKER List"

' Mise en forme de l'onglet "TICKER List"
  WB_File_Qdl_WS.Cells.Select
  With Selection.Font
      .Name = "Calibri"
      .Size = 9
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ThemeColor = xlThemeColorLight1
      .TintAndShade = 0
      .ThemeFont = xlThemeFontMinor
  End With
  With Selection.Interior
      .Pattern = xlSolid
      .PatternColorIndex = xlAutomatic
      .ThemeColor = xlThemeColorDark1
      .TintAndShade = 0
      .PatternTintAndShade = 0
  End With

  For i = 13 To LRow
'   Ouverture du fichier Excel d'entrée appelé WB_File_Pf et de ses 2 premiers onglets
    Set WB_File_Pf = Workbooks.Open(WS.Cells(i, 2))
    Set WB_File_Pf_WS_1 = WB_File_Pf.Worksheets(1)
    Set WB_File_Pf_WS_2 = WB_File_Pf.Worksheets(2)

'   Activation du premier onglet du fichier d'entrée pour copier la liste des TICKER
    WB_File_Pf_WS_1.Activate
    WB_File_Pf_WS_LRow = Last_Row(WB_File_Pf_WS_1, 5, 2)
    Set WB_File_Pf_WS_Range = WB_File_Pf_WS_1.Range(WB_File_Pf_WS_1.Cells(6, 2), WB_File_Pf_WS_1.Cells(WB_File_Pf_WS_LRow, 2))
    WB_File_Pf_WS_Range.Copy

'   Activation de l'onglet TICKER du fichier de sortie pour y coller les tickers du premier onglet du fichier d'entrée
    WB_File_Qdl_WS.Activate
    Range("A" & WB_File_Qdl_WS.UsedRange.Rows.Count + 1).Select
    WB_File_Qdl_WS.Paste

'   Activation du deuxième onglet du fichier d'entrée pour copier la liste des TICKER
    WB_File_Pf_WS_2.Activate
    WB_File_Pf_WS_LRow = Last_Row(WB_File_Pf_WS_2, 5, 2)
    Set WB_File_Pf_WS_Range = WB_File_Pf_WS_2.Range(WB_File_Pf_WS_2.Cells(6, 2), WB_File_Pf_WS_2.Cells(WB_File_Pf_WS_LRow - 1, 2))
    WB_File_Pf_WS_Range.Copy

'   Activation de l'onglet TICKER du fichier de sortie pour y coller les tickers du deuxième onglet du fichier d'entrée
    WB_File_Qdl_WS.Activate
    Range("A" & WB_File_Qdl_WS.UsedRange.Rows.Count + 1).Select
    WB_File_Qdl_WS.Paste

'   Fermeture du fichier d'entrée
    WB_File_Pf.Close

  Next i

'   Enregistrement du fichier de sortie
    WB_File_Qdl_WS.Cells(1, 1).Select
    WB_File_Qdl.SaveAs Filename:=WS.Cells(9, 6) & "TICKER_List"

'   Fermeture du fichier de sortie
    WB_File_Qdl.Close

  Application.DisplayAlerts = True

End Sub
Rechercher des sujets similaires à "copier coller plages fichiers nouveau fichier"