[Résolu][Calc] remplir 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 !
RBod
Fraîchement OOthentifié
Messages : 3
Inscription : 01 déc. 2017 15:15

[Résolu][Calc] remplir première cellule vide

Message par RBod »

Bonjour,
J'essaie de faire un fichier de suivi de consommation de mon véhicule mais je ne sais pas comment faire pour que les dernières données saisies remplissent automatiquement la ligne et les cellules vides en dessous de celles déjà renseignées.
Merci de votre aide.
En PJ mon fichier.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 01 déc. 2017 15:55, modifié 1 fois.
libreoffice 5.2.3.3. windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9254
Inscription : 28 août 2010 08:45

Re: [Calc] remplir première cellule vide

Message par micmac »

Bonjour et bienvenue,

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.
Avez-vous remarqué comment étaient postées les autres questions ?

Lisez ce fil pour savoir quelle balise utiliser : https://forum.openoffice.org/fr/forum/s ... html#27295

N'oubliez pas que les termes "Macro" ou "OpenOffice" ne doivent pas être employés car il sont implicites. Essayez de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 501
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] remplir première cellule vide

Message par Noonours »

Bonjour

Les méthodes gotoEndOfUsedArea ou QueryEmptyCells devraient répondre à tes attentes.
Les liens ICI et LA.
 Ajout : Je viens de lire le codage de ta macro, et j'aurais quelques remarques (positives, hein? :wink: )
tu ne devrais pas nommer tes variables avec un nom que Basic reconnaîtrait comme une commande, par exemple, tu écris:

Code : Tout sélectionner

Dim Date As String
La commande 'Date' renvoie une structure UNO qui n'est pas interprétée comme un chaine dec aracteres et peut provoquer des erreurs de calcul.
Pour la recherche de la premiere ligne vide (ce qui est à la base ta question) j'ai utilisé la méthode QueryEmptyCells.
je me suis aussi amusé à créer une boite de dialogue, je te laisse explorer tout ça dans le fichier joint :aie:
lister_MOD.ods
 
COOordialement,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Noonours le 01 déc. 2017 16:41, modifié 2 fois.
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 7.6.5.2 Stable et OpenOffice 4.1.15 sous Windows 10
RBod
Fraîchement OOthentifié
Messages : 3
Inscription : 01 déc. 2017 15:15

Re: [Calc] remplir première cellule vide

Message par RBod »

Merci Noonours.
Je débute en ne vois pas comment insérer ces fonction dans ma macro :?:
libreoffice 5.2.3.3. windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] remplir première cellule vide

Message par Dude »

Salut,
RBod a écrit :J'essaie de faire un fichier de suivi de consommation de mon véhicule
Mon conseil : se servir de l'excellent site SpritMonitor
h**ps://www.spritmonitor.de/fr/
RBod
Fraîchement OOthentifié
Messages : 3
Inscription : 01 déc. 2017 15:15

Re: [Calc] remplir première cellule vide

Message par RBod »

Merci Noonours,
e vais tenté d'étendre aux autres champs de mon tableau ainsi que modifier la boîte de dialogue que je ne maîtrise pas du tout.
Encore un grand merci Noonours :bravo:
libreoffice 5.2.3.3. windows 10
GNIN
Fraîchement OOthentifié
Messages : 1
Inscription : 06 déc. 2017 16:39

Re: [Calc] remplir première cellule vide

Message par GNIN »

Bonjour,

La modération vous a écrit: Pour faciliter la lecture, formules mises entre balises par le modérateur.

Voici une fonction qui retourne le n° de la dernière ligne utilisée d'un onglet précis.
Il convient de passer en paramètre le nom de l'onglet

Code : Tout sélectionner

Public Function DerniereLigneUtilisee(Nomfeuille as string) as long
	 Dim D as object
	 Dim F as object
	 D=thiscomponent
	 Dim T as variant
	 F=D.Sheets.getByName(Nomfeuille)
	 T=F.RowDescriptions()
	 DerniereLigneUtilisee=Ubound(T)+1
End Function
Exemple: Je veux mémoriser dans une variable nommée "Derligne" la valeur de la dernière ligne utilisée de l'onglet "MENU"

Code : Tout sélectionner

Dim Derligne as long
Derligne=DerniereLigneUtilisee("MENU")
Maintenant que l'on connaît la valeur de la dernière ligne utilisée, supposons que l'on veuille se positionner juste après pour y écrire du texte.

On peut utiliser la fonction suivante qui permet de se positionner sur une cellule précise de l'onglet ACTIF:

Code : Tout sélectionner

Public Sub SelectCellule(C as string)
Dim Document as object
dim FeuilleActive as object
Dim Cellule as object
Document=Thiscomponent
FeuilleActive=document.currentselection.spreadsheet
Cellule=feuilleactive.getcellrangebyname(C)
document.currentcontroller.select(cellule)
End sub
Exemple d'utilisation (ici pour se positionner en cellule C1):

Code : Tout sélectionner

SelectCellule "C1" 
Dans notre cas, vu que la ligne à partir de laquelle on souhaite écrire est égale à la variable Derligne+1, on peut procéder comme ceci:
(on considère que la colonne est toujours C)

Code : Tout sélectionner

Derligne=Derligne+1
SelectCellule "C" & Derligne 
'concaténation
Nota: pour faire plus propre

Code : Tout sélectionner

SelectCellule "C" & trim(cstr(Derligne))
En espérant que cela t'aidera !
Dernière modification par Phantéd le 11 déc. 2017 17:03, modifié 1 fois.
Raison : formules mises entre balises
Libreoffice 4.3.7.2 sous Windows 10
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Calc] remplir première cellule vide

Message par Churay »

Bonsoir

Exemple : écrire la date saisie à la suite des saisies précédentes

Code : Tout sélectionner

Sub Main
Dim oSheet As Object, oCursor AS Object
Dim nRow AS Long, nDate As Double, sKm AS String
	oSheet = ThisComponent.getCurrentController.getactivesheet()
	oCursor = oSheet.createCursor : oCursor.gotoEndOfUsedArea(False)
	' EndRow = dernière ligne utilisée - 
	nRow = oCursor.RangeAddress.EndRow + 1 ' nRow = 1ère ligne libre

	nDate = DateValue(InputBox("Entrer la date"))
	IF nDate <> 0 Then oSheet.getCellByPosition(0,nRow).Value = nDate
End sub
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...