[déplacé VB6 -> VBA] Déclarer une liste de données en vba [Résolu]

Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Statut
Membre
Dernière intervention
6 août 2009
- - Dernière réponse : bmwax
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Statut
Membre
Dernière intervention
6 août 2009
- 7 juil. 2009 à 13:37
Bonjour à tous, j'aimerais déclarer une liste de données string et faire une recherche de ces mots dans une boucle while pour différentes cellules d'un tableau Excel... Tout cela en VBA.

En "Francais", ca donnerait quelque chose comme ca:

list = {"aaa", "bbb", "ccc"}
for i = 1 to 10
   if cells (i,1).value= un mot de la liste
      
   end if
next i

Quelle serait la syntaxe pour une telle utilisation ?

Merci
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
29
3
Merci
salut,

encore trop vite faut croire ^^



Dim list() As Variant
'ReDim list(4)




Dim i as integer





list = Array("aa", "bb", "cc")
for i = 0 to ubound(list)
   if cells (i,1).value=list(i) then
       
   end if
next i







reste que la demande concerne sans doute de recherche "dans toute la liste" pour "plusieurs cellules", pas juste une cellule pour un élément
(sinon à quoi bon faire une liste)






Private Sub 
UserForm_Click()

    Dim list() As Variant
    list = Array("aa", "bb", "cc")
    
    'toute la première colonne
    Dim i As Integer
    For i = 1 To Columns(1).Find("", , , , xlByRows, xlNext).Row
        Debug.Print CellContainsElement(i,
1, list)
        'if CellContainsElement(i, 1, list) then

    Next i
End Sub

Function CellContainsElement(ByRef RowIndex As Integer, ColumnIndex As Integer, ByRef vasList() As Variant) As Boolean
    Dim i As Integer
    For i = 0 To UBound(vasList)
        If Cells(RowIndex, ColumnIndex).Value = vasList(i) Then
            CellContainsElement = True
            Exit For
       End If
    Next i
End Function





<small>
[../code.aspx?ID=39466 Coloration VB6, VBA,
VBS]
</small>






pas testé mais çà devrait aller
++


Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de PCPT
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
0
Merci
bonjour

Dim list() As Variant
ReDim list(4)
list = Array("aa", "bb", "cc")
for i = 1 to 10
   if cells (i,1).value=cc(1) then
       
   end if
next i
Commenter la réponse de cs_loulou69
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
0
Merci
j'ai été trop rapide erreur sur une ligne

if cells (i,1).value=liste(1) then   'ici liste(1)="bb"
Commenter la réponse de cs_loulou69
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Statut
Membre
Dernière intervention
6 août 2009
0
Merci
Merci à vous deux !


+++
Commenter la réponse de bmwax