[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 !

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

Messagepar RBod » 01 Déc 2017 16:47

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.
Pièces jointes
lister.ods
(13.2 Kio) Téléchargé 45 fois
Dernière édition par micmac le 01 Déc 2017 16:55, édité 1 fois.
libreoffice 5.2.3.3. windows 10
RBod
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 01 Déc 2017 16:15

Re: [Calc] remplir première cellule vide

Messagepar micmac » 01 Déc 2017 16:56

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.
Les formats ouverts (ODF) assurent la pérennité de vos documents.
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 6432
Inscrit le : 28 Août 2010 09:45

Re: [Calc] remplir première cellule vide

Messagepar Noonours » 01 Déc 2017 17:09

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   AgrandirRéduire
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
(14.01 Kio) Téléchargé 70 fois
 

COOordialement,
Dernière édition par Noonours le 01 Déc 2017 17:41, édité 2 fois.
Noonours plantigrade râleur

Pour obtenir la réponse la plus précise possible, N’HÉSITEZ SURTOUT PAS À JOINDRE UN FICHIER

LibO 6.2.8.2 sous Windows 10
LibO 5.0.6.3 (obligation de version) sous Win 7
Avatar de l’utilisateur
Noonours
Membre cOOnverti
Membre cOOnverti
 
Message(s) : 327
Inscrit le : 11 Mai 2013 01:11
Localisation : Aix en Provence

Re: [Calc] remplir première cellule vide

Messagepar RBod » 01 Déc 2017 17:26

Merci Noonours.
Je débute en ne vois pas comment insérer ces fonction dans ma macro :?:
libreoffice 5.2.3.3. windows 10
RBod
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 01 Déc 2017 16:15

Re: [Calc] remplir première cellule vide

Messagepar Dude » 01 Déc 2017 17:40

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/
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21254
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Calc] remplir première cellule vide

Messagepar RBod » 01 Déc 2017 17:51

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
RBod
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 01 Déc 2017 16:15

Re: [Calc] remplir première cellule vide

Messagepar GNIN » 11 Déc 2017 17:31

Bonjour,


La modération 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   AgrandirRéduire
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   AgrandirRéduire
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   AgrandirRéduire
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   AgrandirRéduire
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   AgrandirRéduire
Derligne=Derligne+1
SelectCellule "C" & Derligne
'concaténation


Nota: pour faire plus propre
Code : Tout sélectionner   AgrandirRéduire
SelectCellule "C" & trim(cstr(Derligne))


En espérant que cela t'aidera !
Dernière édition par Phantéd le 11 Déc 2017 18:03, édité 1 fois.
Raison: formules mises entre balises
Libreoffice 4.3.7.2 sous Windows 10
GNIN
Fraîchement OOthentifié
 
Message(s) : 1
Inscrit le : 06 Déc 2017 17:39

Re: [Calc] remplir première cellule vide

Messagepar Churay » 11 Déc 2017 19:13

Bonsoir

Exemple : écrire la date saisie à la suite des saisies précédentes
Code : Tout sélectionner   AgrandirRéduire
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...
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
 
Message(s) : 2668
Inscrit le : 30 Avr 2009 05:54
Localisation : CATALUNYA


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 6 invité(s)