XL 2021 Création MsgBox

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous,
Grâce à plusieurs XLDnautes qui se reconnaîtront (et que je remercie pour leur savoir et leur patience), j'ai pu réaliser un utilitaire pour faire mes courses au Supermarché.
Mais les courses du lundi ne sont pas les même que celles du vendredi. Le vendredi, je dois donc sélectionner les choix effectué le lundi (Effacer le contenu) mais ne surtout pas supprimer ces lignes qui répondent à des requêtes très spécifiques.
Manuellement, ça marche. Je voudrais pouvoir automatiser cet effacement à partir d'un MsgBox. J'ai bien vu quelques propositions très intéressantes dans les forums XLD mais je ne sais ni où ni comment insérer ces ligne de code dans VBE.
Si vous pouvez m'aider, j'en serais très heureux.
Pierre
 

Pièces jointes

  • Essai.xlsm
    12.4 KB · Affichages: 11
Solution
Le problème, c'est ne sais pas où (Module, Worksheet ou autre) copier ta formule. J'ai fait plusieurs essais et je me plante à chaque fois.
C'est pourtant simple et tu sais le faire...
Tu créées un bouton <Effacer> comme tu as créé tes autres boutons:
1686327674265.png

Et sur le nouveau bouton tu affectes une macro (exemple de code en message #2) que tu auras placée dans un module quelconque.

Dudu2

XLDnaute Barbatruc
Bonjour @Constantin,

Je comprends pas bien ce que tu veux faire, mais un MsgBox dont on exploite le résultat peut se présetner comme suit:
VB:
Sub a()
    Dim Bouton As Integer
 
    Bouton = MsgBox("Supprimer blablabla..", vbOKCancel + vbQuestion)
    If Bouton = vbCancel Then Exit Sub
 
    'Faire le traitement ici   
    With ActiveSheet.ListObjects("t_ListeCourses")        
        .ListColumns("DETAIL").DataBodyRange.ClearContents
        .ListColumns("QUANTITE").DataBodyRange.ClearContents
        .ListColumns("VALIDATION").DataBodyRange.ClearContents
    End With
End Sub

J'ai utilisé vbOkCancel car c'est le plus standard, mais un vbYesNo est aussi possible en testant le retour à vbNo ou vbYes selon le sens du test.

Voir le détail ici:
 
Dernière édition:

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour @Constantin,

Je comprends pas bien ce que tu veux faire, mais un MsgBox dont on exploite le résultat peut se présetner comme suit:
VB:
Sub a()
    Dim Bouton As Integer
 
    Bouton = MsgBox("Supprimer blablabla..", vbOKCancel + vbQuestion)
    If Bouton = vbCancel Then Exit Sub
 
    'Faire le traitement ici
    '.../...
End Sub

J'ai utilisé vbOkCancel car c'est le plus standard, mais un vbYesNo est aussi possible en testant le retour à vbNo ou vbYes selon le sens du test.

Voir le détail ici:
Bonsoir Dudu2,
Bonjour Dudu2,
CA roule?

Constantin:
Avec ce que j'ai compri. Pour Effacement, voir commentaire cellule G1
 

Dudu2

XLDnaute Barbatruc
J'ai corrigé le code du message #2 en supposant que ton tableau est un tableau structuré comme l'était celui du sujet précédent avec les colonnes à effacer (si j'ai bien compris lesquelles) sur la base du tableau de ce sujet qui n'est pas structuré ce qui est à éviter.
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour @Constantin,

Je comprends pas bien ce que tu veux faire, mais un MsgBox dont on exploite le résultat peut se présetner comme suit:
VB:
Sub a()
    Dim Bouton As Integer
 
    Bouton = MsgBox("Supprimer blablabla..", vbOKCancel + vbQuestion)
    If Bouton = vbCancel Then Exit Sub
 
    'Faire le traitement ici  
    With ActiveSheet.ListObjects("t_ListeCourses")       
        .ListColumns("DETAIL").DataBodyRange.ClearContents
        .ListColumns("QUANTITE").DataBodyRange.ClearContents
        .ListColumns("VALIDATION").DataBodyRange.ClearContents
    End With
End Sub

J'ai utilisé vbOkCancel car c'est le plus standard, mais un vbYesNo est aussi possible en testant le retour à vbNo ou vbYes selon le sens du test.

Voir le détail ici:
Re...
C'est pourtant simple du point de vue d'un ignorant comme moi... Je veux simplement pouvoir effacer le contenu ma liste de courses sans toucher aux magnifiques formules et menus déroulants que tu as su créer. Le problème, c'est ne sais pas où (Module, Worksheet ou autre) copier ta formule. J'ai fait plusieurs essais et je me plante à chaque fois.
Le fichier "Essai que j'ai mis en pièce jointe est, tu t'en doutes, un ersatz de mon fichier Leclerc.
Le paramètre vbOkCancel me convient bien. En relisant ton code, je me dis qu'il faudra que j'insère 2 lignes pour effacer le contenu des catégories et rayons.
Bien cordialement,
Pierre
 

Dudu2

XLDnaute Barbatruc
Le problème, c'est ne sais pas où (Module, Worksheet ou autre) copier ta formule. J'ai fait plusieurs essais et je me plante à chaque fois.
C'est pourtant simple et tu sais le faire...
Tu créées un bouton <Effacer> comme tu as créé tes autres boutons:
1686327674265.png

Et sur le nouveau bouton tu affectes une macro (exemple de code en message #2) que tu auras placée dans un module quelconque.
 

Constantin

XLDnaute Occasionnel
Supporter XLD
Ça parait simple comme ça...
Je sui vraiment pas doué mais là, j'ai tout compris.
Mille mercis,
Pierre
Re,
Fichier modifie pour ne pas effacer les titres de colonne
J'ai bien reçu ton fichier qui fonctionne très bien et qui rejoint celui-que m'a envoyé Dudu2. J'ai maintenant tous les éléments pour le tester sur mon fichier (dont Dudu2 est un des géniteurs) et je vais essayer de chaîner à cette macro une condition de sauvegarde au cas où je ferais une bêtise, ce qui m'arrive plus souvent qu'à mon tour.
Je pense qu'il faudra que j'insère en amont de la macro qui déclenchera l'effacement des contenus, une macro "safe" avec un nom de fichier de sauvegarde et une destination identifiés. Là, je rentre dans la quatrième dimension o_O
Pierre
 

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35