Select Case - supprimer feuille
Bonjour
petit bout de code pour créer un projet (nouvelle feuille excel)
Si j'appui 2 fois sur annuler ... il ne me supprime pas la feuille qu'il a créé et qui du coup ne sert à rien ... je ne comprend pas pourquoi
Pouvez vous m'aider SVP ?
Sub NewProject()
Dim Namesheet As String
If MsgBox("Voulez vous créer un nouveau projet ?", vbYesNo) = vbYes Then
Select Case Namesheet = InputBox("Entrez votre nom de projet en commençant par P_", "Nouveau projet", "P_taper le nom du projet")
Case OK
Worksheets("Nx projet").Copy Before:=Worksheets("Nx projet")
Case Cancel
ThisWorkbook.ActiveSheet.Delete
End Select
Select Case NumProjet = InputBox("Entrez votre numero de projet en commençant '", "Numéro projet", "'0 taper le nom du projet")
Case OK
ActiveSheet.Cells(1, 5).Value = NumProjet
ActiveSheet.Name = Namesheet
Case Cancel
ThisWorkbook.ActiveSheet.Delete
End Select
End If
End SubEdit modo : merci de mettre le code entre balises SVP avec le bouton </>
Bonjour,
---> Pensez à mettre votre version excel dans le profil de votre compte.
Dans cette ligne,
NumProjet = InputBox("Entrez votre numero de projet en commençant '", "Numéro projet", "'0 taper le nom du projet")
vous entrez 0 et le nom du projet ? donc si le nom du projet est "Titi" vous aurez en E1 --> '0Titi
Du coup pourquoi l'apostrophe devant ?
Salut,
La fonction InputBox te renvoie une chaine soit avec l'entrée qui a été saisie soit d'une valeur nulle si Annuler a été cliqué, donc pourquoi faire un Select Case avec Ok et Cancel ? Idem pour le numéro de projet
Cette ligne est censée faire quoi ? Worksheets("Nx projet").Copy Before:=Worksheets("Nx projet") Là j'avoue ne pas comprendre.
Avec cela tu parts direct vers des déboires, ThisWorkbook.ActiveSheet.Delete je pense.
Donc en gros tu veux faire quoi ? Ajouter une feuille avec un nom et un numéro (dans une cellule) qui seront renseignés par l'utilisateur ?
Bonjour à vous
merci pour vos retours
@ Dan, j'ai fait une petite erreur ce n'est pas
NumProjet = InputBox("Entrez votre numero de projet en commençant '", "Numéro projet", "'0 taper le nom du projet")
mais
NumProjet = InputBox("Entrez votre numero de projet en commençant '", "Numéro projet", "'0 taper le numéro du projet")celà étant dit ca ne répond à pas à mon problème :) :)
@ Jean Paul,
Worksheets("Nx projet").Copy Before:=Worksheets("Nx projet")celà me permet de créer une nouvelle feuille sur la base de la feuille Nx Projet et de pas me la coller n'importe où mais juste avant la feuille Nx Projet
en gros ce que je veux faire c'est créer une nouvelle feuille à partir d'une feuille "paramétré" telle que Nx projet et guider l'utilisateur pour remplir le nom du projet et le numéro.
et ce que je souhaite c'est que si on annule sur les 2 inputbox quil n'y ait pas de feuille créée par erreur ... si on annule je souhaite que le fichier de base n'évolue pas
Salut le fil
Donc dans ce cas cela doit plus ressembler à cela :
Sub NewProject()
Dim SheetName As String, NumProject As String
Dim TextMessage As String
Dim sh As Worksheet
If MsgBox("Voulez vous créer un nouveau projet ?", vbYesNo) = vbYes Then
SheetName = InputBox("Entrez votre nom de projet en commençant par P_", "Nouveau projet", "P_")
If SheetName > vbNullString Then
NumProject = InputBox("Entrez votre numéro de projet en commençant ", "Numéro projet", "0")
If NumProject > vbNullString Then
Worksheets("Nx projet").Copy before:=Worksheets("Nx projet") '
Set sh = ActiveSheet
With sh
.Name = SheetName
.Cells(1, 5).Value = NumProject
End With
Else
TextMessage = "Le numéro de projet doit-être renseigné" & vbNewLine & "L'opération a été annulée"
End If
Else
TextMessage = "Le nom de la feuille doit-être renseigné" & vbNewLine & "L'opération a été annulée"
End If
If TextMessage > vbNullString Then
MsgBox TextMessage
Else
MsgBox "Le projet a bien été créé"
End If
End If
If Not sh Is Nothing Then Set sh = Nothing
End SubBonjour,
Hum... j'avais déjà fait le code hier soir.... mais vu que Jean Paul est intervenu, si cela vous intéresse
celà étant dit ca ne répond à pas à mon problème :) :)
Juste question de compréhension et que le code soit correct
Sub NewProject()
Dim Namesheet As String, numprojet As String
If MsgBox("Voulez vous créer un nouveau projet ?", vbYesNo + vbDefaultButton2, "Nom Projet") = vbYes Then
Namesheet = InputBox("Entrez votre nom de projet en commençant par P_", "Nouveau projet", "P_taper le nom du projet")
If Namesheet = vbNullString Then Exit Sub
Worksheets("Nx projet").Copy Before:=Worksheets("Nx projet")
ActiveSheet.Name = Namesheet
numprojet = InputBox("Entrez votre numero de projet en commençant '", "Numéro projet", "taper le numero du projet")
If numprojet <> vbNullString Then
With ActiveSheet.Cells(1, 5)
.NumberFormat = "@"
.Value = Format(numprojet, "000")
End With
Else: ThisWorkbook.ActiveSheet.Delete
End If
End If
End SubPour le num de projet vous n'avez plus besoin de mettre l'apostrophe et le 0 devant
Si ok -->
Crdlt