Formules VB dans zone nommée

Résolu
touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour le forum !

J'essaie en vain de mettre en place en VB une fonction permettant, dans une zone nommée "MonTableau", de mettre 2 formules via VB :

- en colonne F zone "MonTableau": "=SI(R[-2]C<>3;"oui";"non")

- en colonne E zone "MonTableau": "=SI(R[-1]C<>5;"blanc";"bleu")

Je ne parviens pas à lui indiquer qu'il doit faire ça dans la zone nommée.

Puis-je vous demander un peu d'aide svp ?

Merci par avance


Windows / Firefox 111.0

9 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     

    Bonjour à tous les deux

    As tu essayé comme ça ?

    J'ai nommé plage la zone "F5:F16"

    Sub Start()
    Dim f As String, cel As Range
    f = "=IF(RC[-2]<>3,""oui"",""non"")"
    For Each cel In Range("plage")
      cel.FormulaR1C1 = f
    Next cel
    End Sub

    https://www.cjoint.com/c/MCAtonnxEcB

    Cdlmnt

    1
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour, ce sont des formules ou du code VBA, ou encore autre chose?

    0
  3. touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   17
     

    Bonjour Yg

    Du code VBA.

    Je veux réinitialiser ces formules dans mes 2 dernières colonnes périodiquement.

    Merci !

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Commence à faire cela dans une cellule, pour maitriser la syntaxe:

      [X123].FormulaR1C1 = "=SI(R[-2]C<>3;"oui";"non")

      Cela fonctionne bien?

      Quand tu écris "en colonne E zone "MonTableau", il s'agit de la 5e colonne du tableau, ou de l'intersection du tableau avec la 5e colonne de la feuille?

      0
  4. touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   17
     

    J'ai du transformer un peu la formule pour que ça fonctionne :

    [F5].FormulaR1C1 = "=IF(RC[-2]<>3,""oui"",""non"")"

    "En colonne E" désigne bien toutes les cellules de la 5ème colonne.

    Désolé je suis très lent ...

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

    Posez votre question
  6. touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   17
     

    En fait, via la macro, je dois implémenter cette formule dans toutes les cellules de la colonne E, de ma zone nommée "MonTableau"

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Le tableau commence en colonne "A"?

      Range("MonTableau").columns(5).FormulaR1C1 = "=IF(RC[-2]<>3,""oui"",""non"")"
      0
  7. touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   17
     

    Non, en colonne C.
    Voici un exemple pour davantage de simplicité :

    https://www.cjoint.com/c/MCApALnvMKv

    Merci pour l'aide.

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Alors remplacer 5 par 3 dans la suggestion en #2, puisque c'est la 3e colonne de la zone nommée.

      0
  8. touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   17
     

    Non, ce n'est pas le problème.

    On tourne en rond.
    Ce n'est pas la formule qui me pose problème !

    Peu importe la formule, celle-là ou une autre ...

    L'objectif c'est de mettre une formule, quelle qu'elle soit, dans toutes les cellules de la colonne E, de ma zone nommée "MonTableau" ...

    Et celà via VB. Je fais ceci pour réinitialiser les formules, ayant subi des effacements involontaires par des utilisateurs ...

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      As-tu testé la suggestion en #6, en remplaçant 5 par 3?

      0
  9. touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   17
     

    Non, je n'ai pas essayé.
    De toute évidence ça ne peut pas régler mon problème.

    Je ne m'exprime peut-être pas bien, ou vous n'avez pas lu ma question.

    Je suis désolé mais ça n'avance pas.

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Ah bon?  Je pense que cela permet de régler le problème.

      0
  10. touroul Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   17
     

    Bonjour ccm

    Oui, c'est tout à fait ce que cherchais, merci beaucoup.

    Carton plein.

    Comme Cjoint fait disparaître les fichiers, je remets le code ici pour la postérité :

    Sub Start()
    Dim f As String, cel As Range
    f = "=IF(RC[-2]<>3,""oui"",""non"")"
    For Each cel In Range("plage")
      cel.FormulaR1C1 = f
    Next cel
    End Sub

    Encore merci et bonne soirée

    0