Mettre une variable dans le SI d'un IF

Spart1at -  
 Utilisateur anonyme -
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

  1. Utilisateur anonyme
     
    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
  2. Spart1at
     
    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
  3. Utilisateur anonyme
     
    Peux tu poster le code que tu as essayé pour concaténer les variables?
    0
  4. Spart1at
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    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
  7. Spart1at
     
    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
  8. Utilisateur anonyme
     
    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
  9. Spart1at
     
    Visiblement on arrivera pas à se comprendre, bonne journée et merci pour votre aide.
    0
  10. Utilisateur anonyme
     
    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
  11. Spart1at
     
    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
  12. Utilisateur anonyme
     
    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