Application pour métrologie de marbre au niveau à bulle

J

Jmr06

Compagnon
avec quelles valeurs de mesure ? Tu as une image des points que tu as rentrés ?
 
C

cudrouc

Compagnon
Bien sur chef !
J'ai rentré les mêmes valeurs que toi dans ton premier post sur ce sujet, puis j'ai cliqué sur le bouton calculer et ca m'a dessiné les tableaux bleus, puis entré les valeurs 0,0 partout !
J'ai essayé en remplaçant les . par des , puis en supprimant carrément les décimales pour n'avoir que des nombres entiers mais ça ne change rien !

Chez toi en entrant les mêmes valeurs tu as les bons résultats ?

 
Dernière édition:
J

Jmr06

Compagnon
Chez moi, je n'ai pas de point mais des virgules ....
On voit sur les résultats qu'il y a des virgules comme séparateur décimal et des point dans les cases jaunes.
Essais avec des valeurs sans décimal, pour voir
 
C

cudrouc

Compagnon
@yvon29 : Euh de rien, moi je n'ai rien fait j'ai juste inséré un graphique !! Surtout c'est @Jmr06 qui a fait un sacré beau travail !!!!!!
@Jmr06 : J'ai essayé au départ avec des virgules, puis avec des points à la place des virgules, puis sans aucun point ni virgule en supprimant les décimales, mais ça me renvoie toujours des 0 ! Ca ne fait pas ça chez toi ? J'ai maintenant la même version Libre Office que toi !

Bonne journée à tous !
 
C

cudrouc

Compagnon
Bon alors faut pas toucher au logiciel : il finit le rodage tout seul !!!!!! Yessssss !!!!!!!
 
J

Jmr06

Compagnon
Bon, je suis désolé de te décevoir : je vais faire une nouvelle version ce soir qui va afficher autre chose que des zéros...

Cela marche bien chez moi.
Est-ce que tu peux me dire si, lorsque tu utilise le tableur libre Office normalement, tu dois taper des points ou des virgules ? Dans la version que j'ai, ce sont des virgules, donc dans le code, j'ai mis une instruction de mise en forme avec virgule. Je pense que c'est cela qui ne va pas.
 
C

cudrouc

Compagnon
Je regarde ce soir car je ńy ai pas accès pendant la journée !! Je te redis ca !! Mais ca peut être une bonne piste en effet !!
 
C

cudrouc

Compagnon
Je viens de vérifier, il faut bien des virgules !
Par contre je n'ai pas de pavé numérique, donc j'ai fait avec la virgule du clavier lettres.
Une feuille vierge avec quelques calculs avec des points ca marche pas. La même feuille avec des virgules du clavier lettres marche bien.

J'avais déjà vu que la virgule du pavé numérique n'envoyait pas le même code que celle du clavier lettre....peut-être une piste là ?

Y'a t'il d'autres personnes sur mac ou windows pour essayer le fichier ?
a+
 
S

simon74

Compagnon
Moi je suis sur mac, LibreOffice 6.1.0.3 localisation Anglais (utilisation des points et non pas des virgules)

@Jmr06 - normalement, l'utilisation des virgules ou des points est decidé dans les preferences (languages - decimal separator key sur le mien), je trouve bizarre que ca ne le prends en compte dans les fonctions / macros. Tu ne fait pas des comparaisons textuels, par hasard?
 
C

cudrouc

Compagnon
Moi j'ai ca comme paramètres :

Qu'appelles-tu comparaison textuelle @simon74 ?
Je suis vraiment un gland en informatique........
 
J

Jmr06

Compagnon
Bonsoir.

Tu ne fait pas des comparaisons textuels, par hasard?
Non.
J'utilise la fonction suivante : Selection.NumberFormat = "0,0"
Je la remplace par : Selection.NumberFormat = "0.0"
Dans le fichier ci-joint.
Est-ce que cela marche mieux ?
 

Fichiers joints

  • Nivellement_v2_LO_point.ods
    41.4 KB · Affichages: 64
J

Jmr06

Compagnon
Moi, j'ai cela en paramètre. Langue de l'interface utilisateur est français. Et surtout, le paramètre "Touche séparateur de décimales" est ",". Cela doit être cela à modifier !
Edit : Ouai ... Je trouve que cela ne change rien sur les calculs ! Ne change que la saisie au clavier numérique, où la touche "point" affiche soit une virgule, soit un point, selon le paramètre.

 
Dernière édition:
C

cudrouc

Compagnon
Bonsoir.


Non.
J'utilise la fonction suivante : Selection.NumberFormat = "0,0"
Je la remplace par : Selection.NumberFormat = "0.0"
Dans le fichier ci-joint.
Est-ce que cela marche mieux ?
Etrange, ça met toujours des 0.....pourtant ca balaye bien une par une toutes les cases bleues mais ca inscrit des 0 !

Je suis vraiment désolé de t'embêter avec ça, chez toi ça marche, il doit y avoir un truc sur ma config.... par exemple : ma version ne propose pas le français en interface utilisateur.....
@simon74 : tu as testé le calcul chez toi ? Ca dit quoi ?
 
J

Jmr06

Compagnon
Bonjour.
J'ai supprimé le formatage dans le code, voir fichier ci-joint. Et en plus, essaie en appliquant le "format nombre" aux cases de résultats, comme illustré par la figure ci-après (le bouton "O.O" de la barre d'action, après sélection des cases à modifier). Tu peux aussi choisir le nombre de chiffres après la virgule, avec le deuxième et troisième boutons à droite de celui indiqué.

 

Fichiers joints

  • Nivellement_v2_LO_b.ods
    41 KB · Affichages: 68
C

cudrouc

Compagnon
Même ça ça ne marche pô !
Je ne sais plus quoi faire !!
Bizarre quand même que ca fonctionne chez toi et pas chez moi !!
Les autres vous avez essayé ?
 
T

toff

Compagnon
hello,

bon ben j'ai essayé aujourd'hui la version libre office, comme je suis en train de chatouiller mes marbres. Je me suis aussi confronté au souci des résultats nul dans les résultats. Après avoir chercher un peu je me suis rendu compte que le souci apparaît au delà de 5 ligne verticales.
Si je reprends un cas simple avec une graduation à chaque mesure, avec 5 lignes verticales cela fonctionne mais avec 6 lignes verticales, cela ne fonctionne plus.

en 5 colonnes


et avec 6 colonnes


je tente d'aller mettre mon nez dans les macros.
 
S

simon74

Compagnon
Je me suis penché un peu la dessus aussi. La 'bleme a partir de x colonnes est du au construction des adresses de colonne en mode textuel, qui bute a partir de 26 colones grace au utilisation du fonction 'CHR'.

Visual Basic etant atroce a utiliser, j'ai du laisser tomber a ce moment la.
 
S

simon74

Compagnon
Pas forcement, faut changer la notation, au lieu de A1 faut utiliser R0C0, ou la fonction ADDRESS().
 
T

toff

Compagnon
Bon j'ai modifié le fichier Openoffice pour autoriser jusqu'à la colonne 'ZZ', ça fait plus de 700 points de mesure.

Ci quelqu'un peu tester chez lui.
 

Fichiers joints

  • Nivellement_v2_LO_c.ods
    53.2 KB · Affichages: 53
S

simon74

Compagnon
Ne fonctionne pas chez moi, mais je te remercie pour l'effort.

Deja y a cette connerie de noms de fonction localisées, PRODUITMAT au lieu du MMULT. Si je modifie ca, j'ai Err:508 en F_AtA, probleme de nom,

=MMULT($F_At.A2:b@33;$F_A.B1:AG52)

le b@33 devrait etre AZ33.

Je deteste le visual basic. C'est une merde sans nom.
 
T

toff

Compagnon
Tu utilises libreoffice ou openoffice ?
Car pour tester je repris les copies d'écrans de cudrouc et en mettant les graduations, j'obtiens les mêmes tables résultats.
J'utilise libreoffice 6.4.6.2
 
S

simon74

Compagnon
libreoffice 6.1.0.3, Mac OS X, localisation en_uk.

Meme probleme sur 6.4.7.2
 
Dernière édition:
T

toff

Compagnon
je viens de revérifier, la fonction MMULT ne fonctionne pas, elle est à remplacer par PRODUITMAT.
J'ai omis de mettre en commentaire la ligne issue de la version excel dans la routine 'Produit_At_A' mais ne remets pas en cause le fonctionnent car la bonne ligne est juste dessous.

là je suis en train de regarder pour intégrer le graphique qui va bien.
 
S

simon74

Compagnon
je viens de revérifier, la fonction MMULT ne fonctionne pas, elle est à remplacer par PRODUITMAT.
Seulement si t'as la localisation francophone. Si les fonctions sont dans un document, ils sont enregistré en version canonique (MMULT, en ce cas), et traduit par le UI - en localisation francophone tu verra PRODUITMAT, en anglais ca sera MMULT, ect. Par contre, si toi tu tapes "MMULT" dans un document ca ne marchera pas, tout comme si moi je tapes "PRODUITMAT". Et la, les fonctions sont crée dans les strings textuels, et sont interpreté a run time, donc la fonctionnement se differe suivant la localisation de l'utilisateur.

«Facile», tu dites. «mets ta localisation en francais, tout marchera». Mais non, ca ne fonctionne pas comme ca. Dieu sais pourquoi, mais ca ne fonctionne pas non plus (j'avait deja mis en francophone avec cette histoire de 0,01 au lie de 0.01, qui faisait scratcher le tout. Ca prends peut-etre la localisation de la machine - qui sais?

C'est pour ca que je dis que le traduction des noms des fonctions est une connerie pur. J'ai utilisé plusiers languages qui essayait de le faire, ca ne marchait jamais et ca laisse l'utilisateur perplexe (et ca donne des problemes coté documentation aussi), la seule solution est de le supprimer et / ou supporter une seule localisation.

Et y a un bug quand on as 11 colonnes.
 
T

toff

Compagnon
En effet, visiblement le .Select n'accepte pas plus de 64 colonnes.
Si dans la routine 'PseudoInvA' je découpe la sélection comme ceci

If Mb_m > 64 Then Range(Cells(1, 1), Cells(Mb_p - 1, 64)).Select Selection.FormulaArray = txt Range(Cells(1, 65), Cells(Mb_p - 1, Mb_m)).Select Selection.FormulaArray = txt Else Range(Cells(1, 1), Cells(Mb_p - 1, Mb_m)).Select Selection.FormulaArray = txt

j'ai bien toutes les colonnes de remplies.

Mais après j'ai un autre souci que je ne pige pas, le produit matriciel dans la routine 'Produit_psdinvA_M' me sort des valeurs erronées alors que tout est bon...

Là je cale