[Résolu][Calc] Boîte de dialogue avec le texte d'une cellule

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 !
Lolo Söze
NOOuvel adepte
NOOuvel adepte
Messages : 18
Inscription : 20 juil. 2018 19:22

[Résolu][Calc] Boîte de dialogue avec le texte d'une cellule

Message par Lolo Söze »

Bonjour,

Je débute totalement en macro, et là je galère.

Je souhaiterais que dans une boîte de dialogue apparaisse le texte contenu dans une cellule.

Pour plus de précisions :
Dans le fichier ci-joint, lorsqu'on clique sur "Tirage au sort", dans la deuxième boîte de dialogue qui s'ouvre (la première ne devrait pas apparaître dans la version finale) je souhaiterais que le texte contenu dans la cellule I2 apparaisse après le texte "élève sélectionné".

Merci par avance pour votre aide !
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Lolo Söze le 23 juil. 2018 14:00, modifié 4 fois.
Un prof de maths curieux mais novice !
LibreOffice 6.1.0.3 (x64) - Windows 10
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 628
Inscription : 09 août 2017 22:15

Re: [Calc] GetCellByName, EndExecute...

Message par Jurassic Pork »

hello,
Lolo Söze a écrit : Maintenant dans les faits :Tu
1) Comment afficher dans la fenêtre "AffichageEleve" le nom de l'élève contenu dans la cellule I2 à la suite du message "Elève sélectionné :" ?
Dans ta boîte de dialogue tu rajoutes un contrôle Label (avec comme nom par exemple selEleve)
Tu modifies ta procédure comme ceci par exemple :

Code : Tout sélectionner

Sub AfficherBoiteDialogue(eleve as String)
  DialogLibraries.LoadLibrary( "Standard" )
  'AffichageEleve est le nom de la Form (clic-droit sur l'objet / propriétés / onglet Général / Nom)
  oAffichageEleve = CreateUnoDialog( DialogLibraries.Standard.AffichageEleve )
  'Attribue un titre dans la fenêtre
  oAffichageEleve.Title = "Résultat du tirage au sort"
  'Affiche le nom de l'élève sélectionné
  oAffichageEleve.getControl("SelEleve").Text = eleve 
  'Modifie la couleur de fond de la boîte de dialogue
  oAffichageEleve.Model.BackgroundColor = RGB(200,200,200)
  'Redéfinit les dimensions de la boîte de dialogue 
  'oDialog1.Model.Height = 200 'Hauteur
  'oDialog1.Model.Width =200 'Largeur
  'Redéfinit les position de la boîte de dialogue à l'écran
  oAffichageEleve.Model.PositionX = 300 'Position horizontale
  oAffichageEleve.Model.PositionY = 100 'Position verticale
  'Affiche la boîte de dialogue
  oAffichageEleve.Execute()
End Sub
que tu appelles comme ceci (au lieu du print) :

Code : Tout sélectionner

AfficherBoiteDialogue(oDoc.Sheets("Feuille1").GetCellRangeByName("I2").String)
test-hasard élèveCalc-1.png
Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
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
Lolo Söze
NOOuvel adepte
NOOuvel adepte
Messages : 18
Inscription : 20 juil. 2018 19:22

Re: [Calc] GetCellByName, EndExecute...

Message par Lolo Söze »

Jurassic Pork a écrit :hello,
Dans ta boîte de dialogue tu rajoutes un contrôle Label (avec comme nom par exemple selEleve)
Tu modifies ta procédure comme ceci par exemple
Merci beaucoup pour ces conseils. Par contre ça ne marche toujours pas. J'ai bien copié-collé ton code pour le sub "AfficherBoiteDialogue", et j'ai également modifié la ligne qui l'appelle, mais il me met le message d'erreur suivant:
Capture.JPG
Je me demande si ce n'est pas parce qu'on n'utilise SelEleve que dans cette ligne, du coup il ne faudrait pas le déclarer avant ou quelque chose dans ce style?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Un prof de maths curieux mais novice !
LibreOffice 6.1.0.3 (x64) - 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] Texte d'une cellule apparaisse dans boîte de dial

Message par Dude »

Lolo Söze a écrit :il ne faudrait pas le déclarer avant ou quelque chose dans ce style?
La réponse est dans ta question et l'erreur facile à comprendre : le champ selEleve n'existe pas.
Si j'ouvre ton dialogue dans l'EDI, je n'y vois aucun contrôle de ce nom :
no_problemo.png
Juste un champ étiquette et deux boutons.
Ajoute donc le contrôle correspondant et tout ira mieux.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Lolo Söze
NOOuvel adepte
NOOuvel adepte
Messages : 18
Inscription : 20 juil. 2018 19:22

Re: [Calc] Texte d'une cellule apparaisse dans boîte de dial

Message par Lolo Söze »

Dude a écrit :Ajoute donc le contrôle correspondant et tout ira mieux.
J'étais justement en train de tester ça! Et ça marche! Merci beaucoup!!! :D
Un prof de maths curieux mais novice !
LibreOffice 6.1.0.3 (x64) - 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] GetCellByName, EndExecute...

Message par Dude »

Lolo Söze a écrit :mais si maintenant pour poser une question il faut passer 3 jours à lire toutes les règles
3 jours ? Tu es de Marseille ?

Voilà encore un petit jeu pour toi :
Image
Lolo Söze
NOOuvel adepte
NOOuvel adepte
Messages : 18
Inscription : 20 juil. 2018 19:22

Re: [Calc] GetCellByName, EndExecute...

Message par Lolo Söze »

Dude a écrit :Tu es de Marseille ?
Non, mais j'ai essayé d'être complet pour expliquer mon/mes problèmes, de joindre mon fichier, des captures... tout en essayant de bien expliquer ce que je voulais faire, tout ça afin que les gens qui souhaiteraient m'aider aient toutes les infos. Donc bien entendu avant de poster j'ai lu les règles, qui sont totalement logiques et nécessaires. Mais après, quand tu postes un message et que pour première réponse tu as un rappel à l'ordre... je comprends que je dois respecter les règles, mais je ne code qu'à titre exceptionnel, et là du coup j'ai passé presque plus de temps à lire les règles, corriger mes messages suite à vos rappels à l'ordre, plutôt qu'à continuer à chercher par moi-même des réponses à mon problème.
Dude a écrit :Image
Boulet un jour, boulet toujours!! :? Tu remarqueras que l'intention y était!
Un prof de maths curieux mais novice !
LibreOffice 6.1.0.3 (x64) - Windows 10