Message Box

Résolu
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 19 nov. 2009 à 23:05
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 20 nov. 2009 à 23:51
Bonsoir,

Une question concernant les messages box.

C'est ligne de code permette de faire ressortir les lignes de la list 4 ne contenant pas le signe +.

Ceci fonctionne bien.

Par contre comment puis-je faire pour afficher toutes les lignes, d'un seul coup, dans un seul message box, car à l'heure actuelle je suis obligé de valider chaque msgbox pour passer à la ligne suivante ne contenant pas le signe +.

****************************************
For h = 0 To List4.ListCount - 1
List4.ListIndex = h
ipos = InStr(List4.Text, "+")

If ipos = 0 Then MsgBox "Regardez ces lignes " + List4 + " ? ", vbOKOnly + vbExclamation, "Erreur"

Next
****************************************

Merci pour votre aide.

6 réponses

Claiyah Messages postés 580 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 20 avril 2010 3
20 nov. 2009 à 14:30
Option Explicit
Private Sub Command1_Click()
Dim i As Long, result As String
'on parcour la liste ici
For i = 0 To List4.ListCount - 1
's'il n y a pas de "+" dans la chaine
If InStr(1, List4.List(i), "+") < 1 Then
'si la chaine n'est pas vide on l'ajoute à notre resultat
if List4.List(i) <> "" then result = result & List4.List(i) & vbCrLf
End If
Next
MsgBox result
End Sub

Private Sub Form_Load()
List4.AddItem "C+"
List4.AddItem "N+"
List4.AddItem "B"
List4.AddItem "BL+"
List4.AddItem "G+"
List4.AddItem "BLO"
List4.AddItem "CT+"
End Sub


sa devrait marcher
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 nov. 2009 à 00:00
Salut
Il te suffit de ranger tes résultats dans une variable chaine et de t'en servir dans la MsgBox.
Dim sTemp As String
...  ' la boucle
sTemp = sTemp & vbCrLf & "la chaine que tu ajoutes"
...  ' après la boucle
MsgBox sTemp

Attention toutefois : Le texte d'une MsgBox n'est pas infini. Tu peux ne pas tout voir si trop long ou trop de lignes

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
20 nov. 2009 à 00:25
Merci pour ta réponse par contre je ne sais pas quoi mettre dans « la chaîne que tu ajoutes »


********************************
Dim sTemp As String

For h = 0 To List4.ListCount - 1
List4.ListIndex = h
ipos = InStr(List4.Text, "+")

If ipos = 0 Then MsgBox sTemp

sTemp = sTemp & vbCrLf & "la chaîne que tu ajoutes"

Next

MsgBox sTemp
End Sub
***********************************

Merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
20 nov. 2009 à 01:08
salut,

un petit effort quand même
tu veux afficher la valeur, c'est donc cette valeur ....
sTemp = sTemp & vbCrLf & List4.Text

ce qui donne en... plus propre :

Dim sTemp As String, h as long
sTemp =vbnullstring

with List4
For h = 0 To .ListCount - 1
.ListIndex = h
if InStr(1, .Text, "+") = 0 then
  if len(stemp)=0 then
    sTemp = "Veuillez vérifier les valeurs suivantes :" & vbcrlf
  else
    sTemp = sTemp & vbCrLf & .text
  endif
endif

Next h
end with

if len(stemp) then MsgBox sTemp 'ELSE = pas d'erreur
End Sub 

[hr]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
20 nov. 2009 à 10:50
Bonjour,

J'ai essayé ton code mais si je fais une list4.additem comme ci-dessous je devrais avoir un message box avec 2 références, la B ainsi que la BLO, alors qu'il y en a qu'une qui apparaît, c'est la BLO.

As-tu une idée?

List4.AddItem "C+"
List4.AddItem "N+"
List4.AddItem "B"
List4.AddItem "BL+"
List4.AddItem "G+"
List4.AddItem "BLO"
List4.AddItem "CT+"

**********
Dim sTemp As String, h As Long
sTemp = vbNullString

With List4
For h = 0 To .ListCount - 1
.ListIndex = h
If InStr(1, .Text, "+") = 0 Then
If Len(sTemp) = 0 Then
sTemp = "Veuillez vérifier les valeurs suivantes :" & vbCrLf
Else
sTemp = sTemp & vbCrLf & .Text
End If
End If

Next h
End With

If Len(sTemp) Then MsgBox sTemp 'ELSE = pas d'erreur

*********************

Merci
0
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
20 nov. 2009 à 23:51
Merci à toi Claiyah



Bonne soirée.
0
Rejoignez-nous