[Résolu][Calc] Aller à la première cellule vide

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 !
OrigiN
Fraîchement OOthentifié
Messages : 3
Inscription : 12 juil. 2024 07:16

[Résolu][Calc] Aller à la première cellule vide

Message par OrigiN »

Bonjour,

J'ai, pour information, déjà réussi grace à l'enregistreur de Macro à faire en sorte d'aller dans une case spécifique.

exemple :

Code : Tout sélectionner

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$7"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
Par contre j'ai une feuille dans laquelle j'aimerais aller à la première case vide du groupe de case B7 à B6000.

Par exemple, si B7 et B8 sont remplies, alors cela m'amène à la B9.
Si les cases B7 à B1261 sont remplies, alors cela m'amène à la B1262.

Merci par avance de m'aider là dessus :)
Dernière modification par OrigiN le 12 juil. 2024 13:19, modifié 1 fois.
OpenOffice 7.0 sous Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9839
Inscription : 28 août 2010 08:45

Re: [Calc] Aller à la première cellule vide

Message par micmac »

Bonjour et bienvenue,

Le titre de votre question < [Calc] Macro pour aller à la première cellule vide > a été débarrassé du terme Macro qui est inutile car implicite dans cette section.
dans votre signature il y a écrit :OpenOffice 7.0 sous Windows 10
Cette version de LibO n'est plus toute neuve. Si c'est une obligation ou un choix mentionnez-le par Obligation de version dans votre signature afin de ne pas être relancé.

Afin de profiter des dernières améliorations, pensez à être à jour de la dernière version officielle stable

Accès direct à votre signature pour la corriger.

Pour être aidé efficacement par les bénévoles de ce forum, veuillez joindre un classeur explicatif.
Comment joindre un fichier
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Jeff
GourOOu
GourOOu
Messages : 9944
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Calc] Aller à la première cellule vide

Message par Jeff »

Bonjour et bienvenue,

À moins que le recours à une macro soit indispensable, il y a moyen de créer un hyperlien vers la cellule en question en utilisant une fonction LIEN.HYPERTEXTE, voir :
viewtopic.php?t=30786&hilit=Premi%C3%A8 ... +vide+lien

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.15 / Debian 12.10 "bookworm" / Xfce
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 6065
Inscription : 02 janv. 2009 23:56

Re: [Calc] Aller à la première cellule vide

Message par Jean-Louis Cadeillan »

Bonjour,
Un exemple de code qui permet d'aller à la première case vide de la colonne B (lancement de la macro par le bouton Fin en C1) :

Code : Tout sélectionner

Sub Vide
'voir page 449 Macros Oobasic de Bernard Marcelly et Laurent Godard,2011 et https://forum.openoffice.org/fr/forum/viewtopic.php?f=15&t=11075 (Factoor, suprême de code
Dim monDocument As Object, monControleur As Object
Dim maCellule As object
Dim maFeuille As object
    monDocument = ThisComponent
    monControleur = monDocument.CurrentController
    monControleur.activeSheet = monDocument.Sheets(0)
    maFeuille = monControleur.ActiveSheet
Dim zonesVides As Variant
Dim maZone As Object
maZone = maFeuille.getCellRangeByName("B2:B3000")
zonesVides = maZone.queryEmptyCells.RangeAddresses
if UBound(zonesVides) < 0 then
  print "aucune zone vide dans la zone"
else
  ' la première zone mémorisée correspond au balayage de haut en bas
    y = zonesVides(0).StartRow
'   print "Vide à partir de la ligne " & y+1
    maCellule = maFeuille.getCellRangeByName("B"&y+1)
    monControleur.select(maCellule)
end If
End Sub
Remarque : on peut se passer de macro par la formule matricielle, en D1 dans le fichier joint :

Code : Tout sélectionner

=LIEN.HYPERTEXTE("#B"&MIN(SI(B2:B1000="";LIGNE(B2:B1000);""));"Fin")
 Ajout : @Jeff : je ne saurais mieux dire :wink: merci pour ce rappel ! 
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 24.2.7.2 (x64 et Java 1.8.0_461) et AOO 4.1.15 (et Java x32 1.8.0_431), Windows 7 Édition Intégrale 64 SP1
OrigiN
Fraîchement OOthentifié
Messages : 3
Inscription : 12 juil. 2024 07:16

Re: [Calc] Aller à la première cellule vide

Message par OrigiN »

Merci beaucoup déjà pour cette réponse rapide.
J'ai un soucis cependant car je suis sur un troisième onglet et cela m'amène sur le premier onglet du fichier..
Possible de faire en sorte que ça prenne l'onglet sur lequel je suis ?
OpenOffice 7.0 sous Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 6065
Inscription : 02 janv. 2009 23:56

Re: [Calc] Aller à la première cellule vide

Message par Jean-Louis Cadeillan »

Désactive monControleur.activeSheet = monDocument.Sheets(0), avec une apostrophe ou Rem devant
Cordialement,
Jean-Louis
LibO 24.2.7.2 (x64 et Java 1.8.0_461) et AOO 4.1.15 (et Java x32 1.8.0_431), Windows 7 Édition Intégrale 64 SP1
OrigiN
Fraîchement OOthentifié
Messages : 3
Inscription : 12 juil. 2024 07:16

Re: [Calc] Aller à la première cellule vide

Message par OrigiN »

Merci infiniment
OpenOffice 7.0 sous Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9839
Inscription : 28 août 2010 08:45

Re: [Calc] Aller à la première cellule vide

Message par micmac »

Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS