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 Sub

Edit 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 Sub

Bonjour,

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 Sub

Pour le num de projet vous n'avez plus besoin de mettre l'apostrophe et le 0 devant

Si ok -->

Crdlt

Super

Merci beaucoup !!

Rechercher des sujets similaires à "select case supprimer feuille"