Bonjour j'ai une application en VBA avec un user Form commun et
plusieurs Feuilles (contenant du code VBA indentique pour chaque
feuille avec 2 boutons et un objet Active X ientique aussi)
Je souhaite que l'utilisateur puisse depuis le UserForm qui sert a la
configuration des feuilles (appele depuis un bouton configure present
sur chaque feuille) pouvoir creer de nouvelles feuilles
(feuil4,feuill5....)identique aux precedente (code sur la feuille et
controle +2 bouton et objet activex) en appuyant sur un bouron nouvelle
feuille.
Y a t'il un moyen tres simple de faire cela en VBA du genre sauver un
feuille existante sous un nom different
ou faut 'il cree une feuille vierge (puis copier le contenu (code)+
inserer les controles et parametrer verouiilage certaine
cellulle+Format etc..... (toujours en VBA)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
musecyan
ok resolu avec ce code
Private Sub CommandButton1_Click() Dim Rep As String SaisieNom: msg = "Vous allez créer une nouvelle feuille à partir de " _ & "ce modèle." & vbCrLf msg = msg & vbCrLf & "Comment voulez-vous nommer la nouvelle " _ & "feuille ?" Rep = InputBox(msg, "Saisie du nom") If Rep = "" Then Exit Sub On Error GoTo SaisieInvalide Application.ScreenUpdating = False Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count) With ActiveSheet .Name = Rep .Shapes("CommandButton1").Delete End With Exit Sub SaisieInvalide: With Application .ScreenUpdating = True .DisplayAlerts = False End With ActiveSheet.Delete msg = "Le nom de feuille que vous avez tapé n'est pas valide !" _ & vbCrLf msg = msg & vbCrLf msg = msg & "- Vérifiez que le nom de la feuille ne dépasse " _ & "pas 31 caractères" & vbCrLf msg = msg & "- Vérifiez que le nom de la feuille ne contient " _ & "aucun des caractères suivants :" & vbCrLf msg = msg & " / : ? * [ ou ]" & vbCrLf msg = msg & "- Vérifiez qu'une feuille du classeur ne possède " _
& "pas déjà un nom identique" & vbCrLf Reponse = MsgBox(msg, , "Saisie invalide") Sheets("Modèle").Select Exit Sub End Sub
il est bien ce forum
ok resolu avec ce code
Private Sub CommandButton1_Click()
Dim Rep As String
SaisieNom:
msg = "Vous allez créer une nouvelle feuille à partir de " _
& "ce modèle." & vbCrLf
msg = msg & vbCrLf & "Comment voulez-vous nommer la nouvelle " _
& "feuille ?"
Rep = InputBox(msg, "Saisie du nom")
If Rep = "" Then Exit Sub
On Error GoTo SaisieInvalide
Application.ScreenUpdating = False
Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = Rep
.Shapes("CommandButton1").Delete
End With
Exit Sub
SaisieInvalide:
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
msg = "Le nom de feuille que vous avez tapé n'est pas valide !" _
& vbCrLf
msg = msg & vbCrLf
msg = msg & "- Vérifiez que le nom de la feuille ne dépasse " _
& "pas 31 caractères" & vbCrLf
msg = msg & "- Vérifiez que le nom de la feuille ne contient " _
& "aucun des caractères suivants :" & vbCrLf
msg = msg & " / : ? * [ ou ]" & vbCrLf
msg = msg & "- Vérifiez qu'une feuille du classeur ne possède " _
& "pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(msg, , "Saisie invalide")
Sheets("Modèle").Select
Exit Sub
End Sub
Private Sub CommandButton1_Click() Dim Rep As String SaisieNom: msg = "Vous allez créer une nouvelle feuille à partir de " _ & "ce modèle." & vbCrLf msg = msg & vbCrLf & "Comment voulez-vous nommer la nouvelle " _ & "feuille ?" Rep = InputBox(msg, "Saisie du nom") If Rep = "" Then Exit Sub On Error GoTo SaisieInvalide Application.ScreenUpdating = False Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count) With ActiveSheet .Name = Rep .Shapes("CommandButton1").Delete End With Exit Sub SaisieInvalide: With Application .ScreenUpdating = True .DisplayAlerts = False End With ActiveSheet.Delete msg = "Le nom de feuille que vous avez tapé n'est pas valide !" _ & vbCrLf msg = msg & vbCrLf msg = msg & "- Vérifiez que le nom de la feuille ne dépasse " _ & "pas 31 caractères" & vbCrLf msg = msg & "- Vérifiez que le nom de la feuille ne contient " _ & "aucun des caractères suivants :" & vbCrLf msg = msg & " / : ? * [ ou ]" & vbCrLf msg = msg & "- Vérifiez qu'une feuille du classeur ne possède " _
& "pas déjà un nom identique" & vbCrLf Reponse = MsgBox(msg, , "Saisie invalide") Sheets("Modèle").Select Exit Sub End Sub
il est bien ce forum
musecyan
Bon finalement y a un bleme
Sur 1 PC equipe WindowsXP Home Ed avec EXcell 2003 VBA 6.3 ca marche
et sur l'autre PC WindowsXP home Ed avec EXcell 2003 SP2 VBA 6.3 ca marche pas