Fusionner plusieurs MsgBox en 1 [Résolu]

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

Votre réponse

3 réponses

Meilleure réponse
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
- 21 févr. 2013 à 15:20
3
Merci
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

Merci Polack77 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de Polack77
0
Merci
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
Messages postés
1100
Date d'inscription
mercredi 22 mars 2006
Dernière intervention
15 avril 2018
- 21 févr. 2013 à 16:30
0
Merci
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.