Sélections de ligne d'une feuille excel depuis un userform en vba

Chpwa Messages postés 1 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 2 juin 2009 - 2 juin 2009 à 15:39
garion28 Messages postés 1543 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011 - 10 juin 2009 à 13:14
J'ai un Userform avec les éléments suivants pour des titres d'articles :
- une liste titre
- une étiquette thématique
- une étiquette pays (pour le pays concerné)
- une étiquette ville (pour la villle concernée)
-.... (d'autres étiquettes).

Cet Userform va chercher les infos ds une feuille Excel.

Jusque là tt marche comme je veux. Mais j'aimerai maintenant que l'userforme me sélectionne les titres des articles en fonctions de 2 critères:
- la thématique
- la ville.
Le pb c'est que j'ai épuisé toutes mes capacités sur vba et là je ne sais pas comment faire.
Merci beaucoup par avance.

Pr l'instant, mon code donne ça (je ne sais pas où ni comment mettre les conditions)

Sub UserForm_Activate()
Dim Ligne As Long
' --------------- Affichage des listes
With Feuil20
   
        ' --------------- Affiche les listes des bigrammes
      If .Cells(65536, .[Titreliens].Column).End(xlUp).Row >= .[Titreliens].Offset(1, 0).Row Then
        Set Plageliens = .Range(.[Titreliens].Offset(1, 0), .Cells(65536, .[Titreliens].Column).End(xlUp))  ' S'il y a déjà des données dans le tableau
        Vide = False                                                                                
    Else
        Set Plageliens = .[Titreliens].Offset(1, 0)                                      
        Vide = True                                                                                 
    End If
    Listetitre6.RowSource = ""
    For Ligne = 1 To Plageliens.Rows.Count                                               
        With Listetitre6
            .AddItem Plageliens.Cells(Ligne, 1)
        End With       
    Next Ligne
    Listetitre6.ListIndex = 0                                                                        
End With
End Sub



' --------------- Cherche les autres valeurs de la ligne et les affiche dans la boîte de dialogue
Sub ChercheAutresValeurs(Posit As Long)
Dim Dep As Range
Set Dep = Feuil20.Range("Titreliens")                                               ' Cellule de départ
With UserForm6
    .Etiquthematique6.Caption = Dep.Offset(Posit, 7).Value
    .Etiqudate6.Caption = Dep.Offset(Posit, 3).Value
    .Etiqusupport6.Caption = Dep.Offset(Posit, 2).Value
    .Etiqulangue6.Caption = Dep.Offset(Posit, 6).Value
    .Etiquville6.Caption = Dep.Offset(Posit, 5).Value
    .Etiqupays6.Caption = Dep.Offset(Posit, 4).Value
    .EtiquSource6.Caption = Dep.Offset(Posit, 1).Value
    .Etiqulien6.Caption = Dep.Offset(Posit, 8).Value




            
End With




End Sub

1 réponse

garion28 Messages postés 1543 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011
10 juin 2009 à 13:14
de ce que j'ai compris de ton problème:
ex: theme en A, ville en B titre en C
dim i as long
with sheets("feuil20")
i=1

while(etiq_theme<>.range("A" & i).value and etiq_ville<>.range("B" & i).value)
      if (etiq_theme=.range("A" & i).value and etiq_ville=.range("B" & i).value) then goto suite
        i=i+1
wend
suite:
letitre=.range("C" & i).value

end with

voila, je ne sais pas si ca t'aide mais bonne reflexion pour la suite :)
0
Rejoignez-nous