Mettre une formule dans une cell par macro ?

ppa76

XLDnaute Nouveau
Bonjour à toutes et tous,

Par macro, j'insère une colonne. -> OK
Toujours par la même macro, dans la première celleule de cette colonne, je dois mettre la formule '=D7+RECHERCHEV(CONCATENER(H7;'-';E7);Feuil1!Jour_Bq;2;0)' sans que le tiret entre double cote soit interprèté comme un signe moins.

Puis, je dois recopier cette cellule vers le bas jusqu'à la ligne 128.

Merci d'avance de votre aide précieuse.

Phil.
 

Abel

XLDnaute Accro
Bonjour PPA76,

Juste après l'insertion de la colonne (si tu as fait 'Columns('x:x').Insert Shift:=xlToRight'), essaie :

Code:
Selection.Cells(1, 1).Select
ActiveCell.FormulaR1C1 = _
        '=R[6]C[3]+VLOOKUP(CONCATENATE(R[6]C[7],''-'',R[6]C[4]),Feuil1!Jour_Bq,2,0)

Abel.

Edition :
Arf ! L'a trop bu de beaujolais nouveau mon x double point x.
Hi hi !

Message édité par: Abel, à: 17/11/2005 17:17
 

ppa76

XLDnaute Nouveau
Abel,

J'ai testé mais j'ai un code erreur '1004' sur la dernière ligne

Code:
'Insertion colonne 'Date de valeur'
    Columns('F:F').Select
    Selection.Insert Shift:=xlToRight
    Selection.ColumnWidth = 6.57
    Selection.NumberFormat = 'dd/mm/yy;@'
    
    Range('F7').Select
    ActiveCell.FormulaR1C1 = '=D7+RECHERCHEV(CONCATENER(H7;''-'';E7);Feuil1!Jour_Bq;2;0)'

J'ai même tenté de remplacer le '-' par la fonction CAR(45) sans plus de résultat.

Je cherche encore autour de cette histoire

Phil
 

ppa76

XLDnaute Nouveau
Bonjour Bebere,

Merci de t'occuper de mon cas.

Même motif, même punition !
Dans le VB, la ligne n'apparait pas en erreur de syntax, mais en erreur d'exécution.

Dans la formule en remplacant le '-' par un car(45), si je copie la formule directement dans la cellule c'est bon.

C'est donc un problème à l'inscription de la formule dans la cellule.

Phil,
 

ppa76

XLDnaute Nouveau
Bonsoir Bebere et Abel,

Mon problème est résolu. Ne me demandez pas pourquoi, j'ai pas compris.

En fait, j'ai enregistré une macro pendant laquelle j'ai collé dans ma cellule la formule telle qu'elle. Puis j'ai regardé ce qui était enregistré et j'ai recopié le code en question.

Code:
    Range('F7').Select
    ActiveCell.FormulaR1C1 = _
        '=RC[-2]+VLOOKUP(CONCATENATE(RC[2],CHAR(45),RC[-1]),jour_bq,2,0)'

    Range('F7').Select
    Selection.AutoFill Destination:=Range('F7:F130'), Type:=xlFillDefault

Merci à tous les deux de m'avoir consacré de votre temps.

Phil,
 

Discussions similaires

Réponses
9
Affichages
476
Réponses
2
Affichages
360

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 389
Messages
2 087 933
Membres
103 678
dernier inscrit
bibitm