Fusionner plusieurs MsgBox en 1

Résolu
mattbboys - 21 févr. 2013 à 14:55
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 21 févr. 2013 à 16:30
Bonjour,

J'utilise un Userform où l'utilisateur rentre des paramètres. S'il ne remplit pas certains champs de paramètre, mon application attribue automatiquement une valeur par défaut à ce paramètre.

Comme j'ai 4 paramètres par défaut, si l'utilisateur ne remplit rien, 4 MSGBOX apparaissent en disant "La valeur par défaut pour le paramètre X est:".

J'aimerais créer un seul MSGBOX qui intègre les 4 messages éventuels (jusqu'à aucun message si l'utilisateur remplit tous les champs).

Exemple d'un paramètre:

If (UserForm1.TextBox2.Value) = "" Then
Dim msg, style, title, response
msg = "Début à partir de la 1ière ligne"
title = "ACadApp"
style = vbInformation
response = MsgBox(msg, style, title)
UserForm1.TextBox2.Value = 1
End If


J'espère avoir été clair, en gros est-il possible de fusionner les msgbox avec des conditions...

Je travaille sur Microsoft Visual Basic avec le logiciel Autocad.

3 réponses

Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 févr. 2013 à 15:20
Bonjour,

Si je comprend bien, tu voudrais informé ton utilisateur sur les paramètres par défaut lorsqu’il valide ton écran de saisi.

Le plus simple serais de testé tes paramètres les un a la suite des autres puis d'affiché le msgbox.

Dim msg, style, title, response
title = "ACadApp"
msg = ""
If (UserForm1.TextBox2.Value = "") Then
   If (msg <> "") then
      msg = msg & VbCrLf
   End if
   msg = msg & "Début à partir de la 1ière ligne"
End if
If (UserForm1.TextBox3.Value = "") Then
   If (msg <> "") then
      msg = msg & VbCrLf
   End if
   msg = msg & "Second message"
End if
'[...]
If (msg <> "") Then
   response = MsgBox(msg, style, title)
End if


L’idéale serais sans doute de crée une procédure qui :
Testerais si la valeur est rempli
Ajouterais un saut de ligne si un message est déjà présent dans la variable

L'entête resemblerais alors à ça :
Private/public sub TestSiVideEtAjouteMessage(byref Message as string, byval Valeur as string, byval MessageAAjouterSiVite as string)


Amicalement
3
Mille fois merci, c'est beaucoup plus agréable maintenant !

Tout fonctionne, je vais m’atteler à créer une fonction, cela fera plus propre dans mon code.

PS: Bravo à ce forum qui vous donne une réponse en deux temps, trois mouvements et quatre clics !
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 févr. 2013 à 16:30
Alors mille fois de rien, te répondre m'a pris 3 min à tout cassé ^^
Par contre pense à cliquer sur "Réponse acceptée" pour fermé le sujet

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Rejoignez-nous