IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Autofilter pour source d'un combobox : je ne trouve pas ce qui ne marche pas [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut Autofilter pour source d'un combobox : je ne trouve pas ce qui ne marche pas
    Bonjour,

    Merci aux âmes charitables de se pencher sur mon problème...

    J'ai 3 combobox dans un userform.

    La valeur du 1er sert pour filtrer les données source du 2e

    la valeur du 2e sert pour filtrer les données source du 3e.

    Seulement le code me génère une erreur '1004 : la méthode advancedfilter de la méthode range à échoué.

    Quand j'exécute en pas à pas, je remarque que l'exécution passe directement de la définition du 1er critère (sur 2) de l'aufilter (ligne 93) à la private sub combobox1 (selectsite)_change (ligne19) ??!

    Je ne comprends pas pourquoi l'autofilter ne finit pas son boulot.





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    Private Sub Userform_Initialize()
     
    ' On efface le dernier filtre
    
    Sheets("base").Range("AC301:AJ510").ClearContents
    
    Sheets("base").Range("w301:x379").ClearContents
    
    Worksheets("Base").AutoFilterMode = False
    
    Dim PlageSite As String
    With Sheets("base")
        PlageSite = .Range("A2:A" & .Range("A20").End(xlUp).Row).Address
    End With
    SelectSite.RowSource = "base!" & PlageSite
    
    End Sub
    
    Private Sub SelectSite_Change()
    
    
    Worksheets("Base").AutoFilterMode = False
    
    
    ' on flitre les catégories des sites sans doublons
       
          
       Sheets("base").Range("AB1:AC211").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("W301"), Unique:=True
      
      ' On efface le dernier filtre
    
    
    Sheets("base").Range("w380:x395").ClearContents
    
    
    ' Application du filtre
    
    Dim Critère1 As String
    
    Critère1 = SelectSite.Value
    
        Sheets("Base").Range("W301").AutoFilter Field:=1, Criteria1:=Critère1
          
        
     ' Récupération des donées filtrées
        
        Dim Destination As Range
     
     'Définis ta plage où sera copiée les données.
     
     Set Destination = Sheets("Base").Range("W380")
     
     Dim MaPlage As Range
     
     'représente les données filtrées et les titres.
     Set MaPlage = Sheets("Base").AutoFilter.Range
     
     'représente seulement les données
     Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1, MaPlage.Rows.Count)
     
     MaPlage.Copy Destination
    
    Dim PlageCatégorie As String
    With Sheets("base")
        PlageCatégorie = .Range("X380:x" & .Range("X500").End(xlUp).Row).Address
    End With
    SelectCatégorie.RowSource = "base!" & PlageCatégorie
    
    ' je stocke la valeur de select site pour le sub suivant
    
    Sheets("base").Range("aa301") = SelectSite.Value
    
    End Sub
    
    Private Sub SelectCatégorie_Change()
    
    
    ' Application du filtre
    
    Dim Critère2, Critère3 As String
    
    Critère2 = Sheets("base").Range("AA301")
    Critère3 = SelectCatégorie.Value
    
    
        
        Sheets("Base").Select
        
        Range("AA1").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=2, Criteria1:=Critère2
    
    ' ICI ON REPART VERS Private Sub SelectSite_Change()
    
        Selection.AutoFilter Field:=3, Criteria1:=Critère3
        
     ' Récupération des donées filtrées
        
        Dim Destination2 As Range
     
     'Définis ta plage où sera copiée les données.
     
     Set Destination2 = Range("AC301")
     
     Dim MaPlage2 As Range
     
     'représente les données filtrées et les titres.
     Set MaPlage2 = Sheets("Base").AutoFilter.Range
     
     'représente seulement les données
     Set MaPlage2 = MaPlage2.Offset(1, 0).Resize(MaPlage2.Rows.Count - 1, MaPlage2.Rows.Count)
     
     MaPlage2.Copy Destination
    
    Dim PlageDétail As String
    With Sheets("base")
        PlageDétail = .Range("AG301:AG" & .Range("AG600").End(xlUp).Row).Address
    End With
    SélectionDétail.RowSource = "base!" & PlageDétail
    
    Worksheets("Base").AutoFilterMode = False
    
    End Sub

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Rebonjour,

    Eh, bien je crois que j'ai trouvé, j'ai changé le type de procédure de mon combobox_change en conbobox_AfterUpdate...

    Je sais que mon problème n'était pas très clairement exposé, mais si ça peut aider quelqu'un...

    Allez, je sors...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] commande php pour mysql qui ne marche pas.
    Par kiemtso dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/09/2009, 15h49
  2. Réponses: 4
    Dernier message: 12/05/2009, 14h10
  3. Réponses: 9
    Dernier message: 20/09/2008, 21h56
  4. Réponses: 3
    Dernier message: 24/04/2008, 16h30
  5. Utlisation d'image pour les <li> qui ne marche pas
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 05/11/2005, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo