Excel 2013 - Macro - Filtre d'une liste apres clic cell
Résolu
Gate31
Messages postés
1
Statut
Membre
-
Gate14 Messages postés 1 Statut Membre -
Gate14 Messages postés 1 Statut Membre -
Bonjour à tous,
Je sollicite votre aide pour résoudre un problème sur Excel 2013.
Je cherche à tenir un fichier de comptes. Pour se faire, j'ai 2 onglets :
1/ 2016 : feuille récapitulatif des comptes de l'année

2/ Détail 2016 : feuille listant le détail des opérations

L'idée est la suivante:
Lorsque je double clic sur la cellule C5 de ma feuille 2016, je souhaite que cela m'affiche la feuille Détail 2016 filtrée avec:
Colonne 1 (Catégorie) filtrée suivant la valeur de 2016/A5
Colonne 2 (Mois) filtrée suivant la valeur de 2016/C1
J'ai déjà réalisé un bout de code qui fonctionne mais qui n'est pas complet:
Dans ma page 2016, j'ai:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C5]) Is Nothing Then
Call ExtraireDonnées
End If
End Sub
Et dans un module, j'ai:
Sub ExtraireDonnées()
Sheets("Détail 2016").Select
Range([A2], [H1000].End(xlUp).Offset(3, 0)).AutoFilter Field:=1, Criteria1:=Range("2016!A5")
Range([A2], [H1000].End(xlUp).Offset(3, 0)).AutoFilter Field:=2, Criteria1:="Jan-16"
End Sub
Mes problèmes, et vous avez du en voir de suite en lisant mon code sont:
1/ Dans mon module, j'ai du rentrer en "dur" la date car il semble qu'il y ait un problème de format si j'écris Criteria1:=("2016!C1")...
2/ Le code fonctionne, c'est à dire, lorsque je double clic sur ma cell C5, j'ai bien ma page Détail 2016 qui s'affiche est qui est filtrée sur les colonnes 1 et 2 comme attendu.
Le problème c'est comment étendre ce code pour toutes mes cellules de ma feuille 2016? (du moins toutes les cellules de la colonne "Réel" de chaque mois...?
D'avance merci pour votre aide,
Je sollicite votre aide pour résoudre un problème sur Excel 2013.
Je cherche à tenir un fichier de comptes. Pour se faire, j'ai 2 onglets :
1/ 2016 : feuille récapitulatif des comptes de l'année

2/ Détail 2016 : feuille listant le détail des opérations

L'idée est la suivante:
Lorsque je double clic sur la cellule C5 de ma feuille 2016, je souhaite que cela m'affiche la feuille Détail 2016 filtrée avec:
Colonne 1 (Catégorie) filtrée suivant la valeur de 2016/A5
Colonne 2 (Mois) filtrée suivant la valeur de 2016/C1
J'ai déjà réalisé un bout de code qui fonctionne mais qui n'est pas complet:
Dans ma page 2016, j'ai:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C5]) Is Nothing Then
Call ExtraireDonnées
End If
End Sub
Et dans un module, j'ai:
Sub ExtraireDonnées()
Sheets("Détail 2016").Select
Range([A2], [H1000].End(xlUp).Offset(3, 0)).AutoFilter Field:=1, Criteria1:=Range("2016!A5")
Range([A2], [H1000].End(xlUp).Offset(3, 0)).AutoFilter Field:=2, Criteria1:="Jan-16"
End Sub
Mes problèmes, et vous avez du en voir de suite en lisant mon code sont:
1/ Dans mon module, j'ai du rentrer en "dur" la date car il semble qu'il y ait un problème de format si j'écris Criteria1:=("2016!C1")...
2/ Le code fonctionne, c'est à dire, lorsque je double clic sur ma cell C5, j'ai bien ma page Détail 2016 qui s'affiche est qui est filtrée sur les colonnes 1 et 2 comme attendu.
Le problème c'est comment étendre ce code pour toutes mes cellules de ma feuille 2016? (du moins toutes les cellules de la colonne "Réel" de chaque mois...?
D'avance merci pour votre aide,
A voir également:
- Excel 2013 - Macro - Filtre d'une liste apres clic cell
- Liste déroulante excel - Guide
- Word 2013 - Télécharger - Traitement de texte
- Excel 2013 - Télécharger - Tableur
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
1 réponse
Bonjour
Dans le module de la feuille
Dans un module classique
Il semblerait que les mois en ligne 1 de la feuille "2015" , soient dans des cellules fusionnées, si ce n'était pas le cas veuillez remplacer la ligne suivante du module de la feuille
par
Cdlt
Dans le module de la feuille
Option Compare Text Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row < 3 Then Exit Sub If Cells(2, Target.Column) = "Réel" Then Catégorie = Cells(Target.Row, 1) Mois = Format(Cells(1, Target.Column - 1), "m/d/yyyy") Call ExtraireDonnées End If End Sub
Dans un module classique
Option Compare Text Public Catégorie Public Mois Sub ExtraireDonnées() Sheets("Détail 2016").Select Range([A2], [H1000].End(xlUp).Offset(3, 0)).AutoFilter Field:=1, Criteria1:=Catégorie Range([A2], [H1000].End(xlUp).Offset(3, 0)).AutoFilter Field:=2, Operator:=xlFilterValues, Criteria2:=Array(1, Mois) End Sub
Il semblerait que les mois en ligne 1 de la feuille "2015" , soient dans des cellules fusionnées, si ce n'était pas le cas veuillez remplacer la ligne suivante du module de la feuille
Mois = Format(Cells(1, Target.Column - 1), "m/d/yyyy")
par
Mois = Format(Cells(1, Target.Column), "m/d/yyyy")
Cdlt
Un grand merci pour votre aide, cela fonctionne parfaitement !
Bonne continuation,