LibreOffice : Macro pour un bouton qui supprime plusieurs zones
Résolu
Kross-55
Messages postés
7
Statut
Membre
-
Kross-55 Messages postés 7 Statut Membre -
Kross-55 Messages postés 7 Statut Membre -
Bonjour,
Comme l'indique le titre, je recherche une macro que je pourrais assigner à un bouton, pour effacer le contenu de plusieurs sélections de cellules continues. Pour être précis, ici les zones seraient : Q7:Q5000 et T7:T5000
J'ai bien trouvé (en cherchant sur internet) plusieurs macro, mais impossible de les décrypter et de me les approprier dans mon cas de figure.
Toutefois j'ai bien réussi à en trouver une qui supprime une seule sélection (ça fonctionne nickel)… et la voici :
Mais si je rajoute une seconde sélection (voir ci-dessous) : seule la première est prise en compte : de Q7 à Q5000.
Je suppose que mon erreur doit être de l'ordre de la syntaxe, sur la façon de séparer les différentes zones ? Mais j'ai beau tester avec une virgule, point-virgule, avec et sans espace… impossible.
À moins que cette formule ne puisse pas être adaptée pour plusieurs sélections ?
Merci d'avance à ceux qui prendront un moment pour m'aider :)
Comme l'indique le titre, je recherche une macro que je pourrais assigner à un bouton, pour effacer le contenu de plusieurs sélections de cellules continues. Pour être précis, ici les zones seraient : Q7:Q5000 et T7:T5000
J'ai bien trouvé (en cherchant sur internet) plusieurs macro, mais impossible de les décrypter et de me les approprier dans mon cas de figure.
Toutefois j'ai bien réussi à en trouver une qui supprime une seule sélection (ça fonctionne nickel)… et la voici :
Sub EffaceSelection
Dim oSheet As Object, oRange As Object
oSheet = thisComponent.Sheets.getByName("Mercuriale")
oRange = oSheet.GetCellRangeByName ("Q7:Q5000")
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA)
End Sub
Mais si je rajoute une seconde sélection (voir ci-dessous) : seule la première est prise en compte : de Q7 à Q5000.
Sub EffaceSelection
Dim oSheet As Object, oRange As Object
oSheet = thisComponent.Sheets.getByName("Mercuriale")
oRange = oSheet.GetCellRangeByName ("Q7:Q5000","T7:T5000")
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA)
End Sub
Je suppose que mon erreur doit être de l'ordre de la syntaxe, sur la façon de séparer les différentes zones ? Mais j'ai beau tester avec une virgule, point-virgule, avec et sans espace… impossible.
À moins que cette formule ne puisse pas être adaptée pour plusieurs sélections ?
Merci d'avance à ceux qui prendront un moment pour m'aider :)
Configuration: Macintosh / Firefox 88.0
A voir également:
- LibreOffice : Macro pour un bouton qui supprime plusieurs zones
- Libreoffice - Télécharger - Suite bureautique
- Comment mettre libreoffice en blanc - Guide
- LibreOffice a une faille de sécurité : il faut vite faire la mise à jour - Accueil - Bureautique
- Libreoffice gratuit - Guide
- LibreOffice 24.2 : une mise à jour majeure pleine d'améliorations - Accueil - Bureautique
4 réponses
Bonsoir
macro a tester
Sub EffaceSelection
Dim oSheet As Object, oRange As Object
oSheet = thisComponent.Sheets.getByName("Mercuriale")
oRange = oSheet.GetCellRangeByName ("Q7:Q5000")
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA
oSheet = thisComponent.Sheets.getByName("Mercuriale")
oRange = oSheet.GetCellRangeByName ("T7:T5000")
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA
End Sub
Cordialement
macro a tester
Sub EffaceSelection
Dim oSheet As Object, oRange As Object
oSheet = thisComponent.Sheets.getByName("Mercuriale")
oRange = oSheet.GetCellRangeByName ("Q7:Q5000")
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA
oSheet = thisComponent.Sheets.getByName("Mercuriale")
oRange = oSheet.GetCellRangeByName ("T7:T5000")
oRange.clearContents(com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.FORMULA
End Sub
Cordialement
Merci beaucoup JCB40 ... c'est tout simplement parfait !!
Un grand merci aussi à ce forum, ça fait 2 fois qu'on m'aide sur un blocage de ce type... et vous ne vous rendez pas compte à quel point ça me change la vie :)
Je passe le sujet en "Résolu"
Merci encore JCB40 !!
Un grand merci aussi à ce forum, ça fait 2 fois qu'on m'aide sur un blocage de ce type... et vous ne vous rendez pas compte à quel point ça me change la vie :)
Je passe le sujet en "Résolu"
Merci encore JCB40 !!
Aïe… un détail important me sape le morale par contre :/
La Macro qui fonctionne parfaitement bien sur mon PC (Win10 x64 - LibreOffice 7.1.2.2 x64), ne fonctionne pas sur mon MAC (OSX 10.13.6 - LibreOffice 7.0.5.2). Il ne se passe tout simplement rien quand je clic.
Autre info importante… bien que la Macro fonctionne sur mon PC, quand je viens éditer la Macro le logiciel m'ouvre une petite fenêtre avec un panneau rouge qui dit (sur PC comme sur MAC) :
Erreur de syntaxe BASIC.
Attendu : ).
Mais on peut cliquer sur OK pour passer outre.
Pensez-vous que le problème puisse être lié à la version de LibreOffice, ou à ce message d'erreur ?
Le souci est que je devrais rendre mon fichier compatible avec d'autres collaborateurs, qui seront peut-être aussi sur MAC. Le but serait de leur donner la méthode pour que ça fonctionne aussi chez eux.
La Macro qui fonctionne parfaitement bien sur mon PC (Win10 x64 - LibreOffice 7.1.2.2 x64), ne fonctionne pas sur mon MAC (OSX 10.13.6 - LibreOffice 7.0.5.2). Il ne se passe tout simplement rien quand je clic.
Autre info importante… bien que la Macro fonctionne sur mon PC, quand je viens éditer la Macro le logiciel m'ouvre une petite fenêtre avec un panneau rouge qui dit (sur PC comme sur MAC) :
Erreur de syntaxe BASIC.
Attendu : ).
Mais on peut cliquer sur OK pour passer outre.
Pensez-vous que le problème puisse être lié à la version de LibreOffice, ou à ce message d'erreur ?
Le souci est que je devrais rendre mon fichier compatible avec d'autres collaborateurs, qui seront peut-être aussi sur MAC. Le but serait de leur donner la méthode pour que ça fonctionne aussi chez eux.
Désolé, j'ai enfin compris mon erreur à force de chercher sur le Web... les Marcos ne fonctionnaient plus simplement en raison d'un niveau de sécurité trop élevé, suite à l'utilisation de protection de feuille je pense.
En abaissant la sécurité des Macros, tout est rentré dans l'ordre.
Je repasse donc le sujet en "Résolu"
Et merci de supporter mon amateurisme ^^
En abaissant la sécurité des Macros, tout est rentré dans l'ordre.
Je repasse donc le sujet en "Résolu"
Et merci de supporter mon amateurisme ^^