#1 Le 13/05/2023, à 04:51
- claudius723
Macros pour masquer et afficher (Résolu)
Bonjour à tous, sous Calc, j'ai construit un tableau pour enregistrer ma comptabilité personnelle, pas de soucis, je maîtrise assez bien les fonctions, mais j'aimerais ajouter deux macros, afficher et masquer des lignes suivant un critère.
Je ne suis pas du tout familiarisé avec le langage Basic, aussi j'aurais besoin de quelqu'un pour m'écrire, ces deux codes
Mon tableau comporte 12 colonnes, lignes 6 à 450, critère R sur colonne 10.
En fait c'est l'auto filtre, que je veux remplacer par ces macros, commandes par deux bouton, j'ai bien construit la macro filtrer en utilisant les menus, mais cela ne marche pas avec l'auto filtre..
Alors voilà, je suis à disposition pour les renseignements complémentaires, et je remercie d'avance celui ou celle qui aura la gentillesse de me rendre ce service.
Bonne journée
Dernière modification par claudius723 (Le 14/05/2023, à 12:59)
Cordialement
Claudius723
Hors ligne
#2 Le 13/05/2023, à 09:06
- lann
Re : Macros pour masquer et afficher (Résolu)
Une fois que tu as coché l'auto-filtre, tu cliques sur la flèche présente sur la première ligne de ta colonne 10 et tu choisis les données à afficher ou à masquer.
<Modéré>
Hors ligne
#3 Le 13/05/2023, à 14:07
- claudius723
Re : Macros pour masquer et afficher (Résolu)
Bonjour, oui je sais, mais je voudrais quand même avoir des macros en remplacement.
Cordialement
Claudius723
Hors ligne
#4 Le 13/05/2023, à 18:34
- Rafbor
Re : Macros pour masquer et afficher (Résolu)
Bonjour,
voici 2 macros que j'ai réalisé rapidement en me basant sur la doc.
Il te reste à les affecter à des boutons.
REM ***** BASIC *****
Option Explicit
Sub FiltrerCol10
Dim oSheet
Dim oDataRange
Dim oFilterDesc
Dim oFields(0) As New com.sun.star.sheet.TableFilterField
oSheet = ThisComponent.getSheets().getByIndex(0)
' range à filtrer
oDataRange = oSheet.getCellRangeByName("A6:L450")
' filtre
oFilterDesc = oSheet.createFilterDescriptor(True)
With oFields(0)
' colonne 10 (base 0)
.Field = 9
' comparer en utilisant une chaine
.IsNumeric = False
' critères de filtre
.StringValue = "R"
.Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL
End With
oFilterDesc.setFilterFields(oFields())
oFilterDesc.ContainsHeader = False
oDataRange.filter(oFilterDesc)
End Sub
Sub AnnulerFiltre
Dim oSheet
Dim oDataRange
Dim oFilterDesc
oSheet = ThisComponent.getSheets().getByIndex(0)
' range à filtrer
oDataRange = oSheet.getCellRangeByName("A6:L450")
' filtre
oFilterDesc = oSheet.createFilterDescriptor(True)
oFilterDesc.ContainsHeader = False
oDataRange.filter(oFilterDesc)
End Sub
Xubuntu 24.04 - Mes projets sur Github
Hors ligne
#5 Le 13/05/2023, à 19:30
- claudius723
Re : Macros pour masquer et afficher (Résolu)
Merci beaucoup Rafbor, je vais les copier et te tiendrais au courant
Bonne soirée
Cordialement
Claudius723
Hors ligne
#6 Le 14/05/2023, à 05:53
- claudius723
Re : Macros pour masquer et afficher (Résolu)
Bonjour, j'ai copié les macros, elle fonctionnent parfaitement, mais j'ai un deuxième tableau presque identique avec une colonne en moins (11), j'ai renommé ces macros,(FiltrerCol9, AnnulerFiltre9) modifié le nombre de lignes (A6:K171) et le n° de colonne avec R (8) mais là cela ne fonctionne pas, pourquoi ?
D'autre part, je ne sais pas pourquoi quand je rentre une nouvelle date dans une cellule, elle se transforme en nombre (45069), j'ai du faire une mauvaise manip ?
Bien à vous.
Cordialement
Claudius723
Hors ligne
#7 Le 14/05/2023, à 07:31
- Rafbor
Re : Macros pour masquer et afficher (Résolu)
On est toujours dans le même fichier ? Si oui, ton 2ème tableau doit être situé dans une autre feuille, vu qu'il commence en A6 comme le 1er ?
La macro sélectionne la 1ere feuille qui à l'index 0, via la ligne
oSheet = ThisComponent.getSheets().getByIndex(0)
Si tu veux sélectionner une autre feuille, il faut mettre le bon index ou alors utiliser la sélection par le nom de la feuille
oSheet = ThisComponent.Sheets.getByName("NOM_FEUILLE")
Pour ta question sur la date, c'est sûrement à cause du format de la cellule, à passer en format date.
Xubuntu 24.04 - Mes projets sur Github
Hors ligne
#8 Le 14/05/2023, à 12:58
- claudius723
Re : Macros pour masquer et afficher (Résolu)
Merci Rafbor, tout fonctionne parfaitement.
Bon Dimanche
Cordialement
Claudius723
Hors ligne