Filtre avec macro dans userform

lisooo

XLDnaute Nouveau
Bonjour à tous!
Depuis la dernière fois, j'ai pas mal avancé dans mon projet...
Mais quelques problèmes encore...

J'ai un formulaire construit sur la base du tri :
If TextBoxAnnée.Text = "1970" Then
ActiveSheet.Range("$A$2:$ZZ$5000").AutoFilter Field:=2, Operator:= _
xlFilterValues, Criteria2:=Array(0, "5/16/1970")

Mon problème : cela m'oblige à rentrer toutes les valeurs possible après le If. Je voulais donc savoir s'il existait un code permettant de mettre If Textbox.Text = "quelquechose" Then...

Mon second problème est différent : dans mon formulaire de création de nouvelle jurisprudence, j'ai un bouton de commande "lien". J'aimerai que celui-ci ouvre la boite de dialogue d'ajout d'un lien hypertexte d'excel... Est-ce possible?

Merci à tous pour vos réponses!
Lisa

PS : n'hésitez pas à m'expliquer les choses car je cherche vraiment à comprendre !
 

Pièces jointes

  • BDD TEST INTERNET.xlsm
    45.1 KB · Affichages: 71
  • BDD TEST INTERNET.xlsm
    45.1 KB · Affichages: 75
  • BDD TEST INTERNET.xlsm
    45.1 KB · Affichages: 76

Robert

XLDnaute Barbatruc
Repose en paix
Re : Filtre avec macro dans userform

Bonjour Lisoo, bonjour le forum,

Pour ton premier problème, peut-être comme ça (non testé) :
Code:
dim an as string
an = "5/12/" & CStr(TextBoxAnnée.value)

        ActiveSheet.Range("$A$2:$ZZ$5000").AutoFilter Field:=2, Operator:= _
        xlFilterValues, Criteria2:=Array(0, an)
 

lisooo

XLDnaute Nouveau
Re : Filtre avec macro dans userform

Bonjour,
La méthode indiquée marche très bien pour les dates. J'ai réussi à l'appliquer pour une partie du texte mais deux problèmes (encore) :

- Lorsque je ne saisis pas de date (c'est à dire que j'effectue le tri avec une autre critère comme le critère "type"),
j'ai une erreur 1004 que j'ai essayé de résoudre sans succès.

- Les tris avec les critères "juridiction" et "station" ne fonctionnent pas du tout.
Je pense que mon problème réside dans le fait que les différents tris n'ont pas de connexion qui pourrait leur dire 1èrement, 2èmement...

Bref, un peu d'aide serait bienvenue!
Merci!!

PS : pour Robert : ce qui est bien avec le code que tu m'as donné c'est que je l'ai compris!
 

Pièces jointes

  • BDD TEST INTERNET.xlsm
    50.5 KB · Affichages: 70
  • BDD TEST INTERNET.xlsm
    50.5 KB · Affichages: 75
  • BDD TEST INTERNET.xlsm
    50.5 KB · Affichages: 72

lisooo

XLDnaute Nouveau
Re : Filtre avec macro dans userform

Je vous joins également le code, ça vous évitera de télécharger!
Code:
Private Sub CommandButtonAfficher_Click()
        'On effectue le tri 2ere colonne (année)
        Dim an As String
        an = "5/12/" & CStr(TextBoxAnnée.Value)
        ActiveSheet.Range(""$A$2:$ZZ$5000"").AutoFilter Field:=2, Operator:= _
        xlFilterValues, Criteria2:=Array(0, an) - ERREUR 1004
        If TextBoxAnnée.Value = "" Then
        ActiveSheet.Range(""$A$2:$ZZ$5000"").AutoFilter Field:=2
        End If
                
        'On effectue le tri 3ème colonne (Type)
        Dim text1 As String
        text1 = ComboBoxType.Value
        ActiveSheet.Range("C:C").AutoFilter Field:=3, Criteria1:=text1
        If ComboBoxType.Value = "" Then
        ActiveSheet.Range("C:C").AutoFilter Field:=3
        End If
        
        'On effectue le tri 5ème colonne (Juridiction)
        Dim text2 As String
        text2 = ComboBoxJuridiction.Value
        ActiveSheet.Range("E:E").AutoFilter Field:=5, Criteria1:=text2
        If ComboBoxType.Value = "" Then
        ActiveSheet.Range("E:E").AutoFilter Field:=5
        End If
        
        'On effectue le tri 7ème colonne (Station)
        Dim text3 As String
        text3 = ComboBoxStation.Value
        ActiveSheet.Range("G3:G200").AutoFilter Field:=7, Criteria1:=text3
        If ComboBoxType.Value = "" Then
        ActiveSheet.Range("G3:G200").AutoFilter Field:=7
        End If
        End Sub
 

lisooo

XLDnaute Nouveau
Re : Filtre avec macro dans userform

J'ai réussi!
Code:
Private Sub CommandButtonAfficher_Click()

        'On effectue le tri 2ere colonne (année)
        If Not TextBoxAnnée.Value = "" Then
        Dim an As String
        an = "5/12/" & CStr(TextBoxAnnée.Value)
        ActiveSheet.Range("B2").AutoFilter Field:=2, Operator:= _
        xlFilterValues, Criteria2:=Array(0, an)
        ElseIf TextBoxAnnée.Value = "" Then
        ActiveSheet.Range("B2").AutoFilter Field:=2
        End If
                
        'On effectue le tri 3ème colonne (Type)
        If Not ComboBoxType.Value = "" Then
        Dim text1 As String
        text1 = ComboBoxType.Value
        ActiveSheet.Range("C2").AutoFilter Field:=3, Criteria1:=text1
        ElseIf ComboBoxType.Value = "" Then
        ActiveSheet.Range("C2").AutoFilter Field:=3
        End If
        
        'On effectue le tri 5ème colonne (Juridiction)
        If Not ComboBoxJuridiction = "" Then
        Dim text2 As String
        text2 = ComboBoxJuridiction.Value
        ActiveSheet.Range("E2").AutoFilter Field:=5, Criteria1:=text2
        ElseIf ComboBoxType.Value = "" Then
        ActiveSheet.Range("E2").AutoFilter Field:=5
        End If
        
        'On effectue le tri 7ème colonne (Station)
        If Not ComboBoxStation = "" Then
        Dim text3 As String
        text3 = ComboBoxStation.Value
        ActiveSheet.Range("G2").AutoFilter Field:=7, Criteria1:=text3
        ElseIf ComboBoxType.Value = "" Then
        ActiveSheet.Range("G2").AutoFilter Field:=7
        End If
        End Subb

Merci à tous pour votre aide, voilà le fichier définitif!
Bonne soirée!
 

Pièces jointes

  • BDD TEST INTERNET.xlsm
    41.8 KB · Affichages: 87
  • BDD TEST INTERNET.xlsm
    41.8 KB · Affichages: 100
  • BDD TEST INTERNET.xlsm
    41.8 KB · Affichages: 96

Discussions similaires

Réponses
7
Affichages
3 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 452
Messages
2 088 546
Membres
103 881
dernier inscrit
malbousquet