déplacement d'onglets

niconiz

XLDnaute Nouveau
Bonjour et meilleurs voeux,

ayant des connaissances VBA "limitées" je tiens à vous exposer mon problème.

Je souhaite déplacer des onglets d'un classeur excel dans un autre (idéalement via une macro ).

Ces onglets se situent entre un onglet nommé "début" et un autre "fin" (exemple joint)

je souhaite les copier et coller dans un autre classeur, et je sèche.

Pourriez-vous m'aider ?

cordialement
 

Pièces jointes

  • Classeur2.xls
    23.5 KB · Affichages: 32
  • Classeur2.xls
    23.5 KB · Affichages: 25

gilbert_RGI

XLDnaute Barbatruc
Re : déplacement d'onglets

Bonjour , bienvenue sur XLD, Bonne année 2016


sans plus d'explications sur la destination et le numéro ou le nom de la page à déplacer

voilà une idée
à mettre dans un module standard

VB:
Sub test()
    Sheets("test1").Select
    Cells.Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
End Sub
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : déplacement d'onglets

sheets.count indique le nombre de feuilles dans le classeur
alors
faire une boucle for par exemple qui commence de 1 à sheets.count
ensuite dans cette boucle mettre un if le nom de la feuille est "debut" ou si "fin" ne rien faire sinon executer la macro avec le nom des feuilles rencontrées dans la boucle
 

gilbert_RGI

XLDnaute Barbatruc
Re : déplacement d'onglets

ce qui pourrait donner un truc dans le genre pour le classeur fourni

VB:
Sub test()
    Dim Wb As Workbook
    Dim Wbr As Workbook
    chemin = ThisWorkbook.Path
    Set Wb = Workbooks("classeur2.xls")
    Set Wbr = Workbooks.Add
    Wbr.SaveAs Filename:=chemin & "\Destination" & ".xls"
    With Wb
        For sh = 1 To Wb.Sheets.Count
            If Wb.Sheets(sh).Name = "Début" Then GoTo suite
            If Wb.Sheets(sh).Name = "Fin" Then
            GoTo suite
            Else
                Wb.Activate
                Wb.Sheets(sh).Select
                Debug.Print Wb.Sheets(sh).Name
                Wb.Sheets(sh).Cells.Select
                Selection.Copy
                Wbr.Sheets.Add
                Wbr.ActiveSheet.Paste
suite:
            End If
        Next
    End With
    Wbr.Close
End Sub
 

Discussions similaires

Réponses
7
Affichages
577

Statistiques des forums

Discussions
314 228
Messages
2 107 515
Membres
109 856
dernier inscrit
slideo03