XL 2013 Copier une feuille et la ronnmer par rapport la dernière feuille ?

nunizgb

XLDnaute Junior
Bonjour,

Je souhaite créer un code vba qui vas créer une nouvelle feuille, copier une feuille modèle vers cette nouvelle feuille et la nommer par rapport la dernière feuille du classeur.

Donc j'ai une feuille modèle, base, 4 et 5

Sur la feuille base, j'ai mon bouton qui créer une nouvelle feuille on copient la feuille modèle et on peux la nommer mais comment la nommer automatiquement si la dernière feuille actuelle a pour nom 5 la nouvelle devra se nommer 6.

Puis comment interdire la mise en page de la feuille via vba par exemple la feuille 4 afin qu'on puisse juste entres des informations

Voici le code que j'utilise
Code:
Sub CopyRename()
    Dim sName As String
    Dim wks As Worksheet
    Worksheets("model").Copy after:=Sheets(Worksheets.Count)
    Set wks = ActiveSheet
    Do While sName <> wks.Name
        sName = Application.InputBox _
          (Prompt:="Enter new worksheet name")
        On Error Resume Next
        wks.Name = sName
        On Error GoTo 0
    Loop
    Set wks = Nothing
End Sub

Merci pour votre aide
 

Pièces jointes

  • testonglet.xlsm
    17.9 KB · Affichages: 24

Papou-net

XLDnaute Barbatruc
Re : Copier une feuille et la ronnmer par rapport la dernière feuille ?

Re - Bonjour Papou-Net et DoubleZero

Le code de Papou-Net marche comme il faut par contre quand je l'avait mis dans mon fichier de travail et non de test, quand le code copie la feuille model j'ai ceci comme erreur

Regarde la pièce jointe 357206

Le Nom de la cellule existe déjà :

En fait dans ma feuille model il y a bcp de cellule qui ont un nom donc comme faire pour qu'excel ne demande pas si on veux copier les nom de cellule.

Car quand je fait manuellement la création d'une feuille puis je fait copier la feuille model et je fait un collage spécial il ne me demande pas.

RE:

Pas le temps de regarder alors je te propose de refaire la manipulation au clavier en passant par l'enregistreur de macros. Tu n'auras plus qu'à relire le code obtenu et tenter de le simplifier en retirant les instructions inutiles.

A +

Cordialement.
 

nunizgb

XLDnaute Junior
Re : Copier une feuille et la ronnmer par rapport la dernière feuille ?

RE:

Vois si la copie en PJ te convient.

A +

Cordialement.

Merci j'y vais tester par contre c'est qoui Mdp ?

Comme je puisse avoir juste un bouton qui a pour caption Aafficher les colonne et si les colonne sont affiché avoir pour caption Masquer. Excuse si ceci n'a rien à voir avec le sujet orginal mais c'est pour que je n'ouvre pas un nouveau sujet juste pour cela.
 

nunizgb

XLDnaute Junior
Re : Copier une feuille et la ronnmer par rapport la dernière feuille ?

RE:

Pas le temps de regarder alors je te propose de refaire la manipulation au clavier en passant par l'enregistreur de macros. Tu n'auras plus qu'à relire le code obtenu et tenter de le simplifier en retirant les instructions inutiles.

A +

Cordialement.

Merci j'y fais essaye de faire comme ça
 

nunizgb

XLDnaute Junior
Re : Copier une feuille et la ronnmer par rapport la dernière feuille ?

Re - Bonjour Papou-Net

J'ai tester ton fichier et il est bien par contre comment et où on change le mot de passe qui est 1234 dans le code vba car nul par je n'est pas vu 1234 ?

Dans usf il y a juste un Textbox or dans le code il y a ceci :

Code:
If Not TextBox1 = TextBox2

et je n'est nul par vu textbox2="1234"

Merci pour ton aide
 
Dernière modification par un modérateur:

Papou-net

XLDnaute Barbatruc
Re : Copier une feuille et la ronnmer par rapport la dernière feuille ?

Merci j'y vais tester par contre c'est qoui Mdp ?

Comme je puisse avoir juste un bouton qui a pour caption Aafficher les colonne et si les colonne sont affiché avoir pour caption Masquer. Excuse si ceci n'a rien à voir avec le sujet orginal mais c'est pour que je n'ouvre pas un nouveau sujet juste pour cela.

Oups! j'ai oublié de préciser certaines choses:

Le mot de passe ("1234") est fixé dans la propriété Text de TextBox2. J'ai rajouté TextBox2 dans Userform1, mais il est caché. Pour l'afficher, il suffit d'agrandir le formulaire vers le bas. Pour modifier ce mot de passe, il suffit de le changer dans TextBox2.

"MdP" est une variable booléenne (True ou False) qui passe à Vrai si le mot de passe est bon et à Faux dans le cas contraire. Elle sert surtout si on clique sur le bouton Annuler du formulaire pour sortir de la macro appelante et éviter ainsi une erreur système.

Tu remarqueras aussi que tu peux introduire des caractères alphabétiques dans le nom des onglets, mais il faut toujours terminer par un ou plusieurs chiffres.

A +

Cordialement.
 

nunizgb

XLDnaute Junior
Re : Copier une feuille et la ronnmer par rapport la dernière feuille ?

Merci pour cette explication, je ne savais pas cela, par contre je vient d’intégrer ton usf dans mon fichier et j'ai mis ce code dans mon module :

Code:
Public MdP As Boolean

Sub CopyRename()
AccesReserve.Show
If MdP = False Then Exit Sub
Dim nomOnglet As String, i

nomOnglet = Sheets(Sheets.Count).Name
If IsNumeric(nomOnglet) Then
  nomOnglet = nomOnglet + 1
  Else
  For i = Len(nomOnglet) To 1 Step -1
    If Not IsNumeric(Mid(nomOnglet, i, 1)) Then Exit For
  Next
  nomOnglet = Left(nomOnglet, i) & Mid(nomOnglet, i + 1) + 1
End If
Worksheets("modele").Copy after:=Sheets(Worksheets.Count)
ActiveSheet.Name = nomOnglet
End Sub

et j'ai cette erreur : Utilisation incorrecte de la propriété pour ce code :

Code:
Private Sub CommandButton1_Click()


If Not TextBox1 = TextBox2 Then
  MsgBox "Erreur de mot de passe!", vbOKOnly + vbCritical
  Cancel = True
  TextBox1 = ""
  TextBox1.SetFocus
  Else
  MdP = True
  Unload Me
End If
End Sub

En gras où ce trouve erreur MdP = True, juste pour information j'ai renommer Userform
 

Papou-net

XLDnaute Barbatruc
Re : Copier une feuille et la ronnmer par rapport la dernière feuille ?

RE:

A priori, je ne vois pas d'où vient l'erreur.

Le nom du formulaire n'étant pas écrit dans la procédure, ça ne vient pas de là.

N'aurais-tu pas modifié également les noms de TextBox1 et TextBox2 dans le formulaire et oublié de corriger dans la macro?

A défaut, si tu pouvais joindre une copie de ton fichier avec des données bidon, juste pour voir la structure.

A +

Cordialement.
 

nunizgb

XLDnaute Junior
(RESOLU)Copier une feuille et la ronnmer par rapport la dernière feuille ?

RE:

A priori, je ne vois pas d'où vient l'erreur.

Le nom du formulaire n'étant pas écrit dans la procédure, ça ne vient pas de là.

N'aurais-tu pas modifié également les noms de TextBox1 et TextBox2 dans le formulaire et oublié de corriger dans la macro?

A défaut, si tu pouvais joindre une copie de ton fichier avec des données bidon, juste pour voir la structure.

A +

Cordialement.

Merci pour l'aide et j'ai vu d'où est venu l'erreur, en fait j'avais déjà un usf du nom Mdp donc j'ai changer le nom de ce usf et plus d'erreur sauf qu'il ne pouvait pas copier la feuille model mais j'ai ajouter au code ceci avant de faire la copie :

Worksheets("Model").Visible = True et après la copie je l'ai à nouveau masquer
 

Discussions similaires

Réponses
7
Affichages
444

Statistiques des forums

Discussions
312 683
Messages
2 090 894
Membres
104 690
dernier inscrit
caujolle