pb avec ubound

pb avec ubound - VB/VBA/VBS - Programmation

Marsh Posté le 04-04-2003 à 12:20:18    

voila je veut faire un module qui va gerer un tableau dynamique de string (ajout d element par exemple).
Voici le code :
 
Public msg() As String
 
Public Sub addMsg(str As String)
     ReDim Preserve msg(UBound(msg) + 1)
     msg(UBound(msg) - 1) = str
End Sub
 
Ca plante sur ubound je comprends pas pkoi.
Quand je met ca dans un formulaire ca marche
 
Des idees ?

Reply

Marsh Posté le 04-04-2003 à 12:20:18   

Reply

Marsh Posté le 04-04-2003 à 13:08:32    

dragonspyro93 a écrit :

voila je veut faire un module qui va gerer un tableau dynamique de string (ajout d element par exemple).
Voici le code :
 
Public msg() As String
 
Public Sub addMsg(str As String)
     ReDim Preserve msg(UBound(msg) + 1)
     msg(UBound(msg) - 1) = str
End Sub
 
Ca plante sur ubound je comprends pas pkoi.
Quand je met ca dans un formulaire ca marche
 
Des idees ?


 
tu pourrais être plus précis ?


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 04-04-2003 à 13:16:06    

En fait c est simple je veut faire un module qui va gerer un tableau dynamique de string
donc pour ajouer un string a ce tableau dynamique il faudra faire addmsg("rere" ) par exemple.
 
Le probleme c est que  ca plante : subscript ou of range
au niveau du Redim
 
je ne vois pas comment etre plus precis

Reply

Marsh Posté le 04-04-2003 à 13:23:42    

tout simple: ton tableau n'est pas initialisé, il a besoin d'un premier redim histoire qu'il compte au moins un élément.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 04-04-2003 à 13:24:24    

ok merci beaucoup

Reply

Marsh Posté le 04-04-2003 à 13:25:33    

y a t il une fonction comme load mais pour les modules ???
qui se fait tout au debut
 
merci bcp

Reply

Marsh Posté le 04-04-2003 à 13:31:02    

dans les modules, non.
 
Dans les forms: Initialize (avant chargement de la partie visuelle) et Load (après chargement de la partie visuelle)
 
Pour les usercontrols et classes: Initialize.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 04-04-2003 à 13:36:12    

merci beaucoup mon pb est resolut

Reply

Marsh Posté le 10-09-2006 à 03:10:15    

J'ai le meme problème.
 
J'ai des macro dans lesquelles je scan des tableaux mais si le tableau n'existe pas Ubound plante.
 
Hors je ne peux pas faire un redim avant car si mon tableaux existe je vais l'ecraser ...
 
Existe t'il une fonction permettant de savoir si le tableau existe ou pas ?
 
Merci d'avance.
 
 
 

Reply

Marsh Posté le 11-09-2006 à 17:23:02    

tu dois gérer l'erreur renvoyer par ubound qd ton tableau à une dim=0.
sinon pour ne pas ecrser ton tableau mets preserve après redim.
voici du code pecher ailleurs:
 
Private Function TailleTab(Tableau() As String) As Integer
 
On Error GoTo vide
TailleTab = UBound(Tableau)
Exit Function
 
vide:
TailleTab = 0
 
End Function
 
ou
 
Public Function ContientElements(ByVal tableau As Variant) As Boolean
 
Dim indice As Long
 
On Error goto vide
indice = UBound(tableau)
ContientElements = True
Exit Function
 
vide:
 
End Function
 

Reply

Marsh Posté le 11-09-2006 à 17:23:02   

Reply

Marsh Posté le 12-09-2006 à 13:57:57    

Bonjour Acrosomia
 
Merci pour ton aide, j'avais trouvé cette fonction en cherchant un peu =)
 
Mais ca me renvois un message d'erreur. si tu as une idée >  
http://forum.hardware.fr/hardwaref [...] 6078-1.htm
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed