Fusion d'onglets

Bonjour à tous,

j'ai passé ma matinée à chercher sur internet une réponse à ma question mais je n'arrive pas à trouver ce que je veux :

  • j'ai un fichier Cible, "CIBLE"
  • j'ai deux fichiers, "donnés1" et "donnés2" composés chacun de 4 onglets.

Je souhaiterais :

  • une formule qui crée un nouvel onglet nommé 'Défaut" dans le fichier "CIBLE"
  • puis que les 4 premières colonnes du premier onglet des fichiers "Donnés1" et "Donnés2" soient copiés dans ce nouvel onglet.

Je sais pas si mon message est assez précis, n'hésitez pas à revenir vers moi au cas ou.

Merci,

Alex

Bonjour Alex et le forum ,

vois si ça te convient (ce n’est pas quelque chose qu'on apprend en une matinée ):

Sub test()
'https://forum.excel-pratique.com/viewtopic.php?f=2&t=133025

    Dim ws As Worksheet
    Dim Cible As Workbook
    Dim Wbk1 As String, Wbk2 As String

    Set Cible = ThisWorkbook

    Wbk1 = "C:\Users\Sequoyah\Desktop\Forum\donnés1.xlsx" '====>> Chemin et nom du fichier à adapter
    Wbk2 = "C:\Users\Sequoyah\Desktop\Forum\donnés2.xlsx" '====>> Chemin et nom du fichier à adapter

    Application.ScreenUpdating = False

    'Supprime l'onglet "Défaut" si existe
    For Each ws In Cible.Worksheets
        If ws.Name = "Défaut" Then
            Application.DisplayAlerts = False
            Sheets("Défaut").Delete
            Application.DisplayAlerts = True
        End If
    Next

    ' Ajoute l'onglet nommé "Défaut" à la fin
    Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Défaut"

    'Ouvre le premier classeur et copie les 4 premières colonnes du premier onglet
    Workbooks.Open Wbk1

    With ActiveWorkbook
        .Worksheets(1).Range("A:D").Copy Destination:=Cible.Worksheets("Défaut").Range("A:D")
        .Close
    End With

    ''Ouvre le deuxième classeur et copie les 4 premières colonnes du premier onglet
    Workbooks.Open Wbk2

    With ActiveWorkbook
        .Worksheets(1).Range("A:D").Copy Destination:=Cible.Worksheets("Défaut").Range("E:H")
        .Close
    End With

    Application.ScreenUpdating = True

End Sub

Cordialement.

Hello Sequoyah,

Et bien figure toi qu'avec ta (très grande aide) j'ai finalement réussi !

merci beaucoup d'avoir pris le temps de m'aider.

Alex

Rechercher des sujets similaires à "fusion onglets"