Simplifier un code

G

G'Claire

Guest
Salut les forumeuses et forumeur,

J'utilise ce code ( Dont une partie m'a été donné par michel "Cible", que je remercie) pour une confirmation de saisie de données avec un test si un controle n'est pas rempli que celui-ci ne fasse pas partie de la confirmation :

Dim Cible As String

If TextBoxSup = "" Then

Cible = Application.WorksheetFunction.Substitute(TextBoxCableurs, vbCrLf, Chr(10) & vbTab)

Msg7 = MsgBox(" Vous allez créer une fiche avec les données suivantes :" _
& vbCrLf & vbCrLf & "Société donneuse d'ordre : " & TextBoxSociete.Value _
& vbCrLf & " Interlocuteur : " & ComboBoxClients.Value _
& vbCrLf & vbCrLf & "Désignation produit : " & TextBoxDesignationProduit.Value _
& vbCrLf & "Référence : " & TextBoxReferenceProduit.Value _
& vbCrLf & "Version : " & TextBoxIndice.Value _
& vbCrLf & "Indice : " & TextBoxVersion.Value _
& vbCrLf & vbCrLf & "Cableurs suceptible de faire le produit : " _
& vbCrLf & vbCrLf & vbTab & Cible & vbCrLf & vbCrLf & " Voulez-vous continuer ?", vbYesNo + vbQuestion, "Confirmation")

Else

Cible = Application.WorksheetFunction.Substitute(TextBoxCableurs, vbCrLf, Chr(10) & vbTab)


Msg7 = MsgBox(" Vous allez créer une fiche avec les données suivantes :" _
& vbCrLf & vbCrLf & "Société donneuse d'ordre : " & TextBoxSociete.Value _
& vbCrLf & " Interlocuteur : " & ComboBoxClients.Value _
& vbCrLf & vbCrLf & "Désignation produit : " & TextBoxDesignationProduit.Value _
& vbCrLf & "Référence : " & TextBoxReferenceProduit.Value _
& vbCrLf & "Version : " & TextBoxIndice.Value _
& vbCrLf & "Indice : " & TextBoxVersion.Value _
& vbCrLf & "Sup : " & TextBoxSup.Value _
& vbCrLf & vbCrLf & "Cableurs suceptible de faire le produit : " _
& vbCrLf & vbCrLf & vbTab & Cible & vbCrLf & vbCrLf & " Voulez-vous continuer ?", vbYesNo + vbQuestion, "Confirmation")

End If

If Msg7 = vbNo Then Exit Sub
If Msg7 = vbYes Then

'Suite du code

Existe t'il un moyen de faire plus simple car j'aimerai faire ce test sur plusieurs controls car leur saisie ne sera pas obligatoire et je ne voudrai pas les voir dans la confirmation .

Merci, G'Claire
 
R

Roland

Guest
Bonjour G'Claire

Tu peux déjà sortir du test if then toute la partie du message qui est identique dans les deux cas et ne garder danc celui-ci faire

If TextBoxSup = "" Then Msg7 = Msg7 & vbCrLf & "Sup : " & TextBoxSup.Value
Cette solution met le texte a la fin si cela te gène dis le je te donnerai une autre solution (en gros c'est mettre une variabla String dans ton message à l'endroit souhaité et préalablement dans ton test mettre "" ou vbCrLf & "Sup : " & TextBoxSup.Value dans celle-ci)

A+ Roland
 
R

Roland

Guest
Bonsoir G'Claire

Si tu veux garder la disposition initiale fait comme suit
Dim toto as string ' en début de sub

If TextBoxSup > "" Then toto= vbCrLf & "Sup : " & TextBoxSup.Value

Msg7 = MsgBox(" Vous allez créer une fiche avec les données suivantes :" _
& vbCrLf & vbCrLf & "Société donneuse d'ordre : " & TextBoxSociete.Value _
& vbCrLf & " Interlocuteur : " & ComboBoxClients.Value _
& vbCrLf & vbCrLf & "Désignation produit : " & TextBoxDesignationProduit.Value _
& vbCrLf & "Référence : " & TextBoxReferenceProduit.Value _
& vbCrLf & "Version : " & TextBoxIndice.Value _
& vbCrLf & "Indice : " & TextBoxVersion.Value _
& toto_
& vbCrLf & vbCrLf & "Cableurs suceptible de faire le produit : " _
& vbCrLf & vbCrLf & vbTab & Cible & vbCrLf & vbCrLf & " Voulez-vous continuer ?", vbYesNo + vbQuestion, "Confirmation")


Bon courage A+ Roland
 

Discussions similaires

G
Réponses
3
Affichages
2 K
G'Claire
G
G
Réponses
1
Affichages
1 K
G'Claire
G

Statistiques des forums

Discussions
313 137
Messages
2 095 626
Membres
106 307
dernier inscrit
LETIFI