![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| OpenOffice Forum d'entraide sur OpenOffice.org. Avant de poster : La F.A.Q OpenOffice |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: juin 2008
Messages: 1
|
Bonjour à tous,
Je viens de me rendre compte qu'il n'y a pas d'option relative ou absolue lors de l'enregistrement de macro sur OOo... Et par défaut d'après mes test l'enregistrement se fait en mode Absolue (ne tient pas compte de la cellule sélectionnée au moment de l'exécution si j'ai bien compris). C'est problématique car j'aimerai créer une macro qui rajoute une ligne (à partir de la cellule sélectionné lors de l'exécution donc au dessus) et qui ensuite fait un copier-glissé de la 1ere, la 3eme et la 4eme cellules à droite au dessus vers la ligne qui vient d'être créée. Par exemple je suis en C2, j'exécute la macro en question, ainsi un nouvelle ligne 2 est créée et D1 est copié glissé vers D2, F1 vers F2 et G1 vers G2. Un peu difficile à expliquer mais très simple dans les fait. Je n'ai aucune idée de comment faire sur OOo. Quelqu'un a-t-il une idée? Merci d'avance. Adam. |
|
|
|
|
|
#2 (permalink) |
|
Invité de passage
![]() Date d'inscription: juillet 2008
Messages: 6
|
Bonjour Adamantium,
voici un petit bout de code qui te permet de récupérer le n° de la ligne sélectionnée et d'insérer 2 lignes avant : Code :
Dim lesFeuilles, feuille, selection, mesLignes As Object
Dim numLigneSelect As Integer
Dim strNumLigneSelect As String
lesFeuilles = ThisComponent.Sheets
feuille = lesFeuilles.getByName("nomOnglet")
'Récupérer la ligne sélectionnée
selection = thisComponent.currentSelection
if (selection.supportsService("com.sun.star.table.Cell")) then
'1 seule cellule sélectionnnée
MsgBox("Aucune ligne sélectionnée", 48, "titre")
Exit Sub
end if
'Ici on sait que selection pointe sur une ligne sélectionnée
'les N° de ligne commencent à 0
'=> on ajoute 1 pour avoir le n° affiché à gauche de la ligne
numLigneSelect = selection.RangeAddress.StartRow + 1
strNumLigneSelect = trim(Str(numLigneSelect))
'on insère deux lignes vides avant la ligne sélectionnée
mesLignes = feuille.getCellRangeByName("A" + strNumLigneSelect + ":" + "A" + strNumLigneSelect).Rows
mesLignes.insertByIndex(0,2)
'Ici, deux lignes ont été inséréee avant la ligne sélectionnée
Dernière modification par Philippe JOCHMANS ; 11/07/2008 à 18h00 Motif: Ajout des balises codes (sélection du code + #), ce n'est pas facultatif |
|
|
|
|
![]() |
![]() |
||
Macro insertion de ligne et copier coller calc
|
||
| Outils de la discussion | |
|
|