De: Laurent longre Objet: Re: variable tableau et fonction match Date : vendredi 30 juin 2000 09:58 En fait non, la virgule dans les Dim ... As..., ... As... n'est pas "transitive" en VBA (contrairement au langage C, par exemple). Une déclaration telle que : Dim Var1, Var2 As double, Var3, Var4 As Integer ... revient donc en fait aux 4 déclarations suivantes : Dim Var1 Dim Var2 As double Dim Var3 Dim Var4 As Integer Var1 et Var3 étant déclarés sans type explicite, elles prendront par défaut le type Variant. Le seul intérêt de la déclaration sur une seule ligne, c'est que ça évite de répéter l'instruction "Dim". A part ça, il est nécessaire de spécifier explicitement le type de chaque variable si on veut éviter les variants, même si ce type le même pour toutes les variables déclarés: Dim Var1 As String, Var2 As String, Var3 As String Et non pas : Dim Var1, Var2, Var3 As String ... où seule Var3 est de type String, les deux autres variables étant de type Variant. Laurent "Jacky @*10-1" a écrit : > > Quand on déclare > Dim nbdimension, monchemin As String > je pensais que les deux etaient texte > A plus > Jacky > > Laurent longre a écrit dans le message <395BBF08.E7C11A2C@free.fr>... > >"Jacky @*10-1" a écrit : > >> > >> Pour le message "incompatibilité de type" > >> Chemins(nbdimension + 1) = chemin.Text > >> nbdimension etant un texte y doit pas aimer le + > > > >Ah non, nbdimension est une variable Variant. Comme Stéphane lui affecte > >ensuite une valeur numérique renvoyé par UBound, ce variant contient > >bien un type numérique, pas un String. > > > >Laurent > > > >> si c'est la position dans le tableau > >> Chemins(nbdimension (0,1)) = chemin.Text > >> A plus > >> Jacky > >> > >> STéphane a écrit dans le message ... > >> >Bonsoir Les inconditionnels du forum > >> > > >> > > >> > > >> >je réfléchis sur une macro dans laquelle je dois vérifier si une valeur > >> (une > >> >string) existe dans une variable tableau globale, cette variable peut > être > >> >vidé fréquemment. Si la valeur n'existe pas je dois la rajouter, puis > >> >mettre à jour une listbox. > >> > > >> >Pour l'instant mes tentatives ont débouché sur "impossiblité de lire > la > >> >propriété match de la function workseet', et sur "incompatibilité de > type" > >> > > >> >J'ai en fait l'impression qu'excel ne veut pas considérer ma variable > >> >Chemins (qui est vide pour l'instant) comme une variable tableau :-) > >> > > >> >J'ai essayé le test d'existence avec Worksheetfunction.Match, mais nada. > Si > >> >la valeur n'existe pas, cela retourne une erreur ? dans quel cas je peux > >> >intercepter et iinscrire ma valeur mais je dois mal m'y prendre. > >> >J'ai jamais maitrisé ça et en plus je rouille :-) > >> > > >> >Sub combox_chemin_backup() > >> >Dim nbdimension, monchemin As String > >> >'On Error Resume Next > >> > > >> >Position = Worksheetfunction.Match(chemin.Text, Chemins) > >> > > >> > > >> >If (Err) Then > >> > nbdimension = UBound(Chemins) > >> > > >> > Chemins(nbdimension + 1) = chemin.Text > >> > 'BubbleSort (Chemins) 'pour trier mon array > >> > combox_chemin.List = Chemins > >> >Else > >> >End If > >> >End Sub > >> > > >> > > >> >Merci d'avance > >> >Stéphane > >> > > >> >