Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

formule dans vba bis bis

N

nanor

Guest
Salut le forum,

Petite question avant de partir en weekend...

Je joins un fichier pour vous expliquer mon problème.
J'ai essayé d'être le plus précis possible.
Si vous etes bon en VBA, ca ne devrait pas etre un gros probleme...


Merci d'avance,

nanor
 

Pièces jointes

  • calcul.xls
    31.5 KB · Affichages: 58
  • calcul.xls
    31.5 KB · Affichages: 63
  • calcul.xls
    31.5 KB · Affichages: 64
T

ThierryR

Guest
Bonjour

Cela m'interesserai d'avoir ton fichier pour t'aider si je peux. Le hic est que je n'arrive plus à télécharger ton fichier ou quelqu'il soit sur ce forum.

Si quelqu'un a une réponse... elle serait la bienvenue

Thierry R
 
@

@+Thierry

Guest
=> Mini Démo tableau indexé séquentiellement pour formule variable

Salut ThierryR et Nanor

Pour les problèmes de téléchargement de fichiers tu n'es pas le seul Thierry...

Sur le fil Re: Fichiers joints ZIP (voir les derniers posts de Ti ou de Vériland)

Pour ton tableau Nanor, je t'ai fait un truc un peu spécial... J'ai mis en pratique une variable un mini tableau indexé séquentiellement pour avoir une table... C'est juste un tableau en une seule colonne et sans tri, ni épuration de doublons. Mais c'est un moyen de montrer et découvrir comment construire ce genre de truc...

Pour le reste j'ai fait un Select Case comme tu avis commencé... Mais je pense que l'on pourrait faire autrement, surtout si tes "REP 1, 2, 3" etc devait changer souvent ?

Pour ta Liste de Validation ne la cherche pas je l'ai mise en Feuil2 en nommant la plage... Ce qui permet de travailler sur un tableau "propre". Théoriquement tu n'as pas de limite vers le bas.

Seule contrainte, la macro évènementielle ne s'active que sur changement de la colonne "B", donc il faut d'abord mettre à jour le montant de la colonne D... mais bon on peut aussi arranger cela... si nécessaire... faut voir !!!

Bon Vendredi Soir et Bon Week End à Toute la fine équipe de XLD !!!

@+Thierry
 

Pièces jointes

  • Table-Demo1.zip
    13.5 KB · Affichages: 21
N

nanor

Guest
bonsoir Thierry et Didier, bonsoir le forum,

Thierry, merci pour ton aide, ca m'a donné plusieurs nouvelles idées intéressantes.
Cependant ca ne répond pas exactement à mon problème initial.
Mon problème c'est que j'ai une suite de clés qui sont numérotées (REP1, REP2, REP3,...) et j'aimerais me servir du chiffre (le dernier caractère de la clé (1, 2, 3,...) et l'intégrer à ma formule VBA.
Ca m'éviterait ainsi de traiter au cas par cas dans mon code vba (case REP1, case REP2, case REP3,...).
Ainsi le code pourrait etre quelque chose du genre: "case REP(x)"

Je sais pas si c'est faisable.

En tout cas, merci du temps que tu m'as consacré.

Bon weekend,

nanor
 
@

@+Thierry

Guest
Re salut Nanor

J'ai l'impression que l'on parle d'un éléphant qui accouche d'une souri !

Première question... d'où sortent tes "clés" (Rep1, Rep2, etc ???)

SEconde... "Mensuel" ??? il sort d'où ? On peut partiquement tout faire en VBA, mais faut-il encore savoir expliquer ce que l'on veut faire... de plus il faut être précis..... c'est REP 1 (comme dans ton fichier), ou c'est REP1 comme dans ton post ?

Ensuite le dernier caractère.... oui si on va de 0 à 9......... et si il n'y a pas de 10,11 ou 12... et "Mensuel" on en parle pas.... Donc le "Cependant ca ne répond pas exactement à mon problème initial"...... je n'ai fait que répondre en fonction des données que tu avais posées dans ton fichier... Ton problème qu'il soit initial ou pas, n'est pas assez clairement retranscrit...

Te faire un Right(VarRep, 2) et le récupérer en integer c'est réalisable.... mais sur le "L" de mensuel... ou sur un Rep11 ou un Rep 11 ce ne sera pas le même résultat...

la balle est dans ton camps !

bon weel end again
@+Thierry
 
N

nanor

Guest
Salut Thierry,

Excuse-moi de m'être mal expliqué mais t'inquiète pas, tu n'as pas perdu ton temps, je vais utiliser ta fonction "ActiveCell.Offset", ca sera beaucoup + rapide pour le chargement.
Par contre il faut que j'étudie en détail ce vba parce que c'est assez compliqué pour moi....je débute....

Sinon tu as bien compris pour les "REP". Il s'agit bien de ceux qui sont dans le fichier, avec un espace ("REP 1", "REP 2",...).
J'aimerais bien pouvoir les traiter sur une seule ligne et je pensais qu'il existait une syntaxe permettant de faire :

Case "REP (x)"
Range("F" & ligne).Formula = "=RC[-2]/ (x)"

Par contre le " Right(VarRep, 2) " ne peut pas fonctionner au global car j'ai effectivement d'autres clés comme MENSUEL, il faudrait l'appliquer uniquement aux REP (x).

Je sais pas si je suis bien clair dans mon explication.
Si tu as besoin d'autres détails, hésite surtout pas.

A+ et merci pour ton temps!!!
nanor
 
@

@+Thierry

Guest
salut Nanor

tu es un petit marrant toi....

"je pensais qu'il existait une syntaxe permettant de faire "...........


"car j'ai effectivement d'autres clés comme MENSUEL......"


lesquelles ????????????????????????????????????????????

on ne peut rien faire sur une base comme çà !!... J'en sais rien fait toi un tableau avec dans un colonne tes Clefs et dans l'autre tes Diviseurs !!!

VBA peut pas les imaginer avec un Case "REP (x)" (X-File "La vérité est ailleurs !!!")

Mort de rire
@+Thierry
 
N

nanor

Guest
Salut Thierry, Salut le forum,

Ci-joint, comme prévu le tableau dont je t'ai parlé avec toutes les clefs dont j'ai besoin. Désolé pour le délai mais je bosse la semaine et j'ai cours le samedi et dimanche, il me reste donc assez peu de temps...

J'ai recommencé tout mon tableau en traitant tous les cas. J'ai déjà réussi à faire quelques améliorations.
Tu verras qu'il y a 2 choses qui interviennent dans mes calculs: le mois sélectionné et la clé de répartition.
Pour info: je mets mes formules dans une macro au lieu de les mettre dans la Feuil1 car les formules doivent agir sur plusieurs feuilles (1 feuille par service).

Par rapport au sujet de départ, j'ai 2 questions:
-> Penses-tu qu'il y a un moyen de traiter les formules différement afin d'économiser quelques précieuses lignes de code?
-> Penses-tu que je peux utiliser la formule "ActiveCell.Offset" qui permet (semble-t-il) de mettre directement le résultat de la formule dans la cellule au lieu de la formule elle-même?

Merci pour ton aide précieuse,

nanor
 

Pièces jointes

  • controlebudgetaire.zip
    35.1 KB · Affichages: 41

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…