[Résolu][Calc] Supprimer ligne vide d'une plage de cellules

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
psylo24
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 08 janv. 2020 22:35

[Résolu][Calc] Supprimer ligne vide d'une plage de cellules

Message par psylo24 »

Bonsoir tout le monde e meilleurs voeux pour cette nouvelle année.

Je suis sous libreoffice calc et j'essaie de faire une macro pour supprimer les lignes si une cellule est vide mais cela pour une plage déterminée de ma feuille à savoir de B30 à B50.

Je veux faire ca par une macro car je vais avoir besoin de le faire régulièrement sur cette plage de de cellule.

Voir fichier en piéce jointe
exemple.ods
Merci et à biento
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par psylo24 le 04 janv. 2021 12:55, modifié 1 fois.
Version: 7.3.7.2 / LibreOffice Community
Build ID: e114eadc50a9ff8d8c8a0567d6da8f454beeb84f
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: en-US
Calc: threaded
Build ID: 1:6.0.7-0ubuntu0.18.04.12
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 529
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Supprimer ligne vide dans une plage ce cellules

Message par Noonours »

Bonjour,

Sujet passé des milliards de fois je crois... :?
une recherche avec Clearcontents t'aurais donné des résultats quasi clefs en mains.

Essaye celui-ci:

Code : Tout sélectionner

Sub Effass

ZoneCible = "B30:B50"

Dim oSheet As Object, oRange As Object

   oFeuille1 = thisComponent.Sheets (0)   ' "Feuille1"
   oPlage = ofeuille1.GetCellRangeByName (ZoneCible)
   with com.sun.star.sheet.CellFlags
   oPlage.clearContents(.VALUE + .STRING + .FORMULA)
   end with
                  
End Sub
Cordialement,
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 25.2.4.3 et OpenOffice 4.1.15 sous Windows 10
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2791
Inscription : 16 avr. 2010 13:31

Re: [Calc] Supprimer ligne vide dans une plage ce cellules

Message par OOotremer971 »

Bonjour à tous,

Hello Noonours c'est un restant de bulle du champagne du nouvel an ou t'as lu en diagonale ?

Code : Tout sélectionner

Option Explicit

Const zoneCible = "B30:B50"


Sub Main
Dim oDoc As Object
Dim oCC As Object
Dim oSheet As Object
Dim oPlage As Object
Dim oRa As Object
Dim oCell As Object
Dim oRow As Object
Dim i As Integer
oDoc = Thiscomponent
oCC = oDoc.CurrentController
oSheet = oCC.ActiveSheet 'récupère la feuille active
oPlage = oSheet.GetCellRangeByName(zoneCible)
oRa = oPlage.RangeAddress
For i = oRa.EndRow To oRa.StartRow Step - 1
	oCell = oSheet.GetCellByPosition(oRa.StartColumn,i)
	If oCell.String = "" Then
		oSheet.Rows.RemoveByIndex(i,1)
	End if
Next 
End Sub
et le fichier pour tester.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian GNU/Linux 12 (bookworm)
psylo24
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 08 janv. 2020 22:35

Re: [Calc] Supprimer ligne vide dans une plage ce cellules

Message par psylo24 »

Super merci beaucoup ca fonctionne parfaitement.
Version: 7.3.7.2 / LibreOffice Community
Build ID: e114eadc50a9ff8d8c8a0567d6da8f454beeb84f
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: en-US
Calc: threaded
Build ID: 1:6.0.7-0ubuntu0.18.04.12