VBA - Donner une valeur à une case parmi une liste

Bonjour à tous !

J'ai une liste de valeurs dans des cases (par exemple de A1 à A10) et je souhaite faire varier la valeur de la case B1 successivement par toutes les valeurs de A1 à A10...

Comment puis-je le faire par une macro ?

Merci pour votre aide

Salut,

Sans entrer dans les détails et sans donner de données confidentielles, que veux tu faire ?

car si on mets des valeurs dans A1:A10 et qu'on fait varier la valeur de B1 par toutes les valeurs de A1:A10, ça ne se verra pas au premier coup d'oeil.... ça passera de A1 à A10 en 2 secondes...

Souri84

Oui ce n'est pas un problème, au contraire

L'objectif est de faire un calcul complexe à partir d'une case.

Une fois la valeur de la case fixée, je détermine une masse (résultat du calcul qui m'intéresse) que je garde en mémoire.

Je dois tester un petit paquet de valeurs discrètes (donc pas moyen d'itérer de manière classique) et faire sortir celle qui me donnera la masse la plus faible. Comme la feuille de calcul est complexe, pas moyen de faire une succession de formule pour chaque valeur, d'où l'idée de donner à une case une valeur de la liste puis de passer à la valeur suivante, en conservant celle qui me donnera la masse la plus faible à l'arrivée.

J'espère avoir été suffisamment clair...

Salut,

En effet, tu n'es pas très précis,

voici un premier fichier exemple, dis moi ce que tu en penses. Si ce n'est pas ça, joins un fichier exemple...

Souri84

[b]

Fichier joint[/b]

Bonsoir,

pourrais-tu donner la formule donnant la masse?

Cela sera plus facile pour donner une solution

Désolé de ne pas avoir répondu plus tôt, j'étais pris par autre chose...

En fait ton fichier est intéressant, ça me fait penser à une autre application...

En ce qui concerne le calcul de masse, c'est en fait un calcul de résistance des matériaux qui dépend de nombreux paramètres et qui sont hors de propos, je vais donc essayer d'être plus explicite :

Ce dont j'ai besoin, c'est de faire varier la valeur de la case D5 (cf. fichier joint) en la faisant varier de B11 à B13, c'est à dire que la case D5 doit successivement prendre la valeur texte "IPE140", puis "IPE160" puis "IPE200"... etc....

Par conséquent, la case D6 affichera la valeur associée à "IPE140", puis "IPE160" et "IPE200" (donc successivement ici les valeurs 5, 4 puis 6) et c'est avec cette valeur que le calcul de résistance de matériaux se fera, me donnant un résultat qui me permettra de sélectionner IPE140, IPE160 ou IPE200.

Ma problématique est de faire une macro qui fera donc passer la valeur de la case D4 par les valeurs prédéfinies dans B11:B13 !

Merci d'avance...

Fichier :

Bonsoir,

Euh, la fonction MIN ne suffirait pas?

sinon, ta rechercheV n'est pas conforme.....

la syntaxe :

=RECHERCHEV(D5;B11:C13;2)

En effet

La fonction min ne suffira pas... car ça n'a rien à voir avec le problème qui me préoccupe.

Je recommence : très simplement, j'ai besoin d'une macro qui donne à une case une valeur d'une liste prédéfinie sur ma feuille.

Par exemple : de A1 à A5, j'ai 5 lettres (A, E, I, O, U)

Dans la case B1, je souhaite que les 5 lettres écrites dans les cases A1 à A5 s'affichent successivement (même si je n'ai pas le temps de les lire).

Donc quand je lance la macro, la case B1 va prendre la valeur de la case A1, puis A2, etc...

Bonjour,

un petit code

Sub essai()
For i = 1 To 5
    [B1] = Cells(i, 1)
Next i
End Sub

Excellent, ça m'a l'air d'être ça merci

Je l'essayerai ce soir

Rechercher des sujets similaires à "vba donner valeur case liste"