Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
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 !
La modération vous a écrit: Titre modifié pour plus de clarté
Bonjour,
J'essaie de créer une macro pour renvoyer (par l'action d'un bouton) la valeur d'une cellule définie vers une autre feuille quand le pointeur est positionné à n'importe quel endroit sur cette ligne.
Je n'arrive pas à trouver (malgré mes recherches) la commande nécessaire qui renvoie cette position du pointeur.
Merci pour votre aide
la ligne où est la cellule encadrée noire (dernier clic de la souris) (ligne 6, cellule B6) comporte les valeurs C, H et M.
Je veux qu'en cliquant sur un bouton de commande que j'aurai créé dans la barre des menus (exemple mon bouton "dernierelignetableau", que les valeurs de cette ligne (c'est à dire "C , H et M" ) soit copiées automatiquement dans un autre tableau sur une autre feuille.
Capture.JPG
Je recherche donc la commande qui permet de renvoyer les valeurs de la ligne contenant le dernier clic de la souris.
Dans l'attente de votre réponse
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Sub Main
doc = ThisComponent
sel = doc.CurrentSelection
if sel.supportsService("com.sun.star.table.Cell") then
coord = sel.CellAddress
li = coord.Row
source = doc.Sheets(0).getCellRangeByposition(0,li, 2,li) '2 pour les 3° cellules; à modifier si besoin
dest = doc.Sheets(1).getCellRangeByposition(0,li, 2,li)
dest.DataArray = source.DataArray
else
msgbox("sélectionnez une unique cellule")
end if
End Sub
A mon avis, ce n'est pas aussi simple. Mais comme l'auteur se contente d'envoyer une seule copie écran.
Pourquoi ne pas fournir l'intégralité de ce qui est demandé ?
Phi79 a écrit :renvoyer les valeurs de la ligne contenant le dernier clic de la souris.
Renvoyer où ? Copié, déplacé ? En tant que valeur ou référence ?
Dude a écrit :A mon avis, ce n'est pas aussi simple.
Sans doute, mais j'ai fait avec le peu d'informations données en espérant que ça serve de base au demandeur, ne serait-ce que pour mieux formuler sa demande
Bonjour,
Merci pour ces réponses.
N'étant pas assez expérimenté dans la programmation, je n'arrive pas intégrer vos remarques dans mon programme.
Voici ma macro , je vois bien que c'est cette ligne qu'il faut modifier
args1(0).Value = "$F$450:$H$450"
je veux qu'au lieu de prendre les données de la ligne 450, que ce soit les données de la ligne ou j'ai positionné le pointeur qui soient prises.
mais je n'y arrive pas.
Pour que ce soit plus simple , j'ai pensé aussi à faire un bouton texte et rentrer le numéro de la ligne désirée. mais là aussi il faut l'intégrer dans la macro.
Merci pour vos suggestions à venir.
sub calculPE
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$450:$H$450"
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 6
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$A$9"