Les tableaux et les msgbox

Résolu
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 - 3 sept. 2005 à 11:44
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 3 sept. 2005 à 18:07
Comment peut-on utiliser, tout une partie d'un tableau ?
(par exemple dans un SEUL msgbox...)
mais en vbs...
(parce que je crois qu'en vb, il ya la possibilité d'utilisé le mot clé "to"...)

voici l'exemple :

msgbox (Voici le contenu de chaque variable du tableau : " & tableau1(....))

Merci !
;)

12 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 sept. 2005 à 11:54
Essaye ceci :



Dim sContenu As String

Dim i As Integer



For i = 0 to UBound(tableau1)



Let sContenu = sContenu & " " & tableau1(i)



Next i



Call msgbox ("Voici le contenu de chaque variable du tableau : " & s)

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 sept. 2005 à 17:54
l'agressivité n'est qu'interprétée (donc à tord, quoi que le soulever l'incite)
comme tu le dis, dans ta langue, la "plage" correspond bien à 2valeurs. j'ai donc relevé en disant que ta précision portait à confusion, simplement.
(d'où ma proposition de possibilités...)

disons donc que GetLast est incrémenté par le InputBox (donc 40)

if UBound(tableau1)<GetLast-1 Then MsgBox "INVALIDE": exit sub
'tu peux aussi ici gérer les autres erreur, tels que IsNumeric, entier, etc...


Dim sContenu As String: sContenu=""
Dim i As Integer


For i = 0 to GetLast-1
if lenb(tableau1(i))>0 then sContenu = sContenu & i+1 & "° : " & tableau1(i) & vbcrlf
Next i


msgbox "Voici les valeurs non-nulles de votre sélection : " & vbcrlf & scontenu

ps : essaie de ne pas être désagréable avec les personnes qui se donnent la peine de perdre du temps pour l'esprit de communauté stp.

PCPT
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 sept. 2005 à 11:54
Oups, je voulais dire bien entendu :

Call msgbox ("Voici le contenu de chaque variable du tableau : " & sContenu)

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
3 sept. 2005 à 12:01
Ok, ça marche !
merci,
Mais si je veux définir une plage spécial du tableau ?
0

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

Posez votre question
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
3 sept. 2005 à 12:07
J'ai trouvé ça comme solution, mais c'est assez barbare...


For z = 1 to UBound(tableau1)

sContenu = sContenu & "" & tableau1(z)

if tableau(z) = "" then
exit for
end if

next

Call msgbox ("Voici le contenu de chaque variable du tableau : " & sContenu)

Donc si tu as une solution pour, carrément définir une plage de caracteres ce serait mieux...

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
3 sept. 2005 à 12:33
tequila, c'est exactement le même que Dark, ton exemple (juste que tu commences à 1).
si tu veux une plage, donc par exemple de 3 à 10, alors z=3 to 10, c'est tout.... (donc 8 résultats)
(ou j'ai mal compris...)
PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 sept. 2005 à 12:36
tu peux aussi faire un while lenb(tableau(z))>0 scontenu = scontenu & vbcrlf & tableau(z)
sans oublier d'incrémenter z. et il faut gérer l'éventuelle erreur pour le dernier, si aucune valeur n'est vide.
PCPT
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
3 sept. 2005 à 16:56
Nan, mais, en faite, j'ai oublié de préciser...
j'ai un tableau nommé "tableau1" qui peut contenir 1000 valeurs (au cas où...lol)
et donc il va forcement utiliser une plage de valeur non utilisé, et j'aimerai qu'elle ne s'affiche pas dans le msgbox...
c'est pour ça que j'aimerais savoir comment affiché une PLAGE d'un tableau... (plage qui est la valeur renvoyé d'une inputbox...
voila !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 sept. 2005 à 17:05
"une plage", çà veut rien dire (par rapport à ce que tu "précises").
tu veux quoi, tout afficher SI les valeurs sont non-nulles?
afficher les non-nulles contenues dans l'équart donné par l'utilisateur?
afficher les valeurs à partir du numéro indiqué par l'utilisateur jusqu'à ce que tu tombes sur une valeur nulle?

de toute manière, tu as assez avec toutes les réponses pour faire chacun de ces choix....
PCPT
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
3 sept. 2005 à 17:25
Je te trouve très agressif mais bon...
C'est sur que personne n'a débuté un jour...

Mais je voudrais que si l'utilisateur dis "40" alors, les 40 premiere valeur du tableau s'affiche...
Voila !
Dans ma langue (française...) une "plage" signifie, dans ce contexte, les valeurs contenues de, par exemple, 1, jusqu'à, par autre exemple, 40...!
0
tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 33
3 sept. 2005 à 17:59
Ok, merci, c'est pas grave, je recherchais juste un truc du genre ( 1 to 40) qui marche en vbs, mais vu que l'on doit obligatoirement utiliser une instruction if ben dans ce cas, j'avais déja trouvé...
Merci quand meme !
;)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 sept. 2005 à 18:07
bah si tu veux juste éviter le Len ou LenB, remplace :

if lenb(tableau1(i))>0 then sContenu = sContenu & i+1 & "° : " & tableau1(i) & vbcrlf

par

if tableau1(i)<>"" then sContenu = sContenu & i+1 & "° : " & tableau1(i) & vbcrlf

PCPT
0
Rejoignez-nous