Bonjour,
Je dois faire faire la même modification sur plusieurs feuilles Calc (une centaine).
J'aurai besoin d'aide pour écrire une macro qui fasse cela.
La modification serait la suivante:
Supprimer toutes les lignes dont une cellule est égale zéro.
Et faire en sorte que la ligne du dessous prenne la place de celle supprimée.
Les cellules testées sont les cellules de la colonne D.
Exemple: Si la cellule D21 est égale à zéro alors supprimer la ligne 21.
Afin d'être plus clair je joins 2 fichiers Calc l'un avant modif, l'autre après.
Par ailleurs chaque feuille est un fichier Calc (.ods).
Existe-t-il une possibilité de rassembler toutes ces feuilles dans un seul fichier Calc ?
Merci de votre aide.
[Résolu][Calc]Ligne supprimée si la cellule est égale à zéro
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
Drake
- Membre cOOnfirmé

- Messages : 299
- Inscription : 02 févr. 2012 00:51
[Résolu][Calc]Ligne supprimée si la cellule est égale à zéro
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Drake le 01 déc. 2014 12:36, modifié 3 fois.
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)
-
micmac
- RespOOnsable forum

- Messages : 10002
- Inscription : 28 août 2010 08:45
Re: [Calc] Supression de lignes si une cellule est égale à z
Bonjour,
Poser plusieurs questions complique la compréhension et n'encourage pas les réponses : il vaut donc mieux découper votre problème. Le titre de votre question ne peut pas refléter l'ensemble des problèmes exposés.
Afin que nous puissions avoir une base de connaissance efficace lors d'une recherche sur un seul de vos problèmes, nous vous prions de créer autant de fils que de questions.
Cordialement
Nous vous rappelons que la règle n° 7 stipule qu'il ne faut mettre qu'une question par fil.[b][color=#404080]Drake[/color][/b] a écrit :Par ailleurs chaque feuille est un fichier Calc (.ods).
Existe-t-il une possibilité de rassembler toutes ces feuilles dans un seul fichier Calc ?
Poser plusieurs questions complique la compréhension et n'encourage pas les réponses : il vaut donc mieux découper votre problème. Le titre de votre question ne peut pas refléter l'ensemble des problèmes exposés.
Afin que nous puissions avoir une base de connaissance efficace lors d'une recherche sur un seul de vos problèmes, nous vous prions de créer autant de fils que de questions.
Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
-
joel275
- InconditiOOnnel

- Messages : 839
- Inscription : 10 janv. 2009 08:05
Re: [Calc] Supression de lignes si une cellule est égale à z
Bonsoir,
essaie le code suivant:
A plus,
Joël
essaie le code suivant:
Code : Tout sélectionner
Sub Main
Dim LesFeuilles as Object, MaCell as Object, MaZone as Object, Lignes as Object
Dim I as Long, J as Long
LesFeuilles = ThisComponent.Sheets
For I = 0 To LesFeuilles.Count - 1 ' passe en revue toutes les feuilles du classeur
For J = 1 To 200 ' recherche sur les 200° lignes à modifier si nécessaire
MaCell = LesFeuilles(I).GetCellRangeByName("D" & CStr(J))
MaZone = LesFeuilles(I).GetCellRangeByName("D1:D200")
If MaCell.Value = 0 And MaCell.Type = com.sun.star.table.CellContentType.VALUE Then
Lignes = MaZone.Rows ' ne supprimera pas les lignes dont le résultat nul est obtenu par formule
Lignes.RemoveByIndex(J-1, 1)
End If
Next
Next
End SubJoël
Dernière modification par joel275 le 01 déc. 2014 10:42, modifié 1 fois.
A jour de LibreOffice et de Ubuntu
-
Piaf
- GourOOu

- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] Supression de lignes si une cellule est égale à z
Bonjour
Une autre façon à testerA+
Une autre façon à tester
Code : Tout sélectionner
Sub Main
Dim oDoc as Object, maFeuille as Object, maCellule as Object
Dim x as Integer
oDoc = thisComponent
maFeuille = oDoc.Sheets.getByName("Feuille1")
maCellule = maFeuille.getCellByPosition(1,19)
x = 19
Do While maCellule.String <> ""
If maFeuille.getCellByPosition(3,x).String = "0,00 €" Then
maCellule.Rows.removeByIndex(0,1)
End If
x = x + 1
maCellule = maFeuille.getCellByPosition(1,x)
Loop
End SubLibre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
Drake
- Membre cOOnfirmé

- Messages : 299
- Inscription : 02 févr. 2012 00:51
Re: [Calc] Supression de lignes si une cellule est égale à z
Bonsoir,
Waooo! 2 pour le même prix.
Merci.
Je vais tester ça et je reviens dire.
Waooo! 2 pour le même prix.
Merci.
Je vais tester ça et je reviens dire.
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)
-
Drake
- Membre cOOnfirmé

- Messages : 299
- Inscription : 02 févr. 2012 00:51
Re: [Calc] Supression de lignes si une cellule est égale à z
re,
Les 2 procédures fonctionnent très bien. Encore merci à vous.
Une question pour Joel, la 1ere boucle sert-elle à gérer plusieurs feuilles ?
Sinon peux-tu m'expliquer à quoi elle sert ?
A+
Les 2 procédures fonctionnent très bien. Encore merci à vous.
Une question pour Joel, la 1ere boucle sert-elle à gérer plusieurs feuilles ?
Sinon peux-tu m'expliquer à quoi elle sert ?
A+
Le modérateur a écrit : Merci de ne pas poster plusieurs messages à la suite, si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.
En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)
-
joel275
- InconditiOOnnel

- Messages : 839
- Inscription : 10 janv. 2009 08:05
Re: [Calc] Supression de lignes si une cellule est égale à z
Bonjour,
elle sert à passer en revue toutes les feuilles du classeur.
A plus,
Joël
elle sert à passer en revue toutes les feuilles du classeur.
A plus,
Joël
A jour de LibreOffice et de Ubuntu
-
Drake
- Membre cOOnfirmé

- Messages : 299
- Inscription : 02 févr. 2012 00:51
Re: [Calc] Supression de lignes si une cellule est égale à z
Bonjour,
Ok,mercielle sert à passer en revue toutes les feuilles du classeur.
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)