Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Mise en forme MsgBox

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 !

Constantin

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous,
J'essaye en vain de pouvoir "améliorer" mes MsgBox. Sujet déjà évoqué sur XLD mais solutions que je n'arrive pas à comprendre (je sais, je ne suis pas bon...)
J'aimerai donc, à minima, pouvoir mettre en gras certaines informations de mes MsgBox. Il faudrait passer par des UserForms...
En gros, pour aller chercher ma baguette à 50 mètres de chez moi, il faudrait que je passe par New York ?
J'ai fait toutes les recherches sur le Web pour résoudre ce problème. La solution présentée sur XLD est bien appétissante mais je n'y arrive pas (je ne maitrise pas du tout les UserForms)...
Au cazou, je vous joint un fichier anonymisé et les messages (codes) que je voudrais voir apparaître autrement (en gras ou en rouge ou les deux...).

Sub Macro2()
Call SauvegardeAutomatique
Dim L%, Rep$, Ligne%, DL%, Nom$, Prénom$
On Error GoTo FinR
With Sheets("base de données")
L = Selection.Row ' Ligne sélectionnée
Nom = Cells(L, "K"): Prénom = Cells(L, "L")
If Nom = "" Or Prénom = "" Then MsgBox "Sélectionnez un nom valide en colonne Nom de la feuille departs.": Exit Sub ' Verif si ligne valide
Rep = MsgBox("Voulez vous effacer les données " & L & " concernant " & Nom & " " & Prénom & " ?" & _
Chr(10) & "Dans la base de données.", vbExclamation + vbYesNo, "Demande de confirmation.")
If Rep = vbNo Then Exit Sub
DL = .Cells(Rows.Count, "E").End(xlUp).Row ' recherche dernière ligne des noms dans base de données
Application.EnableEvents = False
For Ligne = 4 To DL ' on parcourt toutes les lignes
If .Cells(Ligne, "E") = Nom And .Cells(Ligne, "F") = Prénom Then ' si Nom et Prénom trouvés, on efface
Range(.Cells(Ligne, "E"), .Cells(Ligne, "AA")).ClearContents
Application.EnableEvents = True
Exit Sub
End If
Next Ligne
End With
FinR:
Application.EnableEvents = True
MsgBox "Ligne sélectionnée effacée ", vbOKOnly + vbInformation, "Pour information"
End Sub
Bien cordialement,
 

Pièces jointes

Solution
Mes tentatives :
- installer les 2 lignes
Sheets("base de données").Select
Range("E4").Select

dans une autre macro (j'ai pris "sauvegarde automatique" au hasard). Cela fonctionne.
- Modifier les paramètres de sécurité : aucune effet
- MsgBox "Ligne sélectionnée effacée ", vbOKOnly + vbInformation, "Pour information" ne s'affiche plus en fin de macro...
A chaque jour suffit sa peine, bonne nuit (au cas où je ferais un rêve qui me donne la solution)
Bonjour "Gérard",
Pouvez-vous m'envoyer votre fichier ? Il m'intéresse beaucoup parce que je croyais avoir réussi avec les explications de sylvanu mais, si mon userform s'affiche bien, il ne produit rien. Au cas où, je vous mets mon fichier en PJ. (UserForm qui bugue =EXPORTATION
 

Pièces jointes

C'est normal que tu es Objet requis : MsgBoxHtml est un userform : c'est lui qui contient un activeX WebBrowser .
En pièce jointe un classeur avec un test qui utilse le MsgBoxHtml
 

Pièces jointes

Bonjour à tous,
Je me bats pour ajouter un UserForm (EXPORTATION) dans le fichier joint.
L'UserForm existe bien mais la macro qui le lance ne produit rien.
Je ne comprends pas pourquoi ou plutôt j'ai du rater quelque chose dans mon code...
Pouvez-vous m'aider ?
Cordialement
 

Pièces jointes

Re,
Dans l'userform Exportation vous faites un Unload de Confirmation. Et vous avez inversé oui et non.
En PJ avec pour Exportation :
VB:
Private Sub CommandButton1_Click()
Rep = vbYes
Unload EXPORTATION
End Sub
Private Sub CommandButton2_Click()
Rep = vbNo
Unload EXPORTATION
End Sub
 

Pièces jointes

J'ai cherché longtemps.
"Rep" est une variable globale donc visible par tous les modules, il est déclaré en public avec :
VB:
Public Rep$
et ne doit être déclarée qu'une seule fois.
Or dans Macro2 vous le redéclarer en variable privé, donc ça coince lors de la réponse du userform, il utilise cette variable privée qui est vide.
 

Pièces jointes

Chapeau !
Je ne voyais pas du tout d'où ça pouvait venir !
Merci !
 
Chapeau !
Je ne voyais pas du tout d'où ça pouvait venir !
Merci !
Décidément...
Je voudrais ajouter en fin d'action sur macro2()
Sheets("base de données").Select
Range("E4").Select
J'ai essayé toutes sortes d'emplacements dans le code, je n'arrive pas à atterrir dans la base de données.
Pour clore ce long échange... En attendant une prochaine fois ?
 
Le déplacement vers l'autre feuille ne se fait pas. Par contre, la ligne s'efface bien. C'est le principal. Je vais faire des tests sur un fichier tout neuf...
Désolé pour ce temps que je vous fais perdre.
 
- 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
658
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
460
Réponses
5
Affichages
920
Réponses
2
Affichages
507
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…