Formule Excel [Résolu]

Signaler
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012
-
mimalo13
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012
-
Bonjour à tous,
Je souhaiterais créer une formule VBA dans Excel qui ressemblerait à ceci.
Malheureusement, n'étant expert en la matière, cette formule que je présente ne fonctionne pas :

If Worksheets("B").Cells("P2") = "35" Then
Worksheets("B").Cells("B9") = Worksheets("B").Cells("Y10")
If Worksheets("B").Cells(4, 22) = "36" Then
Worksheets("B").Cells("B9") = Worksheets("B").Cells("Y11")
End If
End If

A l'avance, je vous remercie pour vos réponses.

13 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour,

Avant d'aller réellement à l'utilisation d'une fonction personnalisée écrite sous VBA :
Pourquoi ne pas utiliser tout simplement une formule Excel dans la cellule B9 ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Aucun problème !
Exemple :
cette formule en B1 :
SI(A135;C1;SI(A1=36;D1))
inscrira en B1 la valeur de C1 si A1 35 ou la valeur de D1 si A1 36


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Je reprends mon exemple donné plus haut, mais avec cette fois-ci 3 conditions.
Observe :
SI(A135;C1;SI(A1=36;D1;SI(A1=37;E1)))
J'explique la forme générale :
=SI(condition1;resultat1;SINONSI(condition2;resultat2;SINONSI(condition3;resultat3)))
et ainsi de suite
observe le nombre de parenthèses à la fin : j'en avais 2 avant (pour 2 conditions), j'en ai 3 pour 3 conditions.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Je voudrais maintenant appeler ton attention sur l'utilisation de la fonction CHOISIR dans une formule.
Je t'en parle car elle parait être la mieux adaptée à ton cas (un grand nombre de conditions)

Sur une feuille vierge :
écris PAR EXEMPLE en H1 1, en I1 2, EN J1 3, en K1 4, etc ... jusqu'en Q1 10
(j'ai choisi ces données pour que tu suives visuellement mieux
mets en B1 la formule suivante :
=CHOISIR(A1-34;H1;I1;J1;K1;L1;M1;N1;O1;P1;Q1)


Qu'est 34 là-dedans ? ===>> Rien d'autre que ton 35 - 1
Que devrait faire cette formule ? ===>> regarder la valeur de A1 et lui oter 34 (on aura donc 1 si = 35, 2 si = 36, etc ...) ====>> puis lui attribuer la valeur de l'index (A1-1) de toutes les valeurs qui suivent le premier point-virgule (les valeurs des cellules)

Pour mieux comprendre ce mécanisme :
écris maintenant dans A1 une valeur quelconque, supérieure ou égale à 35 ===>> observe ce qui se passe en B1

Attention : cela implique que tu ne mets en A1 que des valeurs cohérentes et au moins égales à 35, hein (sinon : erreur dans ta cellule B1)

Je suis persuadé de ce que c'est ce mécanisme, qui convient bien à ce que tu fais. Il te faudra par contre réfléchir un peu pour bien décider des valeurs.
Amuse-toi, entraîne-toi.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

petite erreur

If Worksheets("B").Cells("P2") = "35" Then
Worksheets("B").Cells("B9") = Worksheets("B").Cells("Y10")
If Worksheets("B").Cells("P2") = "36" Then
Worksheets("B").Cells("B9") = Worksheets("B").Cells("Y11")
End If
End If

A l'avance, je vous remercie pour vos réponses.
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

Bonjour,

Je te remercie de répondre. Oui pourquoi pas ? Ce genre de formule pourrait fonctionner dans une cellule ? Vu qu'il y a plusieurs conditions, je pensais que cela n'était pas faisable.
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

Un grans merci pour ton aide.
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

Un grand merci pour ton aide
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

Désolé de revenir avec ce problème. La formule fonctionne très bien mais je suis limité à 2 conditions. Comment faire pour imposer une dizaine de conditions ?

si(P237;AJ14);si(P2=38;AJ15);si(P2=39;AJ16);si(P2=40;AJ17);si(P2=41;AJ18))
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

Un très grand merci pour la rapidité et le détail de ta réponse.

Bonne journée.
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

Je vais essayer, merci pour ton aide.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bien.
Lorsque tu auras terminé :
toujours avec le même exemple (mêmes données et mêmes conditions), mets maintenant cette formule en B1 et observe :
=DECALER(G1;0;(A1-34);1;1)

Voilà ===>> plusieurs chemins peuvent mener à Rome, n'est-ce-pas ?

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
13
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
17 janvier 2012

Effectivement toutes ces formules fonctionnent très bien. Merci pour ta patience et surtout pour avoir partagé tes connaissances.