Formules VB dans zone nommée

Résolu
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 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

A voir également:

9 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 

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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 583
 

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

0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 

Bonjour Yg

Du code VBA.

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

Merci !

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 583
 

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
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 

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

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

Posez votre question
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 

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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 583
 

Le tableau commence en colonne "A"?

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

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

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

Merci pour l'aide.

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 583
 

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

0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 

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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 583
 

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

0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 

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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 583
 

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

0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 

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