[Résolu][Calc] "Value Out of scope" à l'assignation

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 !
clduick
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 10 oct. 2007 12:36
Localisation : Paris

[Résolu][Calc] "Value Out of scope" à l'assignation

Message par clduick »

Bonjour,

C'est la deuxième fois que je rencontre se problème sans comprendre pourquoi.
Lorsque j’exécute ma macro via l'Editeur Basic ma macro "d'amateur" fonctionne correctement. Mais dès que je l'assigne sur mon Bouton qui se trouve en feuille 3 elle est en erreur.
J'active le "témoin dans l'éditeur" , et quand je clique sur mon Bouton j'ai "Variable Sub" "Valeur Out of Scope"

Pouvez vous m'aider ?

Code : Tout sélectionner

sub ResultatRechecheSimple 

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 = "Nr"
args1(0).Value = 3
 
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())



rem 'J'ai rajoouté cette arguments pour voir si le bouton fonction mais rien ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$AG$21"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2()) 

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$C$21:$AG$21"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 4

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())

rem ----------------------------------------------------------------------

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "ToPoint"
args5(0).Value = "$D$4:$D$34"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
'dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, array())

rem j'ai rajouté cette args pour voir si c'était mon ClearContents qui se m'était en erreur mais tjs rien------------
dim args0(0) as new com.sun.star.beans.PropertyValue
args0(0).Name = "Flags"
args0(0).Value = "SVDFN"

dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args0())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$D$4"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6()) 

rem ----------------------------------------------------------------------
dim args8(5) as new com.sun.star.beans.PropertyValue
args8(0).Name = "Flags"
args8(0).Value = "SVDF"
args8(1).Name = "FormulaCommand"
args8(1).Value = 0
args8(2).Name = "SkipEmptyCells"
args8(2).Value = false
args8(3).Name = "Transpose"
args8(3).Value = true
args8(4).Name = "AsLink"
args8(4).Value = false
args8(5).Name = "MoveMode"
args8(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args8())



'dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6()) 


end sub
Dernière modification par clduick le 09 juin 2021 15:02, modifié 3 fois.
LibreOffice 7.1 sous W10 Obligation de Version
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12222
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Calc]Problème de macro lors de l'assignation du Bouton

Message par Bidouille »

Bonjour,

Avec autant de messages à votre compteur, je vous fais un petit rappel des règles (cf. bandeau rouge).
  1. "Problème" et "macro" sont inutiles dans un titre, toutes les questions ici traitent forcément de problème de macro.
  2. Veuillez fournir systématiquement un document intégrant la macro afin de faciliter les réponses.
  3. Ajoutez des copies écran si un message d'erreur se produit afin d'illustrer la problématique décrite.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par jeanmi2403 »

Bonjour,
Recopier et bricoler le code fourni par l'enregistreur de macros, à grands coups de Dispatcher n'est pas une bonne méthode.
Fournissez un fichier en expliquant ce que vous cherchez à obtenir.
Cordialement,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
clduick
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 10 oct. 2007 12:36
Localisation : Paris

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par clduick »

Bonjour,
Désolé pour l'intitulé du sujet.
Et en plus j'ai oublié de mettre la PJ. :marto:

Voici un exemple, de bon fonctionnement avec l’éditeur, mais ne fonctionnement pas avec le "Bouton". La suppression des données dans la plage D4:D36 est nécessaire dans la macro.

Merci pour votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1 sous W10 Obligation de Version
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25169
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par Dude »

clduick a écrit :La suppression des données dans la plage D4:D36 est nécessaire dans la macro.

Code : Tout sélectionner

Sub EffacePlage
	oDoc = ThisComponent
	oFeuille = oDoc.Sheets.getByName("Résultat Simple")
	oPlage = oFeuille.getCellRangeByName("D4:D36")
	oPlage.ClearContents(7) 'voir le Wiki pour le nombre à passer en paramètre
End Sub
https://wiki.openoffice.org/wiki/FR/Doc ... _Documents
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 626
Inscription : 09 août 2017 22:15

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par Jurassic Pork »

hello,
voici une solution sans utiliser le dispatcher :

Code : Tout sélectionner

Sub CopyPasteWithTranspose
Dim data,fa,Doc, Sheets, SheetCopy, SheetPaste, CopyAddress, PasteAddress
Doc = ThisComponent
Sheets = Doc.Sheets()
SheetCopy = Sheets.getByName("Données")
SheetPaste = Sheets.getByName("Résultat Simple")
CopyRange = SheetCopy.getCellRangeByName("C21:AI21")
PasteRange = SheetPaste.getCellRangeByName("D4:D36")
PasteRange.ClearContents(7)
fa = createUnoService("com.sun.star.sheet.FunctionAccess")  
data = fa.callFunction("TRANSPOSE", Array(CopyRange))
PasteRange.DataArray = data
End Sub

Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
clduick
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 10 oct. 2007 12:36
Localisation : Paris

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par clduick »

Un grand merci à vous.
Si je comprends bien l'utilisation de "dispatcher" en trop grand nombre fait perdre les pédales de la macro ?
J'utilise rarement les macro, mais je m’aperçois que si nous voulons une macro solide avec plusieurs args il faut passer à la programmation.
Encore un grand merci de votre aide et votre rapidité.
J'ai pas encore fini avec ce fichier, je vais m’efforcer de ne pas utiliser l’enregistrement de macro et les modifier (le plus simple pour mon niveau). Mais je pense que j’aurais encore besoin d’aide.
Encore un grand merci de votre aide et votre rapidité.
:super:
LibreOffice 7.1 sous W10 Obligation de Version
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9251
Inscription : 28 août 2010 08:45

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par micmac »

Pour baliser un problème résolu il est d'usage
  1. d'ajouter manuellement au début du titre de votre premier message la balise [Résolu] (avec un R majuscule et sans oublier le e accentué, le tout entre crochets [ ])
  2. et de cocher l'icône Image
Image
Adaptez la longueur du titre à 60 caractères maximum, balises comprises.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par jeanmi2403 »

Bonjour,
clduick a écrit :J'ai pas encore fini avec ce fichier, je vais m’efforcer de ne pas utiliser l’enregistrement de macro et les modifier (le plus simple pour mon niveau). Mais je pense que j’aurais encore besoin d’aide.
Il suffit de préciser vos besoins, et vous trouverez ici de l'aide pour construire les briques de votre programme...
Bonne soirée
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
clduick
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 10 oct. 2007 12:36
Localisation : Paris

Re: [Calc] "Value Out of scope" à l'assignation du Bouton

Message par clduick »

micmac a écrit :Pour baliser un problème résolu il est d'usage
  1. d'ajouter manuellement au début du titre de votre premier message la balise [Résolu] (avec un R majuscule et sans oublier le e accentué, le tout entre crochets [ ])
  2. et de cocher l'icône Image
Image
Adaptez la longueur du titre à 60 caractères maximum, balises comprises.

Oui je sais, merci.
LibreOffice 7.1 sous W10 Obligation de Version