Microsoft 365 Msgbox si on change de feuille sans vider une cellule

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat66

XLDnaute Impliqué
Bonjour le forum,

Sur la feuil1, la cellule BV28 n'est pas vide et je souhaite aller sur une autre feuille

est il possible d'afficher un msgbox avant d'afficher la feuil2 qui me rappelle que j'ai oublié de vider la cellule BV28 et qui me propose
soit de continuer sur la feuil2, mais vide la cellule BV28,
soit on reste sur la feuil1

merci beaucoup

cdt
 
Solution
Bonjour,

Sur la feuil1, la cellule BV28 n'est pas vide et je souhaite aller sur une autre feuille

est il possible d'afficher un msgbox avant d'afficher la feuil2 qui me rappelle que j'ai oublié de vider la cellule BV28 et qui me propose
soit de continuer sur la feuil2, mais vide la cellule BV28,
soit on reste sur la feuil1

Une proposition :
VB:
Private Sub Worksheet_Deactivate()
'
    If [BV28] <> "" Then
        If MsgBox("BV28 pas vide !" & vbCrLf & vbCrLf & "Vider BV28 et continuer ?", vbYesNo, "Problème") = vbYes Then
            [BV28].ClearContents
        Else
            Me.Activate
        End If
    End If

End Sub
Bonsoir Pat,
Si j'ai bien tout compris :
Code:
Sub Worksheet_Activate()
    If Sheets("Feuil1").[BV28] = "" Then Exit Sub
    Question = MsgBox("La cellule BV28 ne la Feuil1 n'est pas vide." & Chr(10) & _
                    "Voulez vous revenir sur la Feuil1 pour vider cette cellule ?", _
                    vbQuestion + vbYesNo + vbDefaultButton2, "ALERTE")
    If Question = vbYes Then
        Sheets("Feuil1").Select
    Else
        Sheets("Feuil1").[BV28] = ""
    End If
End Sub
 

Pièces jointes

Bonjour,

Sur la feuil1, la cellule BV28 n'est pas vide et je souhaite aller sur une autre feuille

est il possible d'afficher un msgbox avant d'afficher la feuil2 qui me rappelle que j'ai oublié de vider la cellule BV28 et qui me propose
soit de continuer sur la feuil2, mais vide la cellule BV28,
soit on reste sur la feuil1

Une proposition :
VB:
Private Sub Worksheet_Deactivate()
'
    If [BV28] <> "" Then
        If MsgBox("BV28 pas vide !" & vbCrLf & vbCrLf & "Vider BV28 et continuer ?", vbYesNo, "Problème") = vbYes Then
            [BV28].ClearContents
        Else
            Me.Activate
        End If
    End If

End Sub
 
Dernière édition:
bonsoir Sylvanu,

Merci pour votre aide

votre solution fonctionne bien mais je ne vais pas forcément aller sur la feuil2
Peut on faire en sorte que quelque soit la feuille choisit, le message s'affiche si BV 28 n'est pas vide ?

merci
 
re,

je reviens vers vous messieurs car je rencontre un problème avec vos deux propositions.
Lorsque je souhaite revenir sur la feuil1, Excel me signale une erreur 1004 à l'activation de n'importe quelle feuille que j'ai voulu afficher, avez vous une idée, merci ?

Private Sub Worksheet_Activate() (de la feuille que j'ai voulu afficher)
Range("A1:Q3").Select (erreur 1004)
 
Bonjour,

Le bug vient du fait que la feuille active n'est pas la feuille de la macro donc utilisez ;
VB:
Private Sub Worksheet_Activate()
    If ActiveSheet.Name <> Me.Name Then Exit Sub
    Range("A1:W5").Select
    ActiveWindow.Zoom = True
    ScrollArea = "A1:W35"
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
141
Retour