conversion formules en VBA

WocaM

XLDnaute Junior
Bonjour

J'ai une formule qui devient assez compliquer à gérer directement dans excel et voudrais la transformer
en VBA

jusqu'à maintenant je gérais des sommes avec un seul critère à 2 états possible (23 ou 58)
or je dois faire évoluer mon fichier pour passer à 2 critères
  • le premier à 2 états (OUI ou NON)
  • le deuxieme à 4 états (23 ou 58 ou 4 ou 10)

voila la formules que j'utilisais jusqu'a présent
Code:
=SI($M9=58;SOMME.SI('Prix Marché'!$B$17:$B$18;$P9;'Prix Marché'!$C$17:$C$18);SOMME.SI('Prix Marché'!$B$4:$B$15;$P9;'Prix Marché'!$C$4:$C$15))

la case en M9 sur la feuille principal était mon premier critére, il doit devenir le deuxieme critère
la case en R9 doit devenir le premier critère

cette formule se répetais dans XX cellules jusqu'en bas de mon tableau

si vous avez une solution à me proposer merci d'avance

cordialement
WocaM
 

WocaM

XLDnaute Junior
Re : conversion formules en VBA

Bonjour JP14

Je ne vois pas trop ce que tu veux que je fasse avec les fonctions personnalisées

En quoi ma formule serais moins compliqué à gérer?

Moi je voyais plus un truc en VBA avec des boucles en If Else, ElseIf, For...

cordialement
WocaM
 

tototiti2008

XLDnaute Barbatruc
Re : conversion formules en VBA

Bonjour WocaM, Bonjour jp,

Moi je voyais plus un truc en VBA avec des boucles en If Else, ElseIf, For...

Oui mais si tu le fais dans une fonction personnalisée, elle se mettra à jour si les valeurs changent (comme toutes les fonctions Excel)

Donc il faudra bien faire des if, elseif, else... mais dans une fonction personnalisée
Tu auras 2 X 4 cas donc 8 cas à gérer
Tu n'explique pas ce que doit renvoyer ta fonction dans chacun de ces cas, comment pourrait-on t'aider à l'écrire ?
 

WocaM

XLDnaute Junior
Re : conversion formules en VBA

Bonjour

ma fonction sert à copier une valeur dans un tableau situé dans un autre onglet "prix marché" dans ma feuille principal

Quand je disais que je ne voyait pas trop comment faire avec les fonctions perso

Ecrire en vba les conditions (If....etc) ne me poserais à priori pas de soucis
c'est juste que j'ai du mal voir la différence à enchaîner des fonction Si (classique) directement

cordialement
WocaM
 

WocaM

XLDnaute Junior
Re : conversion formules en VBA

Re

la formule actuelle que j'utilise pour seulement 2 critères est assez longue mais si je passe à 2*4 critères directement dans excel
ça deviendra illisible et presque incompréhensible

voilà pourquoi je voulais savoir si il n'y avait pas une solution plus simple ou plus clair par VBA

Cordialement
 

jp14

XLDnaute Barbatruc
Re : conversion formules en VBA

Bonjour WocaM
Bonjour tototiti2008


Lorsque l'on a une formule trop complexe pour les formules de base d'excel, on ecrit en VBA une fonction qui comporte comme argument : des cellules, des valeurs,.....

Function MaFonction(Prix_Marche As Range,.......... )
' programme en VBA
'..........................

MaFonction = résultat calcul
End Function

Dans la cellule qui appelle cette fonction on aura la valeur calculée.

JP
 

jp14

XLDnaute Barbatruc
Re : conversion formules en VBA

Bonjour

Pour trouver le code, il faut utiliser l'aide VBA
"Liste des fonctions de feuille de calcul disponibles dans Visual Basic"
Par contre tout le texte ayant été traduit on ne trouve toujours pas le vocabulaire correspondant au Basic qui est en langue anglaise.
Pour connaitre le code il suffit d'enregistrer une macro : Somme.si donne SUMIF

JP
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 197
Messages
2 086 104
Membres
103 118
dernier inscrit
mlaf4032