[Calc] Atteindre une cellule

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 !
pphilippe
Membre hOOnoraire
Membre hOOnoraire
Messages : 154
Inscription : 18 oct. 2018 15:01

[Calc] Atteindre une cellule

Message par pphilippe »

Bonjour
Je travaille sur un fichier qui deviendra un tableau de bord et je ne suis pas très calé en macro.
Normalement à l'ouverture, l'utilisateur devrait arriver sur une page d'accueil (c'est pas encore au point mais c'est l'idée)
Je cherche une macro simple qui me permettrai en cliquant sur un bouton (SAISIE) de trouver la première cellule vide dans une liste (onglet saisie) et de la rendre active.
Je vous remercie
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Beetle le 24 févr. 2026 16:31, modifié 1 fois.
Raison : Ajout de la balise [Calc]
Libre Office Version : 25.8.3.2
Ubuntu : 24.04.3 LTS
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1885
Inscription : 15 déc. 2010 08:33

Re: [Calc] Atteindre une cellule

Message par yclik »

Bonjour
une proposition

Code : Tout sélectionner

sub Saisie

Dim oDoc As Object
Dim oSheets as object
Dim oSheet As Object
Dim oCell as Object

oDoc = thisComponent
oSheet = oDoc.Sheets.getByName("saisie")
maZone = oSheet.getCellRangeByName("A1:A1000")
zoneVide = maZone.queryEmptyCells.RangeAddresses
'Je trouve la dernière ligne utilisée
derLigne = zoneVide(0).StartRow
'J'ajoute 1 pour obtenir la ligne vide
 derLigne =  derLigne + 1
'print derLigne
'Affiche la feuille
oDoc.CurrentController.ActiveSheet = oSheet
'adresse dernière ligne
oCell = oSheet.getCellRangeByName("A"+derLigne)
'sélectione la cellule de la dernière ligne col A
oDoc.CurrentController.select(oCell)
end sub

et en bonus
une macro qui permet d'afficher la feuille saisie dès l'ouverture du classeur

Code : Tout sélectionner

sub menu
Dim oDoc As Object
Dim oSheets as object
Dim oSheet As Object
oDoc = thisComponent
oSheet = oDoc.Sheets.getByName("accueil")
oDoc.CurrentController.ActiveSheet = oSheet
End Sub
pour ouvrir sur la page accueil
Outils > personnaliser >onglets événements
Sélectionner « ouvrir un document » et assigner macro menu
saisie_cible.ods
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.14 sous Windows 11
pphilippe
Membre hOOnoraire
Membre hOOnoraire
Messages : 154
Inscription : 18 oct. 2018 15:01

Re: [Calc] Atteindre une cellule

Message par pphilippe »

Bonsoir
Merci à Beetle pour sa compréhension et à yclick pour sa compétence.

Question subsidiaire, si le fichier est ouvert sous excel (ça peut arriver) il ne va pas planter ?
Merci
Libre Office Version : 25.8.3.2
Ubuntu : 24.04.3 LTS