[Résolu][Calc] Enregistrer coller sans les lignes vide

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 !
Sleg85
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 19 oct. 2021 15:30

[Résolu][Calc] Enregistrer coller sans les lignes vide

Message par Sleg85 »

Bonjour à tous

J'ai créé une macro lié à un bouton d'enregistrement qui me copie les lignes de mon ticket de caisse (ligne de 3 à 16).
Mon soucie c'est ca copie les lignes vides également.

J'aimerais si c'est possible dans mon exemple supprimer les lignes de 10 à 15 si elles sont vides bien évidement avant ou après l'enregistrement.

Si quelqu'un a la solution, je suis preneur.

Merci d'avance pour vos réponses.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Sleg85 le 28 oct. 2021 09:35, modifié 3 fois.
LibreOffice 7.3.0.3 Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Copie sans les lignes vides

Message par Dude »

Salut,

Le code pondu par l'enregistreur fait ce que tu lui demandes. Il n'y a aucune ligne vide puisque ta colonne S est remplie.
Sleg85
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 19 oct. 2021 15:30

Re: [Calc] Copie sans les lignes vides

Message par Sleg85 »

Ok bien compris mais si on considère que 0.00€ est une ligne non renseigné je voudrais quel ne soit pas copié
LibreOffice 7.3.0.3 Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Copie sans les lignes vides

Message par Dude »

capture.png
mais si on considère que 0.00€ est une ligne non renseigné je voudrais quel ne soit pas copié
Toutes les cellules de la colonne S sont à 0,00 € :roll:
Donc logiquement, on ne copie rien.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Sleg85
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 19 oct. 2021 15:30

Re: [Calc] Copie sans les lignes vides

Message par Sleg85 »

J'ai modifié mon fichier pour mieux me faire comprendre
les lignes de 10 à15 sont vide ou 0.00€ et je voudrais qu'elle ne soit pas copié
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.3.0.3 Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Copie sans les lignes vides

Message par Dude »

Petit défi amusant en passant par un tableau mémoire (array).

Code : Tout sélectionner

Sub TransfertSaufLigneVide
	'Du code offert par le forum OpenOffice
	'Extrait de https://forum.openoffice.org/fr/forum/ftopic64569.html
	
	nCol = 0 'Index de la colonne que l'on teste si vide
	nLigne = 12 'N° de ligne où se collera la plage 
	
	oDoc = ThisComponent 
	oFeuil = oDoc.Sheets(0) ' La 1ere feuille qui est indexée à 0
	oPlage = oFeuil.getCellRangeByName("A1:D11")
	oCopie = oPlage.DataArray
	maxCol = UBound(oCopie(0))
	k = 0
	for i = 0 to UBound(oCopie)
		if oCopie(i)(nCol) <> "" then
			Redim Preserve oColle(0 to k)
			Redim oLigne(0 to maxCol)
			for j = 0 to maxCol
				oLigne(j) = oCopie(i)(j)
			next
			oColle(k) = oLigne
			k = k + 1
		endif	
	next
	
	oPlage = oFeuil.getCellRangeByPosition(0,nLigne,maxCol,nLigne+k-1)
	oPlage.DataArray = oColle
End Sub
Plus d'info sur https://www.beaussier.com/sections/view ... f=8&t=1563
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Sleg85
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 19 oct. 2021 15:30

Re: [Calc] Enregistrer coller sans les lignes non renseignée

Message par Sleg85 »

Je vais regarder mais honnêtement j’ai rien compris
LibreOffice 7.3.0.3 Windows 10
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: [Calc] Enregistrer coller sans les lignes non renseignée

Message par zeguedon »

Bonjour,

Tu peux aussi tout simplement utiliser le filtre standard avec l'option CopyOutputData = True pour copier le résultat du filtrage vers une autre destination. Les exemples sur le sujet sont nombreux dans cette section.
@+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Sleg85
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 19 oct. 2021 15:30

Re: [Calc] Enregistrer coller sans les lignes non renseignée

Message par Sleg85 »

Bonjour zeguedon

Ta solution me parais plus simple que celle proposé par Dude et en plus elle marche très bien.
j'ai mis un Filtre Standard avec la Colone S > 0 puis copier collé
Nickel
Merci à tous
LibreOffice 7.3.0.3 Windows 10
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: [Résolu][Calc] Enregistrer coller sans les lignes vide

Message par zeguedon »

Bonjour,
Sleg85 a écrit :j'ai mis un Filtre Standard avec la Colone S > 0 puis copier collé
Il n'y a pas de copier/coller à faire. Les options du filtre standard permettent de coller le résultat du filtrage directement vers une destination choisie. Tu devrais approfondir un peu tes recherches.
@+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu][Calc] Enregistrer coller sans les lignes vide

Message par Dude »

Sleg85 a écrit :Je vais regarder mais honnêtement j’ai rien compris
Tu ne fais pas beaucoup d'effort :roll:
Le code adapté à ton document :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.