Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2054 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Formule trop longue - solutions ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Formule trop longue - solutions ?

n°1749244
jipo
Kamoulox !
Posté le 20-06-2008 à 10:25:23  profilanswer
 

Salut,
 
Je rencontre un problème. J'ai du code VBA qui génère des formules. Or une des formules générées semble bien trop longue.
Apparemment la limite pour la taille des formules est 1024 octets.
Voici la fameuse formule :  


=SUMPRODUCT( N(WEEKDAY(Reg20080101,2)=C$38), N(OFFSET(Reg20080101,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080101,2)=C$38), N(OFFSET(Reg20080101,3,0)="RP" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080102,2)=C$38), N(OFFSET(Reg20080102,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080102,2)=C$38), N(OFFSET(Reg20080102,3,0)="RP" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080103,2)=C$38), N(OFFSET(Reg20080103,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080103,2)=C$38), N(OFFSET(Reg20080103,3,0)="RP" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080104,2)=C$38), N(OFFSET(Reg20080104,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080104,2)=C$38), N(OFFSET(Reg20080104,3,0)="RP" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080105,2)=C$38), N(OFFSET(Reg20080105,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080105,2)=C$38), N(OFFSET(Reg20080105,3,0)="RP" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080106,2)=C$38), N(OFFSET(Reg20080106,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080106,2)=C$38), N(OFFSET(Reg20080106,3,0)="RP" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080107,2)=C$38), N(OFFSET(Reg20080107,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080107,2)=C$38), N(OFFSET(Reg20080107,3,0)="RP" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080108,2)=C$38), N(OFFSET(Reg20080108,3,0)="R" ))
+SUMPRODUCT( N(WEEKDAY(Reg20080108,2)=C$38), N(OFFSET(Reg20080108,3,0)="RP" ))
+etc ...


 
1/ Est-il possible de créer des formules personnelles qui font appel à des sous fonctions du même type que les formules utilisées ci-dessus ? Autrement dit, puis-je remplacer SUMPRODUCT par un appel de fonction dans le corps d'une procédure que j'utiliserai comme une formule ?
 
2/ Avez-vous une idée pour résoudre mon PB sachant que je ne peux pas raccourcir les noms de plages utilisés ?


---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
mood
Publicité
Posté le 20-06-2008 à 10:25:23  profilanswer
 

n°1749388
jipo
Kamoulox !
Posté le 20-06-2008 à 15:06:30  profilanswer
 

Finalement en réfléchissant, y a-t-il moyen de réduire l'expression suivante :  


SUMPRODUCT( N(WEEKDAY(Reg20080101,2)=C$38), N(OFFSET(Reg20080101,3,0)="R" ))  
+SUMPRODUCT( N(WEEKDAY(Reg20080101,2)=C$38), N(OFFSET(Reg20080101,3,0)="RP" ))


en une expression du style :


SUMPRODUCT( N(WEEKDAY(Reg20080101,2)=C$38), N(APPARTIENT(OFFSET(Reg20080101,3,0),"R", "RP" ))  


Dans le 2ème exemple la fonction APPARTIENT n'existe pas ... mais si vous connaissez un truc pour passer du morceau de formule 1 à quelque chose du type du morceau de formule 2, ca m'intéresse.
 
Merci  ;)


Message édité par jipo le 20-06-2008 à 15:07:33

---------------
"Comme des pommes d'or sur des ciselures d'argent, Ainsi est une parole dite à propos" (Proverbes de Salomon)
n°1749666
kiki29
Posté le 21-06-2008 à 14:19:15  profilanswer
 

salut, voir aide en ligne sur la création de fonctions personnalisées, elles sont mixables avec les fonctions intégrées d'Excel, pour les fonctions personnalisées utiliser éventuellement Application.Volatile=True ( voir aide en ligne )


Message édité par kiki29 le 21-06-2008 à 14:23:57

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Formule trop longue - solutions ?

 

Sujets relatifs
Formule sous open offfice baseBouton pour afficher une cellule qui contient une formule
Copier Formule sur la derniere ligne ajoutee[Trouve] Formule auto : affectation valeur cellule en "dur"
problème formule excel : valeur d'une cellule précise dans zone nommeeformule dans une requqte
[ASP] - Stopper une exécution si trop longueprobléme affichage d'une longue chaine de caractére
Formule vba avec plage de taille variableIE7 attraper l'erreur "URL trop longue"
Plus de sujets relatifs à : Formule trop longue - solutions ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR