Bonjour,
Je sais comment figer une fenêtre à l'aide de l'enregistreur de macro mais à l'inverse je ne trouve pas comment récupérer l'adresse de cellule à partir de laquelle a lieu l'opération de scinder la fenêtre ?
J'espère avoir été clair ?
[Résolu] [Calc] Info sur une feuille scindée : fenêtre figée
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- NOOuvel adepte
- Messages : 10
- Inscription : 06 janv. 2006 15:18
- Localisation : Cherbourg
[Résolu] [Calc] Info sur une feuille scindée : fenêtre figée
Dernière modification par xank le 20 août 2007 07:08, modifié 1 fois.
-
- NOOuvel adepte
- Messages : 10
- Inscription : 06 janv. 2006 15:18
- Localisation : Cherbourg
-
- NOOuvel adepte
- Messages : 10
- Inscription : 06 janv. 2006 15:18
- Localisation : Cherbourg
[Résolu]
Voici une solution (qui peut être améliorée) :
Merci d'avoir prêter attention à mon problème.
Code : Tout sélectionner
REM ***** BASIC *****
Sub Figer
' Au départ, seule la feuille 1 est figée
' Cette procédure permet de figer la feuille 2
' selon les mêmes caractéristiques de la feuille 1
' Si la fenêtre est seulement scindée, il n'y a
' aucun effet.
Dim DocControl As Object
DocControl = ThisComponent.CurrentController
' Active la première feuille
DocControl.ActiveSheet = ThisComponent.Sheets(0)
' Récupère la colonne (figée ou scindée)
Col = DocControl.getSplitColumn
' Récupère la ligne (figée ou scindée)
Lig = DocControl.getSplitRow
If (Col > 0 Or Lig > 0) And Not(DocControl.getIsWindowSplit()) Then
' Condition importante : en effet si la feuille 1
' n'est pas figée, la feuille 2 sera figée à
' l'endroit où se trouve la sélection (cellule)
'
' Le getIsWindowsSplit est égal à :
' - True si Fenêtre scindée
' - False si Fenêtre n'est pas scindée
' mais elle peut être figée (c'est ce que je veux)
' Active la deuxième feuille
DocControl.ActiveSheet = ThisComponent.Sheets(1)
' Fige
DocControl.FreezeAtPosition(Col,Lig)
End If
End Sub
OOo 2.0.2 sous WinXP SP2
-
- Membre fOOndateur
- Messages : 1146
- Inscription : 16 janv. 2006 14:07
- Localisation : Lisieux
Bonsoir,
si votre problème est résolu merci de mettre la balise dans le titre de votre 1er poste.
une aide pour savoir comment faire.
http://www.forum-openoffice.org/fichier ... resolu.swf
si votre problème est résolu merci de mettre la balise dans le titre de votre 1er poste.
une aide pour savoir comment faire.
http://www.forum-openoffice.org/fichier ... resolu.swf
7.5.4.2 (AARCH64) LibreOffice
Mac OS X 13.4.1
Mac OS X 13.4.1
-
- NOOuvel adepte
- Messages : 10
- Inscription : 06 janv. 2006 15:18
- Localisation : Cherbourg
Petite amélioration
Bonjour,
Le code peut se réduire à
La méthode hasFrozenPanes détecte si la feuille est figée.
C'est plus simple !
Le code peut se réduire à
Code : Tout sélectionner
Sub Figer
' Au départ, seule la feuille 1 est figée
' Cette procédure permet de figer la feuille 2
' selon les mêmes caractéristiques de la feuille 1
' Si la fenêtre est seulement scindée, il n'y a
' aucun effet.
Dim DocControl As Object
DocControl = ThisComponent.CurrentController
' Active la première feuille
DocControl.ActiveSheet = ThisComponent.Sheets(0)
' Teste si la feuille est figée
If DocControl.hasFrozenPanes Then
' Récupère la colonne
Col = DocControl.getSplitColumn
' Récupère la ligne
Lig = DocControl.getSplitRow
' Active la deuxième feuille
DocControl.ActiveSheet = ThisComponent.Sheets(1)
' Fige
DocControl.FreezeAtPosition(Col,Lig)
End If
End Sub
C'est plus simple !
OOo 2.0.2 sous WinXP SP2