Copie d'une formule sur une colonne

Bonjour,

J'utilise une macro pour copier une formule dans une colonne sur les lignes non vides.

Exemple qui fonctionne

J'ai des dates dans la colonne A (01/03/2020) et je veux avoir l'année dans la colonne B

==========================================================

Sub Macro1()

Sheets("Racco").Select

Range("B1").Select

ActiveCell.FormulaR1C1 = "Année"

Range("B2").Select

ActiveCell.FormulaR1C1 = "=YEAR(RC[-1])"

Range("B2").Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

'recopie jusquè à la derniere ligne non vide

premiere = Range("B" & Rows.Count).End(xlUp).Row

dernière = Range("A" & Rows.Count).End(xlUp).Row

Range("B" & premiere & ":B" & dernière).FillDown

End Sub

==========================================================

Si je remplace

ActiveCell.FormulaR1C1 = "=YEAR(RC[-1])"

par une formule plus complexe

ActiveCell.FormulaR1C1 = "=SI(ESTNUM(CHERCHE(""1"",RC[-1])),""N°1"",(SI(ESTNUM(CHERCHE(""2"",RC[-1])),""N°2"",(SI(ESTNUM(CHERCHE(""3"",RC[-1])),""N°3"",)))))"

Le résultat affiché est "#NOM?#

Si j'édite la cellule B2 (F2 + Entrée sans modifier la formule), le résultat apparait : N°2 dans cet exemple

La 2ème formule est donc bonne

Pourquoi ai-je ce problème d'affichage du résultat ?

Merci

Jay

Bonjour,

Pour faire ce que tu souhaites pas besoin de vba, des formules existent et répondent à ta demande.

Mais pour t'aider un fichier ne serait pas du luxe.

Cordia5

Bonjour,

ActiveCell.FormulaR1C1 = "=IF(ISNUMBER(SEARCH(""1"",RC[-1])),""N°1"",(IF(ISNUMBER(SEARCH(""2"",RC[-1])),""N°2"",(IF(ISNUMBER(SEARCH(""3"",RC[-1])),""N°3"",)))))"

?

Bonjour,

ActiveCell.FormulaR1C1 = "=IF(ISNUMBER(SEARCH(""1"",RC[-1])),""N°1"",(IF(ISNUMBER(SEARCH(""2"",RC[-1])),""N°2"",(IF(ISNUMBER(SEARCH(""3"",RC[-1])),""N°3"",)))))"

?

Merci pour ta rapide réponse mais je teste des caractères sur la 2ème formule

Le formule que je veux appliquer est :

=SI(ESTNUM(CHERCHE("exp";F9));"expert";(SI(ESTNUM(CHERCHE("deb";F9));"débutant";(SI(ESTNUM(CHERCHE("form";F9));"formation";)))))

=> en VBA

ActiveCell.FormulaR1C1 = "=SI(ESTNUM(CHERCHE(""exo"",RC[-1])),""expert"",(SI(ESTNUM(CHERCHE(""deb"",RC[-1])),""débutant"",(SI(ESTNUM(CHERCHE(""form"",RC[-1])),""formation"",)))))"

Mais le résultat ne s'affiche pas après la copie de la formule via la macro

Jay

Les explications, c'est bien, un fichier c'est mieux.

Cordia5

Les explications, c'est bien, un fichier c'est mieux.

Cordia5

Hello,

Un exemple en PJ.

Le calcul de date est Ok

Le calcul de niveau est KO

4classeur1.xlsm (19.78 Ko)

Bonsoir,

vois et dis-nous.

Cordia5

Rechercher des sujets similaires à "copie formule colonne"