XL 2010 Déclaration de variable avec 1 ou plusieurs critères

Philippe LAMACHE

XLDnaute Junior
Bonjour à tous,

Dans un module de recherche de texte, je souhaiterais déclarer une variable à 1 ou plusieurs critères.
Voici mon code :

Sub Rech_RGF()
FeuilleCible = "Feuille 1"
TxtCherche = "Texte 1"
Feuil2.Activate
For Each MaRECH In Feuil2.Range([A2], [A1048576].End(xlUp))
If MaRECH.Offset(0, 2).Value = TxtCherche Then
MaRECH.Offset(0, 36).Select
If MaRECH.Offset(0, 1).Value = "RGF A TRAITER" Then
Set MaCIBLE = Worksheets(FeuilleCible).Cells.Find(MaRECH, LookIn:=xlValues, SearchOrder:=xlByRows, MatchCase:=False)
If Not MaCIBLE Is Nothing Then
Range(MaRECH.Offset(0, 2), MaRECH.Offset(0, 4)).Interior.Color = 5296274
MaRECH.Offset(0, 36).Value = "TROUVÉ"
Else
MaRECH.Offset(0, 36).Value = "A CRÉER"
End If
ElseIf MaRECH.Offset(0, 1).Value = "RGF NON CONCERNÉ" Or MaRECH.Offset(0, 1).Value = "RGF NON TRAITÉ" Then
MaRECH.Offset(0, 36).Value = "RGF NON CONCERNÉ"
End If
End If
Suite:
Next MaRECH
End Sub

Plus précisément, ma demande concerne la 2ème ligne < TxtCherche = "Texte 1" >
Je souhaiterais pouvoir définir des critères (liste variable) par une boucle sur un tableau :
par exemple :
soit "Texte 1"
soit "Texte 2"
etc ...
soit "Texte 8" ou "Texte 9" ou "Texte 10" ou "Texte 11" ou "Texte 12"

Et dans un second temps, j'appliquerais cette solution pour ma ligne 1 qui bouclerais des noms de feuilles.

Quelqu'un aurait-il une solution à me proposer ?
Par avance, merci.

PS: Comment fait-on pour signaler une discussion "RESOLUE" ?
 

chris

XLDnaute Barbatruc
Re

Avec un tableau structuré nommé T_Texte contenant la liste des textes

VB:
    Dim ListTexte()
    ListTexte = Application.Transpose(Range("T_Textes").ListObject.DataBodyRange)
    For i = 1 To UBound(ListTexte)
        TxtCherche = ListTexte(i)
        ..............
    Next i
 

Philippe LAMACHE

XLDnaute Junior
Re

J'ai mis mes valeurs en C2 D2 E2 et nommé la sélection (Selection.Name = T_Textes) => ça ne fonctionne pas
J'ai mis mes valeurs en A2 A3 A4 et nommé la sélection (Selection.Name = T_Textes) => ça ne fonctionne pas non plus
Cela plante au niveau de ListTexte = Application.Transp........ (Erreur d'exécution '91' => Variable ...... non définie)
 

chris

XLDnaute Barbatruc
Re

J'ai parlé d'un tableau structuré
TextesBoucle.jpg
 

Philippe LAMACHE

XLDnaute Junior
Re
Ok.
Une petite précision, si je veux me "balader" dans ce tableau (par ex: Range(ListTexte(i)).offset(0,1).Select )
Comment faire car j'aurais besoin de boucler en horizontal pour chaque valeur de ce tableau afin d'alimenter ma ligne 'FeuilleCible = "Feuille 1".
 

chris

XLDnaute Barbatruc
Re

Dans un tableau on peut utiliser les noms de colonnes ou leur position ou bien aussi offset

Exemple avec un tableau nommé T_Ventes
VB:
Dim ListTexte()
Dim TableauRecherche As ListObject
    Set TableauRecherche = Range("T_Ventes").ListObject
    ListTexte = Application.Transpose(Range("T_Textes").ListObject.DataBodyRange)
    For i = 1 To UBound(ListTexte)
        TxtCherche = ListTexte(i)
        For Each MaRECH In TableauRecherche.ListColumns(3).DataBodyRange
            If MaRECH.Value = TxtCherche Then
                If MaRECH.Offset(0, 1).Value = "RGF A TRAITER" Then

Eviter les select et activate inutiles
 

Discussions similaires

Réponses
7
Affichages
316

Statistiques des forums

Discussions
312 069
Messages
2 085 041
Membres
102 764
dernier inscrit
nestu