Condition VBA

Bonjour,

Je ne sais pas si cette question a déjà était posée j'ai essayé de chercher mais rien ne convient à ma situation.

Je m'explique, je maîtrise bien la formule si sur Excel mais retranscrire ça en VBA je suis complètement nulle

J'aimerais donc un code VBA qui me permettrait de dire :

Si la cellule F10 contient "texte" alors cellule z10 = texte

sinon ne rien afficher

voila mon code vba :

Sub exemple()

If Range("F10").Value = "TRIAGE" Then

Range("R10").Value = 806.6

Range("Z10").Value = "Toutes voies"

Range("AI10").Value = "P02"

Range("AO10").Value = "D"

End If

End Sub

Je voudrais donc que si la cellule f10 n'est pas égale à "triage" alors il n'affiche rien.

Je tourne en rond depuis 1h et je n'arrive toujours pas.

Merci à celle ou celui qui voudra bien m'aider.

Bonjour,

Pour l'instant, ton code ne fait rien si F10 ne contient pas "TRIAGE". Tu peux ajouter une clause Else if si tu veux effectuer des actions dans ce cas, mais il faudrait préciser ce que tu veux faire exactement.

Justement je cherche à savoir quoi mettre comme code pour qu'il n'affiche rien dans les cellules si f10 ne contient pas triage ou si elle contient autre chose que triage.

En gros je veux retranscrire une formule si

si f10 = "triage"; r10=806... ; ""

C'est juste ça que je veux qu'il n'affiche rien si la condition n'est pas respectée comme une formule si.

merci de votre aide

Bonjour,

Une solution :

Sub exemple()
Dim Y
Y = Range("F10").Value = "TRIAGE"
Range("R10").Value = IIf(Y, 806.6, "")
Range("Z10").Value = IIf(Y, "Toutes voies", "")
Range("AI10").Value = IIf(Y, "P02", "")
Range("AO10").Value = IIf(Y, "D", "")
End Sub

A+

Bonjour,

Merci pour votre code mais celui-ci ne marche pas...

D'autres solutions peut-être?

Merci

bonjour,

"ça ne marche pas" n'est pas une réponse !

En principe ici quand on vous donne une réponse c'est que ça marche. (sinon on ne se fatiguerait pas à répondre)

Donc si ça ne marche pas, c'est soit que :

Vous ne savez pas vous servir de la réponse.

La question est mal posée.

Particulièrement la macro fait la distinction entre "TRIAGE" et "triage" comme vous avez écris une fois en MAJUSCULE et une fois en minuscule... j'ai choisi MAJUSCULE. A vous de savoir et de corriger si nécessaire.

Veuillez fournir un classeur démo, avec la réponse "qui ne marche pas"

Et un petit commentaire sur les erreurs rencontrées.

A+

Le petit classeur démo "qui marche" (chez moi !) en pièce jointe.

6triage.xlsm (18.04 Ko)

Excusez moi je ne voulais pas offenser qui que ce soit.

Je ne veux pas que les personnes qui doivent remplir le classeur Excel aient à cliquer sur un bouton pour activer la macro.

J'aimerais donc que lorsque je choisis parmi une liste "TRIAGE", les valeurs des autres cellules se remplissent automatiquement (ce qui est le cas avec mon code VBA) mais je voudrais aussi que lorsque j'efface la cellule contenant "TRIAGE" ou que je choisis une autre valeur les cellules soient vides (ce que je n'arrive pas à faire et ce pourquoi j'ai solliciter de l'aide).

Je ne sais pas comment mieux m'exprimer si ce n'est que je voudrais retranscrire une fonction si en vba

soit: si(F10="TRIAGE"; R10 = 806,6 etc ; "")

Merci de votre aide

bonjour,

Rajouter cette macro :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect
If Target.Count = 1 Then
   Set isect = Intersect(Target, [F10])
   If Not isect Is Nothing Then
      exemple
   End If
End If
End Sub

[EDIT] Nota : Vous pouvez également rassembler tout en un (en supprimant la macro précédente) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect, Y As Boolean
   Set isect = Intersect(Target, [F10])
   If Not isect Is Nothing Then
      Y = Range("F10") = "TRIAGE"
      [R10] = IIf(Y, 806.6, "")
      [Z10] = IIf(Y, "Toutes voies", "")
      [AI10] = IIf(Y, "P02", "")
      [AO10] = IIf(Y, "D", "")
   End If
End Sub

A+

Rechercher des sujets similaires à "condition vba"