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

Signaler
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Statut
Membre
Dernière intervention
6 août 2009
-
bmwax
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Statut
Membre
Dernière intervention
6 août 2009
-
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

4 réponses

Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
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
++


Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
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
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
j'ai été trop rapide erreur sur une ligne

if cells (i,1).value=liste(1) then   'ici liste(1)="bb"
Messages postés
15
Date d'inscription
mercredi 24 juin 2009
Statut
Membre
Dernière intervention
6 août 2009

Merci à vous deux !


+++