[Résolu][Calc] Fonction GoTo, Else, Then, etc..

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 !
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

[Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

Bonjour à tous. Venant du forum tableur Calc je pose ma question ici. Je voudrai faire une programmation sur une feuille de Calc. C'est à dire : Dans une cellule (A4) j'ai un nombre (100), dans une autre cellule (B9) j'écris un Test du genre "=SI(A4=100). Et suivant le résultat de ce test, si c'est vrai je vais (par une fonction ou macro genre GoTO) dans une cellule faire un calcul et, si c'est faux, je vais dans une autre cellule faire un autre calcul. On me dit qu'il n'existe pas de fonction GoTo dans Calc et qu'il faut que je passe par une Macro. Seulement je ne sais pas faire une Macro. Quelqu'un peut-il m'aider à créer une Macro de ce genre ? Avec force détails, SVP, car, à 78 ans, je ne maitrise pas encore très bien LO que j'ai en version 24.8.1 et que je suis sur Windows 11. :marto:
Dernière modification par Oukcha le 20 nov. 2024 05:01, modifié 1 fois.
Raison : Balisage dans le premier message
Libre Office 24.8.1 sur Windows 11
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1756
Inscription : 15 déc. 2010 08:33

Re: [Calc] Fonction GoTo, Else, Then, etc..

Message par yclik »

Bonjour
Lanber66 a écrit : 19 nov. 2024 13:46 Et suivant le résultat de ce test, si c'est vrai je vais (par une fonction ou macro genre GoTO) dans une cellule faire un calcul
Quel est ce calcul ?
Lanber66 a écrit : 19 nov. 2024 13:46 si c'est faux, je vais dans une autre cellule faire un autre calcul.
Quel est cet autre calcul ?
Cela pourrait se faire dans une formule exemple SI(A4=100; ce calcul ; cet autre calcul )
C'est à dire
Si A4 =100
Alors ce calcul
Sinon cet autre calcul

Il faudrait un exemple de classeur plus précis pour montrer ces deux calculs
OpenOffice 4.1.14 sous Windows 10
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

Re: [Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

Bonjour yclik. Non, peut importe les calculs ! Ce que je veux c'est de partir de cette cellule (de résultat) et aller dans une autre cellule (x) ou une autre (y) suivant le résultat du test. Ce que je veux faire c'est de la programmation (en Basic, je crois) avec des GoTo, If, Then et Else afin d'aller à un endroit de la feuille de calcul ou à un autre suivant les résultats d'un test. Ne pas ce focaliser sur les calculs à faire suivant les résultats des tests. J'ai déjà fait de la programmation comme cela sur une calculette CASIO Graph 100 mais je veux pouvoir le réaliser sur une feuille Calc. Alors, pour être encore plus précis : j'ai crée un programme sur CASIO Graph 100 pour calculer les Jours Julien depuis la date d'origine (le 1er Janvier -4712 jusqu'à aujourd'hui et même jusqu'en 2500 !!). Avec le logiciel de l'IMCCE (Astronomie : éphémérides, bureau des longitudes, etc...) on a ces calculs tout fait ! Mais j'ai voulu le faire de moi-même. Alors que leur logiciel ne tient pas compte des possibilités de demander des Jours Julien pour des dates incorrectes (genre 30 Février ou 45 Janvier) le mien trouve ces dates incongrues et me sort un résultat adéquat (genre : cette date n'existe pas ou encore il me donne le Jour Julien de la date correspondant au 30 Février qui est le 1 Mars ou du 45 Janvier qui est le 15 Février). Donc, mon programme fonctionne à merveille !! Mais sur ma CASIO ! Ce que je veux faire c'est le faire travailler sur une feuille Calc. Capito ? :super: J'espère que je ne suis pas trop long !!
Libre Office 24.8.1 sur Windows 11
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1756
Inscription : 15 déc. 2010 08:33

Re: [Calc] Fonction GoTo, Else, Then, etc..

Message par yclik »

Bonjour
une proposition dans ce classeur
selection_cellule.ods
Le déclenchement de la macro se fait par une formule en D6

Code : Tout sélectionner

=TESTSELECTION(C6)
qui appelle une Function

Code : Tout sélectionner

function TestSelection (arg1 as double)
If arg1 = 100 then call maSelectionB4 else maSelectionB10
end Function
et pour aller sur les cellules

Code : Tout sélectionner

Sub maSelectionB4
dim oDoc As Object
Dim oSheets as object
Dim oSheet As Object
Dim oCell as Object
	oDoc = ThisComponent
	oSheet = oDoc.Sheets.getByName("Feuille1")
	
		oCell = oSheet.getCellRangeByName("B4")
		oDoc.CurrentController.select(oCell)
	
	
end sub

Sub maSelectionB10
dim oDoc As Object
Dim oSheets as object
Dim oSheet As Object
Dim oCell as Object
	oDoc = ThisComponent
	oSheet = oDoc.Sheets.getByName("Feuille1")
	
		oCell = oSheet.getCellRangeByName("B10")
		oDoc.CurrentController.select(oCell)
			
end sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.14 sous Windows 10
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

[Résolu]Re: [Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

Bon bah tant pis Merci à yclik et à tous les autres qui se sont défoncés pour moi mais j'abandonne !! Je suis déjà suffisamment content d'avoir réalisé mon programme sur ma CASIO mais poursuivre sur une feuille Calc me semble un peu beaucoup trop compliqué pour moi !! Vous êtes tous supers sympas. Ah, j'espère avoir clos le sujet en mettant les balises ?
Libre Office 24.8.1 sur Windows 11
Avatar de l’utilisateur
OOo - Ekel
SuppOOrter
SuppOOrter
Messages : 1298
Inscription : 10 nov. 2006 15:04
Localisation : F-Oise

Re: [Calc] Fonction GoTo, Else, Then, etc..

Message par OOo - Ekel »

Bonsoir,

Cela ne va pas faire avancer la problématique, mais serait-il possible d'écrire de manière plus lisible ?

Proposer ces pavés de texte... sans aération... n'est pas très convivial à lire.

Cordialement.
Ekel

KUbuntu Noble Numbat (24.04) : LibreOffice 24.8.0.3 Officielle
AMD Ryzen 5 5600G
AMD Radeon RX 6650 XT
22" + 22"
16 Go
____________________
Pour les règles du jeu.
Pour marquer Résolu.
Pour joindre un fichier.
Jeff
GourOOu
GourOOu
Messages : 9814
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Jeff »

Bonjour,
Lanber66 a écrit : 19 nov. 2024 15:14 calculer les Jours Julien depuis la date d'origine [...] jusqu'à aujourd'hui
C'est peut-être cette question que tu aurais dû poser... :?:

Si tel est le cas, sur quoi se baser ?

J'ai trouvé cette page sur Wikipedia :
https://fr.m.wikipedia.org/wiki/Formule ... A9gorienne

Si c'est cela que tu cherches, ça me semble adaptable hors macro
(Donc poster un nouveau sujet en section Tableur avec le titre que je te suggère)

A +
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

Je réponds à Jeff. Non, non, ce n'est pas ça que je cherche ! Ça, je l'ai déjà depuis longtemps ! Je l'ai programmé sur ma CASIO Graph 100 il y a près de 20 ans, quand je travaillais encore à l'Observatoire Astronomique du Pic du Midi ! J'ai même construit l'organigramme de ce programme sur une feuille Calc ! Et même, toujours sur une feuille Calc, j'ai rentré ligne par ligne, colonne par colonne, feuille par feuille, tous les Jours Julien, du 1er Janvier -4712 jusqu'au 31 Décembre 2500 !! C'est pourquoi, je peux affirmer que le logiciel de l'IMCCE n'est pas au top et qu'il ne répond pas toujours idéalement à une date (inhabituelle, genre 32 Février 1871 par exemple) alors que mon programme prévoit TOUS les cas de dates normales et anormales !! Bonsoir à toutes et tous. Non, ce que je voulais faire (mais ça me semble trop compliqué) c'était de faire ce même programme que j'ai dans ma CASIO, le faire sur une feuille Calc. Mais bon, tant pis, ça me semble trop compliqué et donc je renonce ! Merci quand même à tous.
Libre Office 24.8.1 sur Windows 11
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1478
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par jeanmi2403 »

Bonsoir,
Je ne comprends pas bien ce que veut dire "je vais dans une autre cellule" ?
Il faudrait définir ce qui relève du programme, et ce qui relève de l'affichage (qui peut être réalisé avec calc)
Comme toujours en programmation :
  • Quelles sont les entrées ?
  • Quel traitement leur appliquer
  • Quels sont les résultats et les sorties (affichages)
Éventuellement tu peux nous envoyer l'organigramme de ton programme Casio.
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

Bonjour jeanmi2403. Comme demandé, voici mon organigramme qui organise les commandes de mon programme qui calcule les JJ depuis l'origine (1er Janvier -4712 jusqu'en l'an 2500 !! Attention !!! Hein !!! C'est MON organigramme !! C'est MON programme !!! Heu....j'y tiens !! Je ne l'ai pas déposé !!! :twisted:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 24.8.1 sur Windows 11
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

Donc, si vous suivez bien mon organigramme, vous devriez bien comprendre ma question principale qui est : comment, sur une feuille de tableur Calc, et dans une cellule (B10 par exemple), faire un test d'une valeur contenue dans une cellule (E14 par exemple) et suivant le résultat de ce test,(si VRAI), aller dans une cellule (A12 par exemple) et si FAUX aller dans une autre cellule (C5 par exemple) où, dans chacune de ces cellule, peut exister un autre test, etc, etc... alors par une fonction GoTo, Then, Else qui n'existe pas dans LibO ou bien une Macro. Le problème, pour moi, c'est que je ne sais pas faire des Macros !! Encore une fois mille merci à celui ou celle qui me montrera comment réaliser ce truc !
Libre Office 24.8.1 sur Windows 11
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

Au fait, je revois ce que yclik écrit plus haut (sous le lien : selection_cellule.ods). Je pense que toutes les lignes d'Instructions qui démarrent à :"TOUT SELECTIONNER" font parti d'une Macro ?! Non ? Ce qui veut dire que, à chaque "GoTo" que j'ai besoin dans mon programme, il faudra que j'écrive autant de Macro aussi longue ? Non, c'est pas possible :marto: . Mon programme va se rallonger de 3 kilomètres !!!
Les programmeurs qui ont construit LibO ne pourraient-ils pas plutôt crée cette fonction supplémentaire dans le listing des fonctions en y incluant la structure complète (GoTo, Then, Else, YfThen, etc...), tout le monde aurait à y gagner, non ?
Libre Office 24.8.1 sur Windows 11
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4132
Inscription : 06 oct. 2008 08:03

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Oukcha »

Bonjour,
Lanber66 a écrit : 21 nov. 2024 09:52 je revois ce que yclik écrit plus haut
Soit ce fil de discussion est résolu (comme l'atteste a priori le balisage actuel), soit :
.
Jeff a écrit : 20 nov. 2024 13:59 poster un nouveau sujet
.
Dans tous les cas, merci de ne pas faire dériver ce fil de discussion.

Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1478
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par jeanmi2403 »

Bonjour,
Lamber66 a écrit : Le problème, pour moi, c'est que je ne sais pas faire des Macros
C'est un langage de programmation (Basic) qui doit ressembler à celui de votre Casio avec IF THEN ELSE, GOTo (bien que GOTO ne soit pas recommandé en programmation structurée...)
Donc, si vous suivez bien mon organigramme, vous devriez bien comprendre
J'ai bien compris ce que vous souhaitez faire, mais votre vision des choses est faussée par la manière dont vous l'envisagez, qui n'est pas le principe de fonctionnement du tableur.
Le tableur n'est pas un langage de programmation. C' est un ensemble de cellules contenant des données ou des formules.
Les programmeurs qui ont construit LibO ne pourraient-ils pas plutôt crée cette fonction supplémentaire dans le listing des fonctions en y incluant la structure complète (GoTo, Then, Else, YfThen, etc...), tout le monde aurait à y gagner, non ?
Ouh la la ! Qui sommes nous pour dire aux concepteurs d'une suite bureautique comment elle devrait fonctionner, selon vous ?
Il y a bien un langage de programmation dans Libo (de même que dans la suite Office de XXCrosoft) seulement, il n'est pas dédié qu'au tableur.
Il peut travailler sur des éléments de Calc, Writer, Base...
Avec les programmes écrits dans ce langage, vous pouvez examiner le contenu d'une cellule, et en fonction de son contenu, examiner d'autres cellules et prendre des décisions avec les éléments de structuration IF THEN que vous réclamez et qui y sont bien présents. Et même créer vos propres fonctions.
A lire : Débuter en OooBasic d'Andrew Pitonyak.
Je me pencherai sur votre organigramme ce week end.
En attendant vous pouvez réfléchir à la manière de rentrer les données et d'afficher les résultats dans Calc, en tenant compte de l'organisation présentée dans mon message précédent.
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Lanber66
NéOOphyte
NéOOphyte
Messages : 13
Inscription : 18 nov. 2024 12:48

Re: [Résolu][Calc] Fonction GoTo, Else, Then, etc..

Message par Lanber66 »

OK ! J'ai compris ! J'arrête tout !! Amicalement votre !! Simplement, si quelqu'un s'intéresse de près à mon programme et/ou à mon organigramme j'autorise qu'on lui passe mon adresse mail. Merci.
Libre Office 24.8.1 sur Windows 11