Fusionner plusieurs MsgBox en 1 [Résolu]

mattbboys - 21 févr. 2013 à 14:55 - Dernière réponse : Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention
- 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.
Afficher la suite 

3 réponses

Répondre au sujet
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 21 févr. 2013 à 15:20
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Polack77
0
Utile
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 !
Commenter la réponse de mattbboys
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 21 févr. 2013 à 16:30
0
Utile
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
Commenter la réponse de Polack77

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.