Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Activer code vba ds module

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

blancolie

XLDnaute Impliqué
Bonjour Le Forum,

Je voudrais comment activer ce code qui se situe ds le module Filtrage pour faire marcher mon filtrage dans la feuille BDD_Site.
car la je vois pas comment faire.

Merci de votre aide.

Cordialement
 

Pièces jointes

Solution
Bonjour Blancolie, Dranreb,
Vous pouvez transférer votre Worksheet_Change de Filtrage là où il faut, c'est à dire dans votre page Site.
D'autre part vous avez la ligne "If ActiveSheet.Name <> "BDD_Site"" seulement la feuille BDD_Site n'existe pas.
Ensuite vous avez : [B1O].AutoFilter, je pense que c'est plutôt [B10].AutoFilter
On obtiendrait alors dans la feuille Site la structure suivante :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With [BDD_Site]
        With .Rows(.Rows.Count + 1)
            If Not Intersect(ActiveCell, .Cells(1)) Is Nothing And .Cells(0, 1) <> "" Then
                .Rows(0).Copy .Cells(1)
                .SpecialCells(xlCellTypeConstants).ClearContents
            End If
        End With
    End...
Bonsoir.
Vous ne pouvez pas écrire de procédure de prise en charge d'évènement dans un module standard.
Tout ce que vous pouvez faire c'est invoquer une procédure Public d'un module standard depuis une procédure de prise en charge d'évènement écrite dans un module objet.
 
Bonjour Blancolie, Dranreb,
Vous pouvez transférer votre Worksheet_Change de Filtrage là où il faut, c'est à dire dans votre page Site.
D'autre part vous avez la ligne "If ActiveSheet.Name <> "BDD_Site"" seulement la feuille BDD_Site n'existe pas.
Ensuite vous avez : [B1O].AutoFilter, je pense que c'est plutôt [B10].AutoFilter
On obtiendrait alors dans la feuille Site la structure suivante :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With [BDD_Site]
        With .Rows(.Rows.Count + 1)
            If Not Intersect(ActiveCell, .Cells(1)) Is Nothing And .Cells(0, 1) <> "" Then
                .Rows(0).Copy .Cells(1)
                .SpecialCells(xlCellTypeConstants).ClearContents
            End If
        End With
    End With
ActiveSheet.AutoFilterMode = False
If Intersect(Target, ActiveSheet.Range("C5,C7,G5,E5")) Is Nothing Then Exit Sub
  [B10].AutoFilter 'ça peut être ça tout simplement
  Select Case Target.Column
    Case 3, 4, 6
     If [C5] <> "" Then [B10].AutoFilter Field:=1, Criteria1:=[C5].Value      'Secteur
      If [E5] <> "" Then [B10].AutoFilter Field:=2, Criteria1:=[E5].Value      'Site
      If [G5] <> "" Then [B10].AutoFilter Field:=3, Criteria1:=[G5].Value    'Actif/inactif
      If [C7] <> "" Then [B10].AutoFilter Field:=3, Criteria1:=[C7].Value    'Matériel
      If [C5] & [C7] & [E5] & [G5] = "" Then [B10].AutoFilter
    Case Else
      ActiveSheet.AutoFilterMode = False
  End Select
End Sub
Sans prévaloir des actions effectiées.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
7
Affichages
444
Réponses
7
Affichages
542
Réponses
5
Affichages
237
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
365
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…