Rechercher et afficher

Signaler
Messages postés
44
Date d'inscription
mercredi 19 septembre 2007
Statut
Membre
Dernière intervention
11 décembre 2007
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
salut


 


comment parcourire  une tableau a une dimenesion N  avec un recherche d'une chaine bien defini

et lorsque  en ne trouve pas cette chaine en va ajouter 

  on lis la ligne et on la stock dans la variable tmp  et puis rechercher
InStr(tmp, motnom(i)

3 réponses

Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,

dim Atrouve as boolean
Atrouve=false
dim LigneMot as Integer
for i=1 to len(Tableau)  '(si ton tableau commence à 1)  tu parcours ton tableau
   if InStr(Motcherche, Tableau(i)) then 'si tu trouves ton mot, tu sors de la boucle et tu sauvegardes le numéro de la ligne si t'en as besoin
      atrouve=true
      LigneMot=i
      exit for
   endif
next
if not Atrouve then 'si il l'a pas trouvé, il doit l'ajouter à la fin (sinon, adapte et classe le)
   redim tableau(1 to ubound(tableau)+1) 'encore une fois, valable si ton tableau commence à 1, sinon adapte. Ca redimensionne ton tableau pour pouvoir mettre la valeur en question
   tableau(ubound(Tableau))=MotCherche
   msgbox "Pas trouve mot"
else 'si il l'a trouvé, il t'affiche la ligne dans le tableau
   msgbox "A trouvé mot ligne " & trim(str(LigneMot))
endif
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Ah, un truc, si ton tableau a N lignes au max, dans ce cas là, tu fais de 1 à N, et tu sors lorsque y'a rien dans ta ligne, et dans ce cas, tu mets ta chaine là au lieu de rajouter une ligne derrière.
Le problème avec ce système c'est que si tes N lignes sont déjà remplies, tu peux pas rajouter de ligne.
A toi de voir donc si tu es sur que tu ne dépasseras jamais cette limite.
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour,

Une autre méthode avec Filter:

MsgBox RechercheDansTableau("mardi")
MsgBox RechercheDansTableau("vendredi")

Function RechercheDansTableau(Recherche)
Dim MonTableau()
ReDim MonTableau(5)
MonTableau(0) = "lundi"
MonTableau(1) = "mardi"
MonTableau(2) = "jeudi"
MonTableau(3) = "samedi"
MonTableau(4) = "lundi"

If UBound(Filter(MonTableau, Recherche)) >= 0 Then
   RechercheDansTableau = "l'élément recherché a été trouvé"  &vbCr& _
                           Join(MonTableau)
 Else
   MsgBox "l'élément recherché n'a pas été trouvé" &vbCr& _
          Join(MonTableau),,Recherche
   MonTableau(UBound(MonTableau)) = Recherche
   ReDim Preserve MonTableau(UBound(MonTableau) + 1)  
   RechercheDansTableau = "l'élément recherché a été rajouté au tableau" &vbCr& _
                          Join(MonTableau)
End if
End function

jean-marc