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

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

4 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 juil. 2009 à 13:23
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
++


3
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
7 juil. 2009 à 12:41
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
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
7 juil. 2009 à 12:42
j'ai été trop rapide erreur sur une ligne

if cells (i,1).value=liste(1) then   'ici liste(1)="bb"
0
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
Merci à vous deux !


+++
0
Rejoignez-nous