[Toulibre] calc

Chris Fabre xris.fabre at laposte.net
Sam 8 Nov 16:57:34 CET 2008


Rémi Boulle a écrit :
> Chris Fabre wrote:
>   
>> Rémi Boulle a écrit :
>>     
>>> Chris Fabre wrote:
>>>   
>>>       
>>>> bonjour,
>>>> quelqu'un pourrait-il me dire comment ajouter (ou supprimer) une même 
>>>> ligne dans toutes les feuilles d'un classeur calc ?
>>>>     
>>>>         
>>> Je me suis pris au jeu et voilà une macro qui semble fonctionner à 
>>> adapter à tes besoins (testée avec OOo3).
>>> Tout avis pour l'améliorer sont bienvenus.
>>> '=================
>>> Sub EffacerLigne
>>> Dim monDoc As Object
>>> Dim lesLignes As Object
>>> Dim maZone As Object
>>>
>>> monDoc = ThisComponent
>>> 'On boucle sur les feuilles du classeur
>>> For i = 1 to monDoc.Sheets.Count
>>> 	'L'objet Rows n'est accessible que via CellRange
>>> 	maZone = monDoc.Sheets(i-1).getCellRangeByName("A1:A20")
>>> 	lesLignes = maZone.Rows
>>> 	'Efface 1 ligne à partir de la ligne numero 2 incluse
>>> 	lesLignes.removeByIndex(2,1)
>>> Next
>>> End Sub
>>> '================
>>> @+
>>> Rémi.
>>>       
>> Merci ça tourne (OOo2).
>> Amélioration que je tenterai dès que possible (je n'ai encore qu'une 
>> petite pratique de LB...dans Excel):
>> - supprimer la ligne sélectionnée
>> - ou créer une boîte de dialogue demandant le n°de ligne à supprimer)
>>     
>
> Bonne idée.
> Tout cela est faisable avec OOo.
> Tiens nous au courant. Je suis intéressé à titre purement pédagogique. :-)
> @+
> Rémi.
>
>   
Ouf ! Voilà ce qui tourne chez moi (OOo2) pour insérer ou supprimer des 
lignes sur toutes les feuilles du classeur:

*************
Sub Insererligne
Dim monDoc As Object
Dim lesLignes As Object
Dim maZone As Object
dim nblig as string
dim numligne as string
dim nb as integer
dim num as integer
nbligne = InputBox ("Combien de lignes voulez-vous inserer : ","Insertion")
numligne = InputBox ("A partir de quelle ligne :(attention on insere 
avant la ligne) ","Donner la ligne de depart")
nb=cint(nbligne)
num= cint(numligne)
monDoc = ThisComponent
'On boucle sur les feuilles du classeur
For i = 1 to monDoc.Sheets.Count
    'L'objet Rows n'est accessible que via CellRange
    maZone = monDoc.Sheets(i-1).getCellRangeByName("A1:A1000")
    lesLignes = maZone.Rows
    'Efface 1 ligne à partir de la ligne numero 2 incluse
    lesLignes.insertByIndex(num-1,nb)
Next
End Sub
*************
Sub SupprimerLigne
Dim monDoc As Object
Dim lesLignes As Object
Dim maZone As Object
dim nblig as string
dim numligne as string
dim nb as integer
dim num as integer
nbligne = InputBox ("Combien de lignes voulez-vous supprimer : 
","suppression")
numligne = InputBox ("A partir de quelle ligne : ","Donner la ligne de 
depart")
nb=cint(nbligne)
num= cint(numligne)

'msgbox("nbligne" & nb)
'msgbox("numligne" & num)
monDoc = ThisComponent
'On boucle sur les feuilles du classeur
For i = 1 to monDoc.Sheets.Count
    'L'objet Rows n'est accessible que via CellRange
    maZone = monDoc.Sheets(i-1).getCellRangeByName("A1:A1000")
    lesLignes = maZone.Rows
    'Efface 1 ligne à partir de la ligne numero 2 incluse
    lesLignes.removeByIndex(num-1,nb)
Next
End Sub
****************
@+
chris




Plus d'informations sur la liste de diffusion Toulouse-ll