|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
Bonjour,
J'ai un problème avec la macro %sysfunc, elle me retourne un nombre inexact qui vaut tjrs 0, merci bien de m'aider à trouver ou se trouve le problème. Code :
code_ind | formule Ind0 | etape1.Ind0+etape0.Ind1 Ind1 | etape1.Ind3-etape0.Ind3 Ind2 | etape1.Ind1*etape1.Ind5 Ind3 | etape0.Ind2/etape0.Ind4 Ind5 | etape0.Ind5 |
||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Jai l'impression de voir déjà une petite erreur:
N'oublie pas que tu es dans une macro: donc: A vérifier... |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 147 ![]() |
Bonjour,
as tu essaye sans le mode macro et est ce que ca marche? Tu cherches a compter quoi? Tu as essaye avec un quote: |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() |
Bonjour,
Tu veux faire quoi? Salah
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#5 | ||||
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
Bonjour,
Merci d'abord pour vos réponses, mais je les ai déjà essayées, ca marche pas. voilà mon programme ce que doit faire : par exemple pour la formule "etape0.Ind0+etape0.Ind1-etape0.Ind2", il doit remplacer les opérateurs "+-*/" par des "/" j'obtiens comme résultat "etape0.Ind0/etape0.Ind1/etape0.Ind2" puis je veux obtenir le nombre de "/" pour l'utiliser dans une boucle , quand j'utilise : Code :
Code :
|
||||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 147 ![]() |
j'essaierai un
|
|
|
00
|
|
|
#7 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
Hello;
je n'ai pas trop compris ce que tu veux faire ; mais comme tu teste des macro variables , le DATA "_null"(data _null_), n'a aucun interêt ici; dans le code macro , il faut utiliser des %sysfunc pour toutes les fonctions. Utilises le COUNTC et non pas le count , et entoure ton / de quôtes. exemple Code :
|
||
|
|
00
|
|
|
#8 | ||||
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
J'ai déjà utilisé %sysevalf mais elle retrourne tjrs 0 (un nombre inexact)
Code :
Code :
|
||||
|
|
00
|
|
|
#9 | ||||
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() |
ajoute l'option
Avant d'exécuter ton code, comme ça tu aura le code qui va être exécuté. Cela facilitera la recherche de l'erreur.
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#11 | |||||||
|
Membre Expert
![]() ![]() |
Citation:
Code :
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|||||||
|
|
00
|
|
|
#12 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
Ah oui si c'est sa
, peut être mieux avec les Expressions Régulières: Code :
|
||
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
Merci d'abors pour les réponses, mais mon problème c'est comment utiliser le compteur de "/" (aprés remplacement) dans la boucle %do
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() |
Est ce que le code présenter répond à ton premier besoin?
Si oui tu fais quoi dans la boucle. Si on put le faire sans macro langage ça sera plus simple à lire et corriger par la suite.
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
Bjr,
Je vous explique en gros ce que je veux faire: normalement j'ai deux tables etape0(code_ind,libelle,formule) et etape1(code_ind,libelle,formule) comme suit: etape0 code_ind | formule Ind0 | 1230 Ind1 | 1000 Ind2 | 500 Ind3 | 4569 etape1 code_ind | formule Ind0 | etape0.Ind0 Ind1 | etape1.Ind2+etape0.Ind3 Ind2 | etape1.Ind0+etape1.Ind1 comme vous pouvez remarquer, les indicateurs de l'etape1 se calculent en fonction de l'etape0 comme ca peut etre en fonction des indic de l'etape0 et de l'etape1. En premier temps, je veux identifier les indicateurs de l'etape1 qui sont en fonction seulement de l'etape0 et les caluler, puis traiter les indics=f(etape0.Indi,etape1.Indj) rempler les etape1.indj par des etape0.indi et les calculer après. Pour identifier les indicateursqui sont en fonction que des indics de l'etape0, je dois décomposer la formule de l'etape1 : par exemple : etape1.Ind0=etape0.Ind0+etape0.Ind1 je la décompose : etape0.Ind0/etape0.Ind1 (remplacer l'opérateur) etape0.Ind0 (chercher le premier composant et tester si le prefixe etapei=etape0 si oui tester le deuxième composant) donc j'aurais besoin de savoir le nbre de composants dans chaque formule et l'utiliser dans une boucle |
|
|
00
|
|
|
#16 | ||
|
Membre Expert
![]() ![]() |
J'ai modifié la structure de la table.
Est ce que sous cette format c'est plus simple de traiter ton problème? Code :
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
||
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
nn ca répond pas à mon besoin, puisqu'il ne me ramène que le dernier composant de la fomrule, en fait chaque formule a un nbre variable de composants (séparés pard des opérateurs) et je dois traiter chaque composant de chaque formule à part.
|
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() ![]() |
tu as bien contrôler le nombre de ligne?
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() Conseil - Consultant en systèmes d'information Inscription : novembre 2011 Messages : 80 ![]() |
yep, mais ca marche po
|
|
|
00
|
|
|
#20 | ||
|
Membre Expert
![]() ![]() |
si j'ai bien compris tu veux comparer etape1.Ind0 avec etape0.Ind1
les comparaison sont a faire sur les éléments de la même ligne. tu peux t'inspirer de cette exemple pour résoudre ton problème. Code :
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com