Problème de macro pour nommer la feuille active et dupliquer

Bonjour à tous,

Je suis tout nouveau dans le monde de la VBA, et je suis en ce moment face à un soucis de macro, je m'explique :

Je suis en train de simplifier un fichier excel qui nous sert à réaliser nos pointages hebdomadaire, voici le but :

Lorsque je lance le fichier "pointage", une trame s'affiche et est nommé vierge via la feuille "MATRICE" cacher par defaut.

Ceci est réalisé via cette macro:

Private Sub Workbook_Open()
    'copie de la feuille Matrice
        Sheets("MATRICE").Activate
        Sheets("MATRICE").Copy After:=Sheets("MATRICE")
    'On renome la nouvelle feuille
        ActiveSheet.Name = "VIERGE"
    ' A l'ouverture du classeur on masque la Matrice
        Sheets("MATRICE").Visible = False
End Sub

Ce code fonctionne, cependant, je voudrais creer un bouton nommé "Pointage Suivant", qui à pour fonction de nommer la feuille active en fonction d'une cellule puis me duplique a nouveau la feuille "MATRICE" qui est cachée et doit le rester, et du coup me nomme la nouvelle feuille "Vierge" et me la place a la fin du classeur.

Voici les macro que j'utilise :

## Nomme la feuille en fonction d'une cellule :

Sub NomFeuille()
With ActiveSheet 'agit sur la feuille active, à adapter
    On Error Resume Next
    .Name = .Range("O9") 'le nom de la feuille prend le nom inscrit cellule O9
    If Err.Number <> 0 Then 'Test d'erreur, par exemple onglet existant déjà, ou caractère invalide
        MsgBox ("Veuillez entrez un nom") ' messsage d'information en cas d'erreur
        Exit Sub 'sortie de la macro en cas d'erreur
    End If
End With
End Sub

## Copie la feuille "MATRICE"

Sub CopieFeuille()
    On Error Resume Next
    TOTO = Sheets("VIERGE").Name
    If Err Then
        Sheets("MATRICE").Activate
        Sheets("MATRICE").Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = "VIERGE"
    End If
    On Error GoTo 0
End Sub

Voici la macro que je place sur le bouton :

Sub Suivant()
Call NomFeuille
Call CopieFeuille
End Sub

Mais cela ne fonctionne pas, les macros fonctionne separément, sauf :

A l'ouverture, j'ai bien une feuille nommée "Vierge", et si je clique directement sur le bouton, sans qu'il y est de nom dans la cellule, il me dis de mettre un nom (jusqu'ici, tout va bien), mais il me copie bien la matrice et il me la nomme "matrice2" et me la cache... c'est là que je bug...

Le but : lorsque je clique sur 'pointage suivant', il doit me nommer la feuille en cours en fonction de la cellule, et me dupliquer la "MATRICE" qui est cachée... Mais si la feuille en cours n'a pas de nom, la boite de dialogue "Veuillez entrer un nom" s'affiche" et la macro s'arrête.

Je vous remercie d'avoir pris le temps de me lire, je ne peux malheureusement pas vous partager le document en question, mais je suis preneur de toutes les solution qui me seront proposer...

Merci a tous

cco86260

Bonsoir,

aucune réponse en 10h..

Peut-être qu'avec un fichier exemple réduit et anonymisé ça motivera les recherches...

eric

Salut,

Je pense que ta macro CopieFeuille n'est pas au point, mais comme dit Eric un fichier sans données confidentielles nous permettrait de t'aider plus facilement.

Bonjour cco86260,

Quand tu copies une feuille masquée, sa copie est masquée. Il faut l'afficher :

Sheets(Sheets.Count).Visible = True

Sub CopieFeuille()
    On Error Resume Next
    TOTO = Sheets("VIERGE").Name
    If Err Then
        Sheets("MATRICE").Activate
        Sheets("MATRICE").Copy After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Visible = True
        Sheets(Sheets.Count).Name = "VIERGE"
    End If
    On Error GoTo 0
End Sub

A+

Benoît Marchand

[Benead]

Rechercher des sujets similaires à "probleme macro nommer feuille active dupliquer"