XL 2016 Problème avec mon code

scoubidou35

XLDnaute Occasionnel
Bonjour à tous,
J'étais content de mon code mais je viens de m'apercevoir qu'il y a un problème et je ne trouve pas la raison.
En fait si le plan n'existe pas il me demande si je veux le créer. Et là, il y a un bug car même si je répond non il me crée quand même le plan.
Merci
 

Pièces jointes

  • Création de plans de jardin.xlsm
    302.6 KB · Affichages: 10
Solution
Bonjour Scoubidou,
A mon avis le "If VbYes" n'est pas correct. Il faut passer par :
VB:
Réponse = MsgBox("Désolé, mais le plan que vous demandez n'existe pas." & Chr(13) & Chr(10) & Chr(13) & Chr(10) _
& "Voulez-vous le créer maintenant ?", vbQuestion + vbYesNo, "INFORMATION moi")
If Réponse = 6 Then ' 6 quand vbYes, 7 quand vbNo'
Voir :

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour scoubidou35, le forum

[édition: bonjour Dranreb et sylvanu]

en fait vous ne teniez pas compte du retour du Msgbox dans votre code.

Bien cordialement, @+
VB:
Sub BoutonPlan()
Dim s As String

s = ActiveSheet.DrawingObjects(Application.Caller).Caption & " "
Cible = s & Range("K4") & " (" & IIf(Left(Range("Q4"), 3) = "Pri", "1", "2") & ")"
Application.DisplayAlerts = False

If Range("K4") = "" Or Range("Q4") = "" Then MsgBox ("Merci de remplir toutes les cases")
If Rep = vbOK Then Exit Sub



If Range("K4") <> "" And Range("Q4") <> "" And ExistWorkSheet(Cible) Then
Worksheets(Cible).Activate

Else

    If Range("K4") <> "" And Range("Q4") <> "" And ExistWorkSheet(Cible) = False Then
        If MsgBox("Désolé, mais le plan que vous demandez n'existe pas." & Chr(13) & Chr(10) & Chr(13) & Chr(10) _
            & "Voulez-vous le créer maintenant ?", vbQuestion + vbYesNo, "INFORMATION moi") = vbYes Then
            ActiveWorkbook.Unprotect ""
            If InStr(Cible, "SERRE") <> 0 Then
                Sheets("PLAN SERRE (vierge)").Copy after:=Sheets(Sheets.Count)
                ActiveSheet.Name = Cible
                If InStr(Cible, "(1)") <> 0 Then
                    Range("O3") = "Printemps/Eté"
                    Range("AB3") = Left(Right(Cible, 8), 4)
                Else
                    Range("O3") = "Automne/Hivers"
                    Range("AB3") = Left(Right(Cible, 8), 4)
                End If
            Else
                Sheets("PLAN POTAGER (vierge)").Copy after:=Sheets(Sheets.Count)
                ActiveSheet.Name = Cible
                If InStr(Cible, "(1)") <> 0 Then
                    Range("P3") = "Printemps/Eté"
                    Range("AO3") = Left(Right(Cible, 8), 4)
                Else
                    Range("P3") = "Automne/Hivers"
                    Range("AO3") = Left(Right(Cible, 8), 4)
                End If
            End If
        End If
    End If
End If
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Scoubidou,
A mon avis le "If VbYes" n'est pas correct. Il faut passer par :
VB:
Réponse = MsgBox("Désolé, mais le plan que vous demandez n'existe pas." & Chr(13) & Chr(10) & Chr(13) & Chr(10) _
& "Voulez-vous le créer maintenant ?", vbQuestion + vbYesNo, "INFORMATION moi")
If Réponse = 6 Then ' 6 quand vbYes, 7 quand vbNo'
Voir :
 

Pièces jointes

  • Création de plans de jardin.xlsm
    290.4 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 371
Messages
2 087 707
Membres
103 648
dernier inscrit
mehdi kaddaf