Macro pour copier une feuille

Bonjour

Je suis en train de créer un fichier excel pour un collègue pour lui faciliter une de ses tâches au boulot. J'ai bien avancé mais je me retrouve bloqué sur un petit soucis. Je souhaiterai intégrer sur une feuille (appelons la feuill1) un bouton qui permettrait de copier intégralement le contenu de cette même feuille, de coller la copie fraichement créée juste derriere feuill1 et d'empêcher le fonctionnement du bouton SI feuill1 n'est pas la dernière (sinon, je le connais le collègue, il va mettre le bordel dans toutes mes belles formules)

Mes connaissances en VBA avoisinant le 0 absolu, je me permets de solliciter votre aide pour cet épineux problème qu'est le mien

Merci

Bonjour Sebou,

Ton problème doit être soluble mais avec un fichier joint sur lequel tu auras enlevé toutes données confidentielles tout en gardant la structure du fichier, ce sera plus facile d'adapter une solution.

En attendant, affecte cette macro à ton bouton :

Sub copie()
    'ActiveSheet.Index = position de la feuille active
    'Sheets.Count = nombre de feuilles dans le classeur
    'On sort de la macro si la position de la feuille active
    'est différente du nombre de feuilles du classeur
    If ActiveSheet.Index <> Sheets.Count Then MsgBox _
       "Vous n'êtes pas sur la dernière feuille", vbInformation: Exit Sub

    ' Désactive la mise à jour de l'écran
    Application.ScreenUpdating = False

    Cells.Copy
    Sheets.Add
    ActiveSheet.Paste
    ActiveSheet.Range("a1").Select
    Application.CutCopyMode = False
End Sub

Afin de ne pas copier le bouton lors de la copie des données, fais un clic droit sur le bouton puis dans "Format de contrôle"/"Propriétés", sélectionne "Ne pas déplacer ou dimensionner avec les cellules"

Merci pour ton aide vba-new.

Je n'avais pas uploadé un exemple car ce sont des plannings assez complexes (mais sans aucune données sensibles pour l'instant) où il a des formules dans pratiquement chaque case et je pensais que cela risquait de compliquer la compréhension de mon problème

En tt cas, je teste ta macro dès que je retourne au taff cet aprems

-- 28 Mar 2011, 17:20 --

La fonction marche mais pas entièrement. En effet qd je clique sur le bouton une nouvelle feuille (feuill2), copie conforme de la feuille sur laquelle je me trouve(feuill1), apparait avant feuill1 et pas après comme je le souhaiterais. J'imagine qu'il ne faut pas modifier gd chose de la formule mais je ne vois pas trop quoi :s

-- 28 Mar 2011, 17:48 --

J'ai cherché sur google et j'ai trouvé

Sub copie()

'ActiveSheet.Index = position de la feuille active

'Sheets.Count = nombre de feuilles dans le classeur

'On sort de la macro si la position de la feuille active

'est différente du nombre de feuilles du classeur

If ActiveSheet.Index <> Sheets.Count Then MsgBox _

"Vous n'êtes pas sur la dernière feuille", vbInformation: Exit Sub

' Désactive la mise à jour de l'écran

Application.ScreenUpdating = False

Cells.Copy

Sheets.Add after:=Sheets(Worksheets.Count)

ActiveSheet.Paste

ActiveSheet.Range("a1").Select

Application.CutCopyMode = False

End Sub

En rajoutant ce qu'il y a en gras, la nouvelle feuille se copie après la dernière. Merci infiniment vba-new pour le coup de main

bonjour

j'ai testé ce macro qui marche sans problème, cependant quand ma feuille se copie je n'ai pas la mise en page avec...

les marges ne sont plus les mêmes je dois tout recadrer.

comment puis je faire?

merci

Rechercher des sujets similaires à "macro copier feuille"