Mettre une variable dans le SI d'un IF

Fermé
Spart1at - 16 janv. 2022 à 13:11
 Utilisateur anonyme - 16 janv. 2022 à 16:44
Bonjour à tous,
J'essaye actuellement de construire un tableau à élimination. Je bloque sur un point de la formule suivante:
(ci-dessous, j'essaye de mettre dans la cellule choisie la fonction SI d'Excel (à ne pas confondre avec la fonction IF de VBA)

ActiveCell.FormulaR1C1 = _ "=IF(R[-3]C[-2]="""","""",IF(R[-3]C[-2]=""V"",R[-3]C[-4],R[3]C[-4]))"

J'aimerai remplacer les nombres en gras par une variable (appelons là X) parce que cette formule fait partie d'un IF qui se répète.

Configuration: Windows / Chrome 97.0.4692.71

11 réponses

Utilisateur anonyme
16 janv. 2022 à 13:17
Bonjour

Pour tes prochains posts, merci d’utiliser la coloration syntaxique (voir ce tuto https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code )
Ce qui donne
 ActiveCell.FormulaR1C1 = _ "=IF(R[-3]C[-2]="""","""",IF(R[-3]C[-2]=""V"",R[-3]C[-4],R[3]C[-4]))"  



Je te conseille d’aller lire cet article sur la manipulation des strings, et notamment le chapitre sur la concaténation https://www.commentcamarche.net/faq/48440-vba-string-assigner-comparer-concatener
0
Bonjour,
Merci pour l'info.

Je viens de regarder le chapitre sur la concaténation mais je ne vois pas le rapport et je ne vois pas comment peut résoudre mon problème. J'ai essayé tout de même de concaténer des variables mais cela ne donne rien

Merci d'avance
0
Utilisateur anonyme
16 janv. 2022 à 14:26
Peux tu poster le code que tu as essayé pour concaténer les variables?
0
J'ai utilisé ce code. Je vois bien qu'il est nul mais je ne trouve pas la solution

Dim A As String
A = r
Dim B As Long
B = [-3]
ActiveCell.FormulaR1C1 = _
        "=IF(A&B&C[-2]="""","""",IF(R[-3]C[-2]=""V"",R[-3]C[-4],R[3]C[-4]))"
0

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

Posez votre question
Utilisateur anonyme
16 janv. 2022 à 14:54
C’est là où la couleur est importante.

 "A&B&C" 
apparaît en rouge, donc c’est « à l’intérieur » de la string. C’est du texte brut, pas de la concaténation.

Dans le tuto que je t’ai conseillé, A et B apparaissent en noir, ce sont des variables et le & apparaît en fushia c’est un opérateur.

0
Oui ça ne me surprend pas, il considère tout comme un texte à cause des guillemets, mais si je les supprime, la fonction ne marche pas
0
Utilisateur anonyme
16 janv. 2022 à 15:27
Bon
Je te remets ici le code exemple
Sub Concatener()
Dim A, B As String

    A = "Hello"
    B = "world"
    Debug.Print A & " " & B         'retourne : Hello world
    'Si vous êtes surs que A et B sont des Strings :
    Debug.Print A + " " + B         'retourne : Hello world
End Sub 


Il y a bien des guillemets, donc il n’est pas question de les enlever.
Vois tu les différences avec ce que tu as codé?
0
Visiblement on arrivera pas à se comprendre, bonne journée et merci pour votre aide.
0
Je sais exactement où tu butes, mais j’essayais de te le faire découvrir par toi-même.
Généralement on retient généralement mieux ce que l’on expérimente que ce qu’on nous donne tout cuit.

Mais puisque tu sembles ne pas y arriver, voilà


Dim X as Integer
X = -3
ActiveCell.FormulaR1C1 = _
        "=IF(R[" & X & "]C[-2]="""","""",IF(R[-3]C[-2]=""V"",R[-3]C[-4]"



0
J'ai finalement trouvé la solution, merci tout de même pour l'aide.

Donner une réponse ne signifie pas nécessairement que la personne qui l'a reçoit ne vas pas la regarder.
0
Utilisateur anonyme
16 janv. 2022 à 16:44
Je n’ai pas dit que la réponse n’est pas lue, mais que lu n’est pas forcément appris.
L’apprentissage passe par plusieurs biais et l’un des principaux c’est l’expérimentation.

La prochaine fois que tu auras besoin de concaténer, il y a plus de chance que tu saches le faire de tête si tu as fini par trouver de toi-même que si tu avais copié collé ma solution.
0