[Résolu][Calc] Trier et supprimer les lignes superflues

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 !
John TOMCAT
Fraîchement OOthentifié
Messages : 4
Inscription : 25 août 2013 10:44

[Résolu][Calc] Trier et supprimer les lignes superflues

Message par John TOMCAT »


La modération vous a écrit: Sujet déplacé et balisé

Bonjour à tous.
Pour coacher une équipe de sport j'utilise une feuille d'appel de jeux "Match-Test".
J'ai besoin de récupérer les infos des colonnes E, F, G et celles des colonnes Q, R, S.
Ces éléments sont rassemblés dans la page "Test".
En copiant des lignes de code à droite et à gauche j'arrive à obtenir ce que je veux.
Il me faut maintenant supprimer les élément superflus.
Page "Test", Si la case en A ne contient rien, alors la ligne doit être supprimée (pas masquée, vraiment supprimée)
Si la ligne est déjà présente (doublon) alors la supprimer.
Lorsque j'essaie d'enregistrer une Macro pour faire cela je me heurte à des difficultés. Mais si je le fais manuellement j'obtiens ce qu'il faut.
J'ai essayé de passer par des tableaux et des étapes intermédiaires pour séquencer chacune des phases mais c'est du bricolage.
Sur le forum j'ai trouvé quelques pistes, mais la mise en musique de ces conseils dépasse mes compétences.
J'ai laissé mes macros avec le document , je déclenche avec l’icône "Extraction" (l'ampoule).
Si vous avez une écriture plus condensée de ce travail, je suis preneur, sous réserve de comprendre pour évoluer.
Merci d'avance.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par John TOMCAT le 15 mars 2024 11:14, modifié 2 fois.
LibreOffice 7.6.5.2 / Windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Trier et supprimer les lignes superflues

Message par Dude »

Salut,

Le document fourni est trop complexe à étudier.
La prochaine fois, merci de simplifier ton exemple afin qu'il soit compréhensible pour nous.

John TOMCAT a écrit : 12 mars 2024 17:22 J'ai besoin de récupérer les infos des colonnes E, F, G et celles des colonnes Q, R, S.
[...]
Il me faut maintenant supprimer les élément superflus.
Pas besoin de macro pour ça, il suffit d'utiliser un filtre.
Tu as ce tutoriel qui va jusqu'à la programmation si besoin : viewtopic.php?t=47388
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] Trier et supprimer les lignes superflues

Message par DLE »

Bonjour,
Si besoin une macro à valider:

Code : Tout sélectionner

Sub Dedoublon()
Dim oDoc As Object
Dim oFeuilles As Object
Dim ofTest As Object	
Dim x As Integer
Dim oPlage As Object
Dim oLignes As Object

    oDoc = ThisComponent
    oFeuilles = oDoc.Sheets
    ofTest = oFeuilles.getByName("Test")
    oPlage = ofTest.getCellRangeByName("A2:C180")
    oLignes = oPlage.Rows
    x = 1

	do while ofTest.getCellByPosition(0,x).string <> "" 
	
 		if   ofTest.getCellByPosition(2,x).string =  ofTest.getCellByPosition(2,x+1).string then
    		oLignes.removeByIndex(x,1)
    	else
		    x = x + 1
    	end if

	loop
end sub
Bonne journée
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
John TOMCAT
Fraîchement OOthentifié
Messages : 4
Inscription : 25 août 2013 10:44

Re: [Calc] Trier et supprimer les lignes superflues

Message par John TOMCAT »

Bonjour.
Merci Dude pour cette proposition. J'avais déjà exploré cette section mais le résultat obtenu me demandait plusieurs étapes successives et ne répondait pas entièrement à mon besoin. Il me proposait de masquer les lignes superflues, je n'ai pas réussi à les supprimer.

Merci DLE pour ta proposition de Macro qui fonctionne et que j'ai intégrée dans mon document. Toutefois je me retrouve toujours avec les lignes superflues en fin de tri. J'ai vraiment besoin que si dans chaque ligne a la colonne A, il n' a pas de chiffre la ligne doit être supprimée. Je sais comment les masquer mais pas les supprimer.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.5.2 / Windows 11
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] Trier et supprimer les lignes superflues

Message par DLE »

Bonjour,
Nouvelle version de la macro :

Code : Tout sélectionner

Sub Dedoublon()
Dim oDoc As Object
Dim oFeuilles As Object
Dim ofTest As Object	
Dim x As Long
Dim oPlage As Object
Dim oLignes As Object

    oDoc = ThisComponent
    oFeuilles = oDoc.Sheets
    ofTest = oFeuilles.getByName("Test")
    oPlage = ofTest.getCellRangeByName("A1:C30")
    oLignes = oPlage.Rows
    x = 1

	do while ofTest.getCellByPosition(0,x).string <> "" 
	
 		if   ofTest.getCellByPosition(2,x).string =  ofTest.getCellByPosition(2,x+1).string then
    		oLignes.removeByIndex(x,1)
    	else
		    x = x + 1
    	end if

	loop
' Suppression des lignes ayant la colonne "A" à blanc
	oLignes.removeByIndex(x,oPlage.Rows.Count - x)
end sub
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Trier et supprimer les lignes superflues

Message par Dude »

John TOMCAT a écrit : 15 mars 2024 02:12 mais le résultat obtenu me demandait plusieurs étapes successives et ne répondait pas entièrement à mon besoin. Il me proposait de masquer les lignes superflues, je n'ai pas réussi à les supprimer.
Avec zBasic, tu filtres et tu recopies tes données sur une autre feuille en quelques lignes de code :

demo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
John TOMCAT
Fraîchement OOthentifié
Messages : 4
Inscription : 25 août 2013 10:44

Re: [Calc] Trier et supprimer les lignes superflues

Message par John TOMCAT »

Les 2 méthodes me permettent d'obtenir ce que je voulais. Merci encore à vous deux pour ces réponses "éclairantes".
Je vais donc clore le sujet et le marquer "Résolu".
LibreOffice 7.6.5.2 / Windows 11