[VB-EXCEL] Insertion variable dans formule

Fermé
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 - 24 juil. 2009 à 10:27
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 12 août 2009 à 20:21
Bonjour,
Je souhaiterai savoir s'il est possible de placer une variable dans une formule.
Je m'explique :
Je souhaite inscrire successivement une formule dans une suite de cellules via un code VB car la formule change en fonction de la case choisie dans une list box.
Pour simplifier le code je souhaite savoir si, dans la formule inscrite dans le code, on peut insérer une variable dont la valeur changera suivant la case sélectionnée dans la list box.


PS: Comment inscrire une formule matricielle et non simple formule(.FORMULA) via un code?

Merci Cordialement
A voir également:

28 réponses

jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 10:41
ben oui.. dans ton vb..

ex:

for MaVar =1 to 5
.formula="=b" & MaVar
next

enfin, la ca marche pas car y a pas de with blabla.cell(y,x).. se rapportant à .formula mais le principe est là..

Sinon, balance ton code vb ;)
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 11:27
mais FORMULA c'est pour une simple formule, pour une formule matricielle ca donne quoi?

Et mon code ? ben c'est simple c'est copier la formule que j'essaye d'obtenir dans ce sujet
http://www.commentcamarche.net/... en y remplaçant le nouveau critère par une variable dont la valeur sera définie en fonction de case sélectionnée dans l'IHM


Après tant que je n'ai pas la formule exact je ne code pas mais l'IHM et la list box sont créés mais ne t'aideront pas :D
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181 > Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019
24 juil. 2009 à 11:50
je comprend pas grand chose à ta formule.. et puis j aime bien me basé sur un fichier concret pour ce genre de probleme compliquer.. mais bon...

donc tu as un tableau avec :
En colonne A une suite de cellule avec "A","B" ou "C" ex de A1:A4 ="A", A5:A8="B", A9:A20="C"

plein de date dans la colone D
en $D$2 un nombre (de jour je porésume)

Colonne B et C on s en fou...


et tu veux savoir
problématique:

combien de date en D pour le groupe de cellule identique en colonne A (donc pour A1:A4 et A5:A8 et A9:A20) sont inférieur à AUJOURDHUI()-$D$2 donc plus vieille que les 12 dernier jour si $D$2 = 12..

c'est ca?? Sinon, dis moi ta problématique
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 12:25
Je ne peux joindre de fichier c'est pour le taff et pas le droit de partager les données personnelles :s

Bref alors On veut compter le nombre de cases vertes dans une colonnes donc les dates valides
Seulement on ne peut compter la couleur directement on doit donc compter les dates valides (selon la condition avec AUJOURD'HUI()....)
Mais on doit calculer tout particulièrement les dates en colonne D par exemple valides avec sur la même ligne en colonne A une valeur "A" par exemple et une valeur "C" par exemple en colonne C

j'en arrive au problème ou en fait la valeur que l'on veut mettre dans la condition concernant la colonne C doit être désignée via la list box (ex si sélection de case 1 dans listbox, var = 1 etc . . .)

$D$2 un nombre (de jour je porésume) <------- un nombre d'années d'où dans la formule le *365
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 12:37
Seulement on ne peut compter la couleur directement :

Ah bon?? et ca sert a quoi le vba ?? avec : Interior.ColorIndex

mais bon.. apres tu parle d une listbox.. y en a une seul ou y en a une par ligne ?
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 12:50
J'ai déjà fait une synthèse similaire sur une autre feuille du classeur qui se met à jour toute seule selon les changements de dates en feuille 1 grâce aux formules donc la je n'avais pas besoin de code.

J'ai voulu reprendre cette formule et l'allonger...l'allongerrrr
Mais la ton idée de
Interior.ColorIndex 

me plais :) mais je ne connais pas du tout l'utilisation :s
Peux tu me taper la ligne de code qui correspondrait à l'action suivante :
calcul du nombre de cellules vertes + nombre de cellules oranges dans la colonne L de la cellule L7 à la L807 s'il te plait.

Je vais préparer le pc! je finis le taff dans 2h - 2h30 et il faudrait que un fonctionnement basic opérationnel pour aider mes collegues :s merci beaucoup en tous cas :)
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 13:11
For ligne = 7 To 807
CouleurCell = Worksheets("Feuil1").Cells(ligne, 12).Interior.ColorIndex 'A=1,B=2... => L=12
If CouleurCell = 44 Then NbOrange = NbOrange + 1
If CouleurCell = 4 Then NbVert = NbVert + 1
Next

msgbox "nb total = " & NbOrange + NbVert
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 13:18
en attendant ta réponse j'ai eu le temps d'essayer ça :
Dim i As Integer
Dim nbv As Integer

nbv = 0
    Feuil1.Select
    Range("L7").Select
        For i = 7 To 907 Step 1
        If Cells(i, 12).Interior.ColorIndex = 4 Then
            nbv = nbv + 1
        End If
    Next
    Feuil5.Range("A1").Value = nbv


cela correspond? est ce faux? j'optient 0 ! oO
pendant que tu te penches dessus je vais tester ton code :)
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 13:25
J'ai essayé ta solution.
Ils me disent "erreur '9' L'indice n'appartient pas à la sélection "
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 13:32
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 13:44
J'ai essayé copier coller même le bouton dans la page 1 et rien à faire ils me remettent l'erreur : erreur d'exécution '9' L'indice n'appartient pas à la sélection . . .:'(
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 13:46
Au fait excuse moi l'erreur se trouve là :
CouleurCell = Worksheets("Feuil1").Cells(ligne, 12).Interior.ColorIndex
et bien sur sur ton document à toi ça marche j'ai testé :'(
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 13:47
mais mon exemple sans copier coller, juste en lancant le fichier, il marche chez toi non ?
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 13:47
oui lis au dessus je viens juste de rep en y ajoutant même la ligne d'erreur :'(
en tous cas merci de ne pas abandonner :)
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 13:48
et donc tu as résolu ??
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 13:48
nan je comprends pas l'erreur j'essaye de comprendre . . . en plus j'ai aps excel sur le post qui a internet alors ça fait des allés - retours
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 13:55
J'ai trouvé "Worksheets("Feuil1")." il aimait pas.

Par contre ça me compte 0 case verte alors qu'elles le sont via la mise en forme conditionnelle :
https://www.excel-pratique.com/~files/doc2/MFC1.jpg
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 14:00
hein??? comprend pas.. j ai jamais fait référence à un jpg moi..
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 14:03
mdr mais non c'est un screenshot des 3 formules avec leur code couleur que contient la mise en forme conditionnelle appliquée aux cellules
Et je te montre par ce screenshot qu'il y a pourtant bel et bien des cellules vertes dans le tableau

Au fait j'ai testé pour la couleur allant de 1 à 50 et il me trouve toujours 0 :s
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 14:15
ah ben si tu dis pas tout aussi !!!
couleur par mise en forme conditionnelle, ca change tout... et donc ca marche pas avec Interior.ColorIndex qui lui ne marche que si tu coloris la case via le ptit pinceau...

Bon, ok, je sais xl, c est pourri.. tu as l impression que c'est pareil, mais bon ;)

J me renseigne ;)
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 14:18
xD je suis désolé mais ce fichier me prend la tête à force et ton aide m'est fortement précieuse!
D'ailleurs je suis persuadé que ce que tu m'as passer pour Interior.ColorIndex me servira d'ici peu merci de pas lâcher l'affaire <3 :D
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 14:25
je lache pas.. j apprend en meme temps..

voici un ptit tuto.. bon, lien en anglais, mais perso, ca me derange pas ;)

https://www.excel-downloads.com/threads/detection-couleur-mfc.99000/


Je potasse ca et te donne la soluce ;)
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 14:32
merci j'essaye de comprendre aussi :)
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 14:44
ok..
voici mon fichier qui marche avec mise en condition ;)

http://dl.free.fr/getfile.pl?file=/jnw3ZKqr
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 14:54
Merci tu déchires on voit le bout
mais :D il y a un mais
je ne comprends pas tout je dois récup tout le code et le mettre dans un module?
et pour ce qui est de compter les cases vertes, il me faut le nombre de case vertes en colonne "L" mais il ne faut pas oublier que la case n'est compter QUE si sur la même ligne :
- la case en F = A ou B ou C
&
- la case en C = QQCHOSE

Comme je n'y comprends pas grand chose au code ou et comment dois-je placer la condition :s
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 14:58
il te faudra le module au complet dans ton fichier xl...

ptite précision pour la suite ... A B ou C.. c'est du texte dedans ou c'est aussi une mise en forme conditionnelle?? pareil pour la colonne C..
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 15:08
que du texte la mise en forme conditionnelle ne concerne que les dates
Sans plus de précisions, si tu préfères, dans cette synthèse C sera le "service" et F "le poste/statut" si c'est plus clair ^^ c'est une image
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 15:11
Au fait ça me remet l'erreur avec le Worksheets("Feuil1")....
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 15:11
donc ca ca devrait tout resoudre :

http://dl.free.fr/getfile.pl?file=/9Gb8TYLD
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 15:14
feuil1 est le nom de ta feuille.. tu as du la renommée ;)
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 15:17
Effectivement bon je vais tester mais j'obtiens 0 je pense que c'est du à ton range
Ca sélectionne A1 si je ne m'abuse qu'est ce que ça donne pour L :D7
0
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
24 juil. 2009 à 15:19
ah ben dans mon exemple la j ai pris la peine de mettre en L la forme conditionnelle et en C qlqchose et en F : ABCDF ou rien.. alors t as pas du voir la derniere version ;)
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 15:28
Bon je rentre chez moi je vais essayer sinon je te redemanderai lundi :s si t'es là
0
Doudou95 Messages postés 1561 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 30 avril 2019 275
24 juil. 2009 à 16:01
voila suis rentré je test ça tout à l'heure j'ai pris le fichier et jte dis ce qu'il en est merci beaucoup à plus tard bisoux
0