Variable global [Résolu]

Signaler
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
-
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
-
bonjour

j'ai une variabe global: toutvar
dans laquel j'ajoute des noms, pour ajouter un nom je fait : toutvar = toutvar & nom
je cherche  comment supprimer un nom qui existe dans la variable s.v.p

merci d'avance

Les yeux montrent la force de l'âme

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
En fait, ton problème est de repérer un nom sans te tromper.
Exemple : Si dans ta chaine tu as "tototitikikijujutitine" et que tu veux supprimer "titi", tu risques aussi de supprimer le "titi" de "titine" situé à la fin.
Donc, il faut impérativement installer un séparateur entre chaque nom afin d'être sûr que le mot soit entier.
Par exemple, un "|" ou un vbTab, c'est à dire un caractère facile à détecter ET qui ne risque pas d'apparaitre dans ta liste :
   toutvar = toutvar & leNom & vbTab
Ensuite, quand tu veux supprimer un des noms, il te suffira de trouver  
   vbTab & "leNom" & vbTab
et de le remplacer par
   vbTab
avec, par exemple, l'instruction Replace
   toutvar = Replace(toutvar, vbTab & "leNom" & vbTab, vbTab)

Cela amène d'autres considérations : Pour pouvoir trouver cette chaine, il faut qu'il y ait un vbTab au tout début de ta chaine (penser à le mettre lors de l'initialisation de ta chaine), ainsi qu'à la fin.

Sinon, il y a plus facile que de jongler avec les chaines : Les tableaux

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
VBA n'a jamais été un monstre de rapidité.
A toi de tester si ça tient la route.
Tester qu'une donnée est dans ta chaine peut se faire rapidement :
   If Instr(1, maChaineComplète, maChaineQueJeCherche) > 0 Then
      MsgBox "maChaineQueJeCherche est dans maChaineComplète"
   End If

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Salut,

Je me permet de dire encore plus facile : Les collections

'Constructeur
Dim Names As New Collection

'Ajour
Names.Add("Jacky")

'Récupération
Dim VarName As String = Names(0)

'Supression
Names.RemoveAt(0)

'Vidage
Names.Clear

Voila @+
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Les collections ont des avantages, mais sont beaucoup plus lentes que les tableaux.
Mais c'est vrai que dans ce genre d'appli, ça pourrait être intéressant (si pas besoin de trop jongler avec les enregistrements, notamment la supprssion qui est assez longue).

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
3
exactement jack j'ai besoin d'un code tres rapide parceque ma variable peut se remplir et vider plus que 20 fois par secondes
a ce que je sais le parcours d'une variable est rapide c'est pour sa que je veut l'utilisé.
et aussi une autre question svp, jack pour ta solution elle est bonne et je vais l'accepter mais je veut savoir un truc stp:
'remplir la variable
toutvar = toutvar & leNom & vbTab
et vérifier si un nom existe dans la variale ou extraire un nom de la variabe ?
j'utilise nam = split(trouvar,vbtab)  pui une boucle
 for i = 0 to ubound(nam)
if nam(i) = newname then ...
else...
end if
ce n'est pas un peut long vue le nombre d'ajout et suppression par seconde ??

merci encore
Les yeux montrent la force de l'âme
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
3
merci jack

Les yeux montrent la force de l'âme