[Calc]Création et utilisation de tableau.

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 !
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

[Calc]Création et utilisation de tableau.

Message par didier-56 »

Bonjour,
Je fais encore un simulateur.
Pour stoker et mélanger des données, j'ai besoin de les mettre en tableau.

Mon ordi a qqs problèmes car souvent une macro fonctionne et un autre jour elle ne fonctionne plus, puis elle fonctionne à nouveau, au "hasard" des allumage de l'ordi, donc la mise au point est assez laborieuse.
Je débute en programmation, je ne connais que des bases en basic, mais c'est encore une occasion d'apprendre.

Mon tableau :
? 1 2 3 4 5 6 7 8
A
B.....P
C
D
...H
En vrai il contiendra 64 valeurs.
J'ai besoin de le créer, de le remplir et de l'enregistrer pour réutilisation ou partage.
Ensuite je veux pouvoir récupérer mon P en demandant B3
Merci d'avance.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9255
Inscription : 28 août 2010 08:45

Re: [Calc]Création et utilisation de tableau.

Message par micmac »

Bonjour,
[b][color=#404080]didier-56[/color][/b] a écrit :une macro fonctionne et un autre jour elle ne fonctionne plus
Pour être aidé efficacement veuillez :
  1. publier le code de la macro exposant le problème
  2. joindre un classeur explicatif avec les données de départ (feuille1) et le résultat à obtenir.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Bonjour,
j'ai pas commencé car "array" ne produit pas de résultat visible. Enfin rien que j'arrive à voir.
Ma config et tout ça c'est en pied de message.
Didier
Dernière modification par didier-56 le 11 janv. 2018 09:26, modifié 1 fois.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9255
Inscription : 28 août 2010 08:45

Re: [Calc]Création et utilisation de tableau.

Message par micmac »

Bonjour,
[b][color=#404080]didier-56[/color][/b] a écrit :Ma config et tout ça c'est en pied de message.
votre signature a écrit :libreOffice 5.2.3.3 sous Windows 7 edition intégrale
mais aussi OpenOffice 3.2 oracle sous Ubuntu 10.04 LTS le Lynx Lucide
Je répète ma question (que j'ai dû effacer par erreur dans mon message précédent) : Sur laquelle des deux configuration travaillez-vous ?
J'ajoute que les deux produits, OOo et LibO sont obsolètes, et qu'il serait temps de les mettre à jour.
[b][color=#404080]didier-56[/color][/b] a écrit :j'ai pas commencé
Alors fournissez au moins un ébauche de classeur et expliquez ce que vous voulez exactement car le titre de votre sujet est par trop général. Il faudra penser à le changer pour qu'il reflète votre problème.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

J'ai commencé avec ubuntu, mais cet aprem je vais essayer winmachin pour voir si ça bogue moins.
Là c'est un programme que je veux utilisable sur linux, mais pour la mise au point winmachin devait mieux fonctionner sur ma précédente réalisation puisque je l'avais choisi.
Dernière modification par didier-56 le 13 janv. 2018 10:45, modifié 1 fois.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc]Création et utilisation de tableau.

Message par Hubert Lambert »

Bonjour,

Voici un exemple :

Code : Tout sélectionner

sub main
    nb_lignes = 9
    nb_colonnes = 9
    nom = "montableau"
    'on définit quelques valeurs
    dim donnees(nb_lignes-1)
    for n = 0 to ubound(donnees)
        donnees(n) = dimarray(nb_colonnes-1)
    next n
    for n = 1 to 8
        donnees(0)(n) = n
        donnees(n)(0) = chr(64+n)
    next n
    donnees(2)(3) = "P"
    ' on crée le tableau
    cree_tableau(nb_lignes, nb_colonnes, donnees)
end sub


sub cree_tableau(lignes, colonnes, optional donnees)
    doc = thiscomponent
    T = doc.Text
    tableau = doc.createInstance("com.sun.star.text.TextTable")
    tableau.initialize(lignes, colonnes)
    T.insertTextContent(T.End, tableau, False)
    if not ismissing(donnees) then
        tableau.setDataArray(donnees)
    end if
    print tableau.getCellByName("D3").String
end sub
Tu trouveras quantité d'exemples sur le forum : https://forum.openoffice.org/fr/forum/s ... d%5B0%5D=8.
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Merci ,
pour l'instant ça bloque sur : T = doc.Text, v° message d'erreur sur capture.
Je vais regarder tes liens, merci.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc]Création et utilisation de tableau.

Message par Hubert Lambert »

Je n'avais pas vu la balise Calc :roll: .
Du coup précise peut-être ce que tu souhaites, parce qu'une feuille de tableur est en soi un tableau.
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Déja ton truc marche sur un doc texte, je suis émerveillé. Jusqu'à maintenant, je n'utilisais que des tableurs et des fonctions.
Mon ordi est en panne, c'est la mauvaise semaine, dès que je peux je teste ton programme avec ce que j'ai commencé.
Je ne sais comment exprimer ma joie.
:mrgreen:
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3952
Inscription : 06 oct. 2008 08:03

Re: [Calc]Création et utilisation de tableau.

Message par Oukcha »

Bonjour et bienvenue sur le forum,
votre signature a écrit : mais aussi OpenOffice 3.2 oracle sous Ubuntu 10.04 LTS le Lynx Lucide
Votre signature indique que vous disposez d'une version de OpenOffice qui n'est plus maintenue.
Est-ce une erreur, un choix, un oubli, une obligation ?
Dans ce dernier cas, mentionnez-le dans votre signature par "Obligation de version".

Pour connaître la version que vous possédez : https://forum.openoffice.org/fr/forum/v ... 582#p11582

Nous vous invitons à vous mettre à jour de la dernière version : https://forum.openoffice.org/fr/forum/v ... m.php?f=38.

Votre signature doit comporter :
1- La version exacte de AOO ou LibO (AOO 4.1.2, LibO 5.1.5 par exemple) ;
2- La version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Ubuntu 14.04, MacIntel 10.11.6, par exemple).
Accès direct à votre signature pour la corriger.

Cordialement.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Bonjour grnd chef,
d'après mon installateur, je ne peux pas mettre un linux plus récent.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3952
Inscription : 06 oct. 2008 08:03

Re: [Calc]Création et utilisation de tableau.

Message par Oukcha »

Étonnant au vu de votre capture écran :
AOO412.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Je surf sur un ordi public.
Et le mien est en panne alors j'essaie ici.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc]Création et utilisation de tableau.

Message par Piaf »

Bonjour
Pas forcément tout compris.
Pour en revenir au tableur, un petit exemple.
didier-56 a écrit :En vrai il contiendra 64 valeurs.
je veux pouvoir récupérer mon P
en demandant B3

Code : Tout sélectionner

Sub main(oEv as Object)
	If oEv.CellAddress.Column = 9 And oEv.CellAddress.Row = 1 Then
		maFeuille = thisComponent.Sheets(oEv.CellAddress.Sheet)
		maZone = maFeuille.getCellRangeByName("A1:H8")
		'Renseignement des données
		For n = 0 to 7
			For i = 0 To 7
				maFeuille.getCellByPosition(n,i).String = chr(66 + i + n)
			Next i
		Next n
		'Recherche de la valeur sélectionnée dans la liste de validité
		Recherche = maZone.createSearchDescriptor
		With Recherche
			.SearchString = oEv.String
			.SearchWords = True
		End With
		trouv = maZone.findAll(Recherche)
		oRanges = thisComponent.createInstance("com.sun.star.sheet.SheetCellRanges") 
		For x = 0 To trouv.Count -1
			oRanges.addRangeAddress(trouv(x).RangeAddress, True)
		Next
		'Sélection de la ou des valeurs
		thisComponent.currentController.select(oRanges)
		'ou afffichage de la valeur de la cellule B3
		Print maFeuille.getCellRangeByName("B3").String
	End If
End Sub
La macro est exécutée à la modification du contenu de la cellule J2
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
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Bonjour Hubert lambert,
La suite

J'ai transformé tes subs en Fonctions, v° Doc en PJ, ça marche un peu mais "Doc.Text" ne convient pas car c'est un document "calc".
Et j'arrive pas à récupérer le tablô en fin de fonction.

Je vais aussi modifier un peu pour avoir nb_col différent de nb_lignes, mais ça je maîtrise.
Merci de ton aide.

Suite
Bonjour,
j'ai fais un nouvel essai qui marche un peu, j'ai encore des problèmes à résoudre, mais ya une erreur dans ma macro "Cree_grille" : Au 1er passage de la boucle "I", tout va bien, au second passage, "Melanger" est appelé sans le paramètre "ref". Alors ça plante ! V° Jeu 1
Je ne vois pas l'erreur, merci à ceux qui ont la vue plus perçante.
Saluton à todos.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par didier-56 le 18 déc. 2017 10:35, modifié 1 fois.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Bonjour,
pour créer des jeux, j'ai créé 2 macros :
l'une sort un caractère au hasard dans une liste (tirer_carte)
l'autre mélange une liste de caractères. (mélanger)

Si ça peut servir à quelqu'un.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Création et utilisation de tableau.

Message par didier-56 »

Bonjour,
pour l'instant j'ai un nombre (de 0 à 9999) à mémoriser par canton, nommé de "aa" à "zz". Ce nombre est lu par "Memoire_Lire" et modifié par "Memoire_Ecrire" dans ma variable "" qui contient "ae0000ad0000ac0000ab0000aa0722".
Mais je vais avoir besoin de plus de paramètres (début : de 000 à 999, fin : de 000 à 999, position : de 000 à 999, vitesse : de 00 à 99 ou une lettre]) et peut-être une ou 2 autres valeurs. Ce qui donne par exemple Memoire = aa00602601655ab02704700080ac04806805380
Donc il me faudrait une fonction lecture et une fonction écriture pour chaque paramètre.
Au contraire, si " Memoire" est un tablô avec des lignes "aa", "bb", etc. et des colonnes "début", "fin", etc., il serait possible de lire ou de modifier (début; aa) (fin; cc) etc. directement, ce qui me semble plus léger et plus rapide.
Pourquoi je veux stocker mes valeurs dans une variable de type "tableau" plutôt que dans les cellules de mon tableur ?
Le problème c'est que quand j'avais mis chaque valeur ou formule dans une cellule, chaque modification d'une cellule déclenchait le recalcul de toutes les valeurs et donc une seule action sur F9 déclenchait le système autant de fois qu'il y a de cantons sur la page. (C'est ce que j'ai fais au début, ça marchait très bien jusqu'à ce que je mette plusieurs "cantons" dans mon simulateur. C'est pour ça que j'ai utilisé des variables globales -que mes différentes macros peuvent se partager et s'échanger- car ça ne déclenche pas de recalculs intempestif.
Salut, didier.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille