Copier onglet dans un fichier aléatoire

  • Initiateur de la discussion Initiateur de la discussion JANO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JANO

XLDnaute Occasionnel
Bonsoir le forum,

La macro copie un onglet dans le classeur test, mais j'aurais besoin qui copie l'onglet dans le classeur ouvert quelque soit son nom.

Est-ce que c'est possible ?

merci de votre aide

Sub copie_base()

Windows("Macros.xls").Visible = True
Sheets("base").Select
Sheets("base").Copy Before:=Workbooks("Test.xls").Sheets(1)
Windows("Macros.xls").Visible = Fasle

End Sub
 
Re : Copier onglet dans un fichier aléatoire

Bonsoir JANO,

Tu peux essayer ceci (non testé) :
VB:
Sub copie_base()
    Windows("Macros.xls").Visible = True
    Sheets("base").Select
    Sheets("base").Copy Before:=Sheets(1)
    Windows("Macros.xls").Visible = Fasle
End Sub

A+
 
Re : Copier onglet dans un fichier aléatoire

Re-bonsoir,

Correction apportée grâce à la réponse que tu as apporté à la question de Staple. C'est ça le travail d'équipe.
VB:
Sub copie_base()
    Dim nf
    Windows("Macros.xls").Visible = True
    ActiveWindow.ActivateNext
    nf = ActiveWorkbook.Name
    ActiveWindow.ActivateNext
    ActiveWorkbook.Sheets("base").Copy Before:=Workbooks(nf).Sheets(1)
    Windows("Macros.xls").Visible = False
End Sub

A+

Edit : BING. Salut Staple
 
Dernière édition:
Re : Copier onglet dans un fichier aléatoire

Re


Cela fonctionne chez moi (avec 2 classeurs ouverts)
Code:
Sub a()
Dim wbk As Workbook
For Each wbk In Workbooks
If wbk.Name <> ThisWorkbook.Name Then
ThisWorkbook.Sheets(1).Copy after:=wbk.Sheets(wbk.Sheets.Count)
End If
Next wbk
End Sub

EDITION: Bing, houps désolé, salut FreDOo
 
Re : Copier onglet dans un fichier aléatoire

Re


Une variante plus secure et sans boucle
Code:
Sub b()
Dim check As Boolean
check = Workbooks.Count = 2
If check Then
Workbooks(1).Sheets(1).Copy after:=Workbooks(2).Sheets(Workbooks(2).Sheets.Count)
End If
Workbooks(1).Sheets(1).Activate
End Sub

Et pour le fun, avec des endives (mais sans jambon ni gruyère 😉 )
Code:
Sub c()
Dim check As Boolean: check = Workbooks.Count = 2
With Workbooks(check * -1)
    With .Sheets(1)
        .Copy after:=Workbooks(2).Sheets(Workbooks(2).Sheets.Count)
        .Activate
    End With
End With
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour