OVH Cloud OVH Cloud

Ajouter des feuilles a un worksheet par VBA

2 réponses
Avatar
musecyan
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)


Merci

2 réponses

Avatar
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
Avatar
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

ca plante au niveau de la copy de la feuille

ici precisement:
Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count)

Au secours ca me depasse