[Résolu][Calc] Afficher dernière ligne sur une autre feuille
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 !

Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- InconditiOOnnel
- Messages : 930
- Inscription : 27 févr. 2013 14:55
[Résolu][Calc] Afficher dernière ligne sur une autre feuille
Bonjour
Soit un bouton nommé "dernière vente effectuée" qui permet d'accéder à la feuille nommée "derniere_vente"
et qui affiche la dernière ligne saisie dans la feuille vente respectivement
'contenu de la cellule B de la feuille vente en G12 dans la feuille derniere_vente
'contenu de la cellule C de la feuille vente en G15 dans la feuille derniere_vente
'contenu de la cellule D de la feuille vente en E17 dans la feuille derniere_vente
'contenu de la cellule E de la feuille vente en H17 dans la feuille derniere_vente
'contenu de la cellule F de la feuille vente en E19 dans la feuille derniere_vente
J'arrive à trouver la dernière ligne saisie mais je n'arrive pas à afficher dans la feuille nommée"derniere_vente" , le contenu des cellules
Merci d'avance
A+
Soit un bouton nommé "dernière vente effectuée" qui permet d'accéder à la feuille nommée "derniere_vente"
et qui affiche la dernière ligne saisie dans la feuille vente respectivement
'contenu de la cellule B de la feuille vente en G12 dans la feuille derniere_vente
'contenu de la cellule C de la feuille vente en G15 dans la feuille derniere_vente
'contenu de la cellule D de la feuille vente en E17 dans la feuille derniere_vente
'contenu de la cellule E de la feuille vente en H17 dans la feuille derniere_vente
'contenu de la cellule F de la feuille vente en E19 dans la feuille derniere_vente
J'arrive à trouver la dernière ligne saisie mais je n'arrive pas à afficher dans la feuille nommée"derniere_vente" , le contenu des cellules
Merci d'avance
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Zelada le 24 févr. 2014 11:05, modifié 2 fois.
LibreOffice 3.6.5.2 (version imposée) sous Windows XP SP3 au bureau
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] Afficher dernière ligne saisie sur une autre feui
Bonsoir
A tester
Attention au format de tes cellules !!! La date dans la feuille Vente était en texte.
A+
A tester
Code : Tout sélectionner
Sub AccederDerniereVente
Dim MonClasseur as Object
Dim MesFeuilles as Object
Dim MaFeuille1 as Object, MaFeuille2 As Object
Dim maZone as Object, derCellule as Variant, y as Integer
MonClasseur = ThisComponent
MesFeuilles = MonClasseur.Sheets
MaFeuille1 = MesFeuilles.getByName("derniere_vente")
MaFeuille2 = MesFeuilles.getByName(("vente")
maZone = maFeuille2.getCellRangeByName("A2:A100")
derCellule = maZone.queryEmptyCells.RangeAddresses
y = derCellule(0).StartRow -1
' afficher la dernière ligne saisie dans la feuille Vente
MsgBox "Dernière ligne saisie : Ligne " & y
'afficher :
'contenu de la cellule B en G12 dans la feuille derniere_vente
MaFeuille1.getCellRangeByName("G12").Value = MaFeuille2.getCellByPosition(1,y).Value
'contenu de la cellule C en G15 dans la feuille derniere_vente
'Je te laisse faire le reste
'contenu de la cellule D en E17 dans la feuille derniere_vente
'contenu de la cellule E en H17 dans la feuille derniere_vente
'contenu de la cellule F en E19 dans la feuille derniere_vente
End Sub
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- InconditiOOnnel
- Messages : 930
- Inscription : 27 févr. 2013 14:55
Re: [Calc] Afficher dernière ligne saisie sur une autre feui
Bonsoir Piaf
Serais-tu me dire pourquoi mon code ne fonctionne pas ?
Cela m'aiderait à progresser
J'ai testé ton code et cela ne fonctionne pas, déjà il trouve la ligne 0
A+
Serais-tu me dire pourquoi mon code ne fonctionne pas ?
Cela m'aiderait à progresser
J'ai testé ton code et cela ne fonctionne pas, déjà il trouve la ligne 0
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 3.6.5.2 (version imposée) sous Windows XP SP3 au bureau
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] Afficher dernière ligne saisie sur une autre feui
Re
Le code trouve la ligne 0 car dans ton fichier la colonne Ecriture n'est pas renseignée. Même chose dans le nouveau fichier et même remarque pour les dates.
Si la colonne Ecriture ne dois pas être renseignée, fais la recherche sur la deuxième colonne.
Si les dates sont en texte, mettre String à la place de Value
A+
Le code trouve la ligne 0 car dans ton fichier la colonne Ecriture n'est pas renseignée. Même chose dans le nouveau fichier et même remarque pour les dates.
Si la colonne Ecriture ne dois pas être renseignée, fais la recherche sur la deuxième colonne.
Si les dates sont en texte, mettre String à la place de Value
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- InconditiOOnnel
- Messages : 930
- Inscription : 27 févr. 2013 14:55
Re: [Calc] Afficher dernière ligne saisie sur une autre feui
Bonjour
Merci Piaf
ok pour la date
J'ai procédé aux modifications et cela fonctionne mais :
La question étant d'afficher la dernière ligne saisie il faut donc trouver cette dernière ligne
Pourrait on m'expliquer pourquoi il est préférable d'utiliser ce code
bien évidemment la ligne MsgBox " Dernière ligne saisie..." est là uniquement pour vérifier que la macro fait bien son travail
plutôt que celui-ci (macro écrite dans mon premier fichier de ce message)
Merci d'avance
A+
Merci Piaf
ok pour la date
J'ai procédé aux modifications et cela fonctionne mais :
La question étant d'afficher la dernière ligne saisie il faut donc trouver cette dernière ligne
Pourrait on m'expliquer pourquoi il est préférable d'utiliser ce code
bien évidemment la ligne MsgBox " Dernière ligne saisie..." est là uniquement pour vérifier que la macro fait bien son travail
Code : Tout sélectionner
Sub AccederDerniereVente
Dim MonClasseur as Object
Dim MesFeuilles as Object
Dim MaFeuille1 as Object, MaFeuille2 As Object
Dim maZone as Object, derCellule as Variant, y as Integer
MonClasseur = ThisComponent
MesFeuilles = MonClasseur.Sheets
MaFeuille1 = MesFeuilles.getByName("derniere_vente")
MaFeuille2 = MesFeuilles.getByName(("vente")
maZone = maFeuille2.getCellRangeByName("A2:A100")
derCellule = maZone.queryEmptyCells.RangeAddresses
y = derCellule(0).StartRow -1
' afficher la dernière ligne saisie dans la feuille Vente
MsgBox "Dernière ligne saisie : Ligne " & y
end sub
Code : Tout sélectionner
Sub AccederDerniereVente
Dim MonClasseur as Object
Dim MesFeuilles as Object
Dim MaFeuille1 as Object, MaFeuille2 As Object
Dim MonCurseur As Object
Dim oCel1 As Object, oCel2 As Object
MonClasseur = ThisComponent
MesFeuilles = MonClasseur.Sheets
MaFeuille1 = MesFeuilles.getByName("derniere_vente")
MaFeuille2 = MesFeuilles.getByName(("vente")
MonCurseur = MaFeuille2.createCursorByRange(MaFeuille2.getCellRangeByName("A1"))
MonCurseur.GotoEndOfUsedArea(False)
msgbox "La dernière ligne saisie est en " & MonCurseur.RangeAddress.EndRow +1
end sub
A+
LibreOffice 3.6.5.2 (version imposée) sous Windows XP SP3 au bureau
-
- IdOOle de la suite
- Messages : 25994
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Afficher dernière ligne saisie sur une autre feui
Salut,
Ce sont deux manières de procéder pour arriver à la même conclusion.
Dans la 1ere, tu dois spécifier une plage.
Dans la 2e, une cellule de départ.
Il faudrait faire des tests si l'une est plus rapide que l'autre.
Ce sont deux manières de procéder pour arriver à la même conclusion.
Dans la 1ere, tu dois spécifier une plage.
Dans la 2e, une cellule de départ.
Il faudrait faire des tests si l'une est plus rapide que l'autre.
-
- InconditiOOnnel
- Messages : 948
- Inscription : 27 nov. 2010 00:17
- Localisation : gâtine deux-sèvrienne
Re: [Calc] Afficher dernière ligne saisie sur une autre feui
Bonjour
L'autre inconvénient, si la méthode est incluse dans une boucle et que la propriété LockControllers (qui interdit toute intervention de l'utilisateur et gel les changements sur le document au cours de l'opération) est utilisée, la variable qui sert de résultat à la méthode GoToEndOfUsedArea ne se réinitialise pas.
J'espère ne pas avoir écris une bêtise
Cordialement
Luke
Il me semble aussi que le formatage conditionnel sur une cellule est considéré par la méthode comme cellule utilisée. À Vérifier.La bible a écrit : La méthode GoToEndOfUsedArea considère comme utilisée toute cellule comportant une valeur ou un texte ou une formule ou un formatage local (couleur, bordure...).
L'autre inconvénient, si la méthode est incluse dans une boucle et que la propriété LockControllers (qui interdit toute intervention de l'utilisateur et gel les changements sur le document au cours de l'opération) est utilisée, la variable qui sert de résultat à la méthode GoToEndOfUsedArea ne se réinitialise pas.
J'espère ne pas avoir écris une bêtise

Cordialement
Luke
Dernière modification par luky-luke le 24 févr. 2014 13:39, modifié 1 fois.
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
-
- InconditiOOnnel
- Messages : 930
- Inscription : 27 févr. 2013 14:55
Re: [Calc] Afficher dernière ligne saisie sur une autre feui
Salut Dude
merci !
Etant donné que Piaf avait modifié le code, sur le coup je pensais que "ma macro" n'était pas "conforme" même si le résultat (affichage de la ligne dans boite de dialogue) escompté était bon
OK je peux donc mettre Résolu
A+
merci pour ces précisions luky-luke 
je mets le fichier au cas où cela pourrait servir à quelqu'un
A+
merci !
Etant donné que Piaf avait modifié le code, sur le coup je pensais que "ma macro" n'était pas "conforme" même si le résultat (affichage de la ligne dans boite de dialogue) escompté était bon
OK je peux donc mettre Résolu
A+
Ajout : 12:03 |

Ajout : 12:20 |
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 3.6.5.2 (version imposée) sous Windows XP SP3 au bureau