[Résolu][Calc]Supprimer des lignes???

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 !
hippios
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 08 déc. 2008 17:54
Localisation : Saint-etienne

[Résolu][Calc]Supprimer des lignes???

Message par hippios »

Bonjour,
Novice dans le monde de la macro, je recherche le code pour supprimer des lignes si celles-ci ont une cellule (dans la colonne "F" de la ligne "2" à la ligne "931") qui est égal à zéro.
Pour info, sur office 2007, j'avais ce code (macro extension xlam) qui marchait bien:

Code : Tout sélectionner

Sub zerof()
For Ligne = 2 To 931
Select Case (UCase(Range("F" & Ligne).Value))
Case "0"
Range("F" & Ligne).EntireRow.Delete Shift:=xlDown
Case Else
End Select
Next Ligne
End Sub
Donc en gros est-ce qu'il est possible de faire la même chose avec OpenOffice.org 3.0?
PS:J'ai bien cherché un peu partout que se soit sur le forum ou avec google, mais je ne trouve pas la formule magique!!! Vu que ça fait plus d'une semaine que je suis en conception de mon classeur, je craque et vous demande de l'aide!!!
Merci à vous
Dernière modification par Oukcha le 10 déc. 2008 06:54, modifié 3 fois.
Raison : Correction balise [CALC]->[Calc] + pose balise [code] + correction titre ("macro" est implicite dans cette section)...+ pose balise [Résolu]
OpenOffice 3.0 sous Windows XP, Windows server 2003 et Debian lenny
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 12:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [CALC]Macros qui supprime des lignes???

Message par Alain de La Chaume »

Bonsoir, et bienvenue.
[CALC]Macros qui supprime des lignes???
Pour la forme, je pense que votre sujet-titre devrait ressembler à ceci :
[Calc] Suppression conditionnelle de lignes.
Pour le reste, je pense que ce bout de code devrait répondre à votre question :

Code : Tout sélectionner

sub supprLignes()
dim oFeuille as object, oCell as object
dim oLigne as object
dim ligne as integer, col as integer
dim valeur as integer
dim cpt as integer

	oFeuille = thisComponent.Sheets.getByIndex(0)
	col = 6 ' = G
	for ligne = (931-1) to (2-1) step -1
		oCell = oFeuille.getCellByPosition(col, ligne)
		valeur =oCell.getValue()
		if len(oCell.getString) and (valeur = 0) then
			' La cellule n'est pas vide
			' mais sa valeur est égale à zéro
			
			' Les 4 lignes qui suivent permettent
			' seulement de visualiser les lignes supprimées
			oLigne = oFeuille.getRows.getByIndex(ligne)
			oligne.cellBackColor = rgb(250,250,80)
			thisComponent.currentController.select(oLigne)
			wait 500	
			
			oFeuille.getRows.removeByIndex(ligne,1)
			cpt = cpt +1
		end if
	next ligne
	print cpt & " lignes supprimées."
end sub

Cordialement,
Alain
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
hippios
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 08 déc. 2008 17:54
Localisation : Saint-etienne

Re: [Calc]Supprimer des lignes???

Message par hippios »

Bonjour Alain,
Je vous remercie et je vais essayer votre code de ce pas. Je vous fais savoir le resultat aussitôt que je l'aurai éssayé.
Merci

Edit1 (retour 1ère experience)
Donc voila, je viens d'essayer et ça m'enlève toute les lignes de ma feuille!!! Je pense pas que ce soit grave mais, c'etait pas trop ce que je voulais. Je vais essayer de voir comment ça marche pour repérer ou il faut que je modifie.
Merci quand même par ce que, c'est déja un grand pas!!!
A plus tard

Edit2(retour 2ème experience)
Je viens de m'appercevoir que les cellules qui m'affiche des "0" sont des cellules liées à d'autres cellules d'une autre feuille du classeur. Du coup, quand je selectionne une des cellule, ellle me renvoie l'adresse de la cellule copiée (=$pdfr.$DT$99) tout en laissant le "0" affiché.
Je comprends que certains doivent rigoler quand j'explique, mais comme je le disais au premier poste, je n'ai aucune experience en macros.
Faut il que je vous fasse parvenir mon classeur pour que vous puissiez mieux comprendre et appliquer mes souhaits?
Merci de votre soutien.
OpenOffice 3.0 sous Windows XP, Windows server 2003 et Debian lenny
hippios
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 08 déc. 2008 17:54
Localisation : Saint-etienne

Re: [Calc]Supprimer des lignes???

Message par hippios »

Resalut tout le monde,
Alors voilà, après avoir plancher toute l'après midi sur mon problème :fou: , je n'arrive toujours pas à résoudre mon problème. Du coup je joint mon classeur au post au cas ou ça pourrait intéresser quelqu'un d'autre.
abracadabra2008.rar
En fait, il faudrait qu'à l'aide de la macros "supprlignes" que m'a proposé Alain :super: , je puisse eliminer toute les lignes de la feuille "av_part" qui ont un "0" dans la colonne "G" (En fait, à la base c'était "F").
Jusqu'à maintenant, j'ai seulement modifié la ligne 7 du code "Sheets.getByIndex(0)" par "Sheets.getByIndex(17)" pour le mettre en correspondance avec la feuille "av_part" du classeur. :? Pas si mal pour un début non???
Sur ce, si vous avez une solution n'hésitez surtout pas à me la proposer :wink: , parce que je ne pense pas y arriver seul. :cry:
Merci à tous et bonne fin de soirée.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.0 sous Windows XP, Windows server 2003 et Debian lenny
hippios
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 08 déc. 2008 17:54
Localisation : Saint-etienne

Re: [Calc]Supprimer des lignes???

Message par hippios »

Bon!!!!
Vous allez dire "Ce mec est un taré!!!! :tesfou: :alerte: "
En fait je viens de poster mon dernier message, et je viens de me relire et la!!!! Bingo!!!! :D j'avais dis à Alain la colonne "F" et moi je coinçais sur la "G"!!!! Alors du coup, j'ai changé la ligne 8 du code "col = 6 ' = G" par "col = 5 ' = F" :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto: :marto:
Donc, Voila. Je pense que le chemin va être long avant que je devienne un bon ..... "macroïste"!!! :wink:
Sur ce grand merci à Alain et encore bravo :super:
Bonne fin de soirée. (Pour moi elle ne fait que commencée!!!!!!)

Le modérateur a écrit :Merci de ne pas poster plusieurs messages à la suite !
Le bouton "Editer" à la droite du message permet d'y remédier.

Et abuser des binettes rend également la lecture très pénible.
OpenOffice 3.0 sous Windows XP, Windows server 2003 et Debian lenny