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
C'est pourtant simple et tu sais le faire...
Tu créées un bouton <Effacer> comme tu as créé tes autres boutons:
Et sur le nouveau bouton tu affectes une macro (exemple de code en message #2) que tu auras placée dans un module quelconque.
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.
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.
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.
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.
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
C'est pourtant simple et tu sais le faire...
Tu créées un bouton <Effacer> comme tu as créé tes autres boutons:
Et sur le nouveau bouton tu affectes une macro (exemple de code en message #2) que tu auras placée dans un module quelconque.
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
Pierre
Promis ! (il était temps avant que je ne fasse des bidouillages)
N'y passe quand même tout ton temps (c'est l'heure de l'apéro
Rassure-toi, j'ai fais une copie "martyre" pour faire mes essais de bidouillages alias "Aventures incertaines"
Porte-toi bien !
Pierre