OVH Cloud OVH Cloud

Copie de formule en VBA.

16 réponses
Avatar
Quaisako
Bonjour le Forum,

ce bout de code (créé avec l'aide de l'interpreteur de macros) doit copier
la formule de la cellule "I4" dans la plage "I5:I34"
mais ça ne fonctionne pas.

Range("I4").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"
Selection.AutoFill Destination:=Range("I4:I34"), Type:=xlFillDefault
Range("I4:I34").Select
ActiveWindow.SmallScroll Down:=-14
Range("B2").Select
ActiveWindow.DisplayZeros = False

Le débugger m'indique une erreur à ce niveau
"ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"


Merci d'avance pour votre aide.
Jipé

6 réponses

1 2
Avatar
Quaisako
Bonsoir le Forum,

Merci Ange Ounis pour ce bout de prose
"Range("I4:I34").Formula=Range("I4").Formula", mais de quelle manière
dois-je l'utiliser?

J'ai un autre souci du même ordre que lorsque Daniel m'a dépanné (dans ce
fil), lorsqu'il a suggéré la formule en français, mais cette fois avec la
formule suivante.
2 exemples de formule testés parmis d'autres. Où est l'erreur?
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4,2)=7,NO.SEMAINE(B4-1),"""")"
ActiveCell.FormulaR1C1 =
"=IF(WEEKDAY(RC[-10],2)=7,NO.SEMAINE(RC[-10]-1),"""")"

Pour info:
J'ai des dates en "B4:B34" B4 = 1er jour du mois.
B34 = le dernier.
Je voudrais copier la formule (en VBA)
"SI(JOURSEM(B4;2)=1;NO.SEMAINE(B4-1);"")" en "A4:A34" pour indiquer le N° de
semaine en face chaque "lundi" de la plage "B4:B34".
Merci d'avance.
Jipé

"Ange Ounis" a écrit dans le message de news:

L'enregistreur de macros est toujours très "verbeux".
Cette ligne de code devrait faire ce que tu attends :

Range("I4:I34").Formula=Range("I4").Formula

----------
Ange Ounis
----------

Bonjour le Forum,

ce bout de code (créé avec l'aide de l'interpreteur de macros) doit
copier la formule de la cellule "I4" dans la plage "I5:I34"
mais ça ne fonctionne pas.

Range("I4").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"
Selection.AutoFill Destination:=Range("I4:I34"), Type:=xlFillDefault
Range("I4:I34").Select
ActiveWindow.SmallScroll Down:=-14
Range("B2").Select
ActiveWindow.DisplayZeros = False

Le débugger m'indique une erreur à ce niveau
"ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"


Merci d'avance pour votre aide.
Jipé






Avatar
Modeste
Bonsour® Quaisako avec ferveur ;o))) vous nous disiez :

2 exemples de formule testés parmis d'autres. Où est l'erreur?
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4,2)=7,NO.SEMAINE(B4-1),"""")"


si tu as EXCEL FR le séparateur local d'instruction est le ";"
soit FR :
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4;2)=7;NO.SEMAINE(B4-1);"""")"
ou US :
ActiveCell.Formula = "=IF(WEEKDAY(B4,2)=7,WEEKNUM(B4-1),"""")"


ActiveCell.FormulaR1C1 > "=IF(WEEKDAY(RC[-10],2)=7,NO.SEMAINE(RC[-10]-1),"""")"


de même ici avec mélange d'instruction US et FR ....
ActiveCell.FormulaR1C1Local
="=SI(JOURSEM(LC(-10);2)=7;NO.SEMAINE(LC(-10)-1);"""")"
FR= SI, point-virgules , LC et parenthèses
ou
ActiveCell.FormulaR1C1 ="=IF(WEEKDAY(RC[-10],2)=7,WEEKNUM(RC[-10]-1),"""")"
US = IF, virgules , RC et crochets

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Quaisako
C'est avec ferveur que je te remercie Modeste.
Mille Mercis pour la rapidité de ta réponse et pour tes explications.
Bonne nuit
Jipé

"Modeste" a écrit dans le message de news:
u%23q1bS%
Bonsour® Quaisako avec ferveur ;o))) vous nous disiez :

2 exemples de formule testés parmis d'autres. Où est l'erreur?
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4,2)=7,NO.SEMAINE(B4-1),"""")"


si tu as EXCEL FR le séparateur local d'instruction est le ";"
soit FR :
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4;2)=7;NO.SEMAINE(B4-1);"""")"
ou US :
ActiveCell.Formula = "=IF(WEEKDAY(B4,2)=7,WEEKNUM(B4-1),"""")"


ActiveCell.FormulaR1C1 >> "=IF(WEEKDAY(RC[-10],2)=7,NO.SEMAINE(RC[-10]-1),"""")"


de même ici avec mélange d'instruction US et FR ....
ActiveCell.FormulaR1C1Local
="=SI(JOURSEM(LC(-10);2)=7;NO.SEMAINE(LC(-10)-1);"""")"
FR= SI, point-virgules , LC et parenthèses
ou
ActiveCell.FormulaR1C1
="=IF(WEEKDAY(RC[-10],2)=7,WEEKNUM(RC[-10]-1),"""")"
US = IF, virgules , RC et crochets

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr




Avatar
Ange Ounis
Eh bien, on suppose que A4 contient la formule

=SI(JOURSEM(B4;2)=1;NO.SEMAINE(B4-1);"")

Dans un module ordinaire du VBAProject du classeur, tu te fais une petite
procédure de ce style :

Sub essai()
Range("A4:A34").Formula=Range("A4").Formula
End Sub

et tu l'exécutes (par exemple en cliquant sur Range puis en appuyant sur la
touche F5).

----------
Ange Ounis
----------

Bonsoir le Forum,

Merci Ange Ounis pour ce bout de prose
"Range("I4:I34").Formula=Range("I4").Formula", mais de quelle manière
dois-je l'utiliser?

J'ai un autre souci du même ordre que lorsque Daniel m'a dépanné (dans ce
fil), lorsqu'il a suggéré la formule en français, mais cette fois avec la
formule suivante.
2 exemples de formule testés parmis d'autres. Où est l'erreur?
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4,2)=7,NO.SEMAINE(B4-1),"""")"
ActiveCell.FormulaR1C1 =
"=IF(WEEKDAY(RC[-10],2)=7,NO.SEMAINE(RC[-10]-1),"""")"

Pour info:
J'ai des dates en "B4:B34" B4 = 1er jour du mois.
B34 = le dernier.
Je voudrais copier la formule (en VBA)
"SI(JOURSEM(B4;2)=1;NO.SEMAINE(B4-1);"")" en "A4:A34" pour indiquer le N° de
semaine en face chaque "lundi" de la plage "B4:B34".
Merci d'avance.
Jipé

"Ange Ounis" a écrit dans le message de news:


L'enregistreur de macros est toujours très "verbeux".
Cette ligne de code devrait faire ce que tu attends :

Range("I4:I34").Formula=Range("I4").Formula

----------
Ange Ounis
----------


Bonjour le Forum,

ce bout de code (créé avec l'aide de l'interpreteur de macros) doit
copier la formule de la cellule "I4" dans la plage "I5:I34"
mais ça ne fonctionne pas.

Range("I4").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"
Selection.AutoFill Destination:=Range("I4:I34"), Type:=xlFillDefault
Range("I4:I34").Select
ActiveWindow.SmallScroll Down:=-14
Range("B2").Select
ActiveWindow.DisplayZeros = False

Le débugger m'indique une erreur à ce niveau
"ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"


Merci d'avance pour votre aide.
Jipé










Avatar
Quaisako
Bonjour le Forum,

je ne sais pas utiliser les modules, je mets toutes mes procédures les unes
à la suite des
autres.
Merci Ange Ounis, ça fonctionne.

Range("A4").Select
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4;2)=1;NO.SEMAINE(B4-1);"""")"
Range("A4:A34").Formula = Range("A4").Formula

Jipé


"Ange Ounis" a écrit dans le message de news:
%23db3bt%
Eh bien, on suppose que A4 contient la formule

=SI(JOURSEM(B4;2)=1;NO.SEMAINE(B4-1);"")

Dans un module ordinaire du VBAProject du classeur, tu te fais une petite
procédure de ce style :

Sub essai()
Range("A4:A34").Formula=Range("A4").Formula
End Sub

et tu l'exécutes (par exemple en cliquant sur Range puis en appuyant sur
la touche F5).

----------
Ange Ounis
----------

Bonsoir le Forum,

Merci Ange Ounis pour ce bout de prose
"Range("I4:I34").Formula=Range("I4").Formula", mais de quelle manière
dois-je l'utiliser?

J'ai un autre souci du même ordre que lorsque Daniel m'a dépanné (dans ce
fil), lorsqu'il a suggéré la formule en français, mais cette fois avec la
formule suivante.
2 exemples de formule testés parmis d'autres. Où est l'erreur?
ActiveCell.FormulaLocal = "=SI(JOURSEM(B4,2)=7,NO.SEMAINE(B4-1),"""")"
ActiveCell.FormulaR1C1 >> "=IF(WEEKDAY(RC[-10],2)=7,NO.SEMAINE(RC[-10]-1),"""")"

Pour info:
J'ai des dates en "B4:B34" B4 = 1er jour du mois. B34 = le
dernier.
Je voudrais copier la formule (en VBA)
"SI(JOURSEM(B4;2)=1;NO.SEMAINE(B4-1);"")" en "A4:A34" pour indiquer le N°
de semaine en face chaque "lundi" de la plage "B4:B34".
Merci d'avance.
Jipé

"Ange Ounis" a écrit dans le message de news:


L'enregistreur de macros est toujours très "verbeux".
Cette ligne de code devrait faire ce que tu attends :

Range("I4:I34").Formula=Range("I4").Formula

----------
Ange Ounis
----------


Bonjour le Forum,

ce bout de code (créé avec l'aide de l'interpreteur de macros) doit
copier la formule de la cellule "I4" dans la plage "I5:I34"
mais ça ne fonctionne pas.

Range("I4").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"
Selection.AutoFill Destination:=Range("I4:I34"), Type:=xlFillDefault
Range("I4:I34").Select
ActiveWindow.SmallScroll Down:=-14
Range("B2").Select
ActiveWindow.DisplayZeros = False

Le débugger m'indique une erreur à ce niveau
"ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"


Merci d'avance pour votre aide.
Jipé











Avatar
mahdiansari
helo

Daniel نوشته است:
Je n'ai pas encore pas compris pourquoi, mais :
ActiveCell.FormulaLocal = "=somme(d4:h4)"
fonctionne.
VBA n'aime pas l'anglais !
Daniel
"Quaisako" a écrit dans le message de news:
%
Bonsoir,

Le fichier ci-joint a été créé à l'origine par DJ.
http://cjoint.com/?bgsvWppVrK
Je cherche à le mettre à ma convenance.
J'avais bien une journée d'avance. Maintenant mon PC est bien à   la bonne
date.
Mais le problème persiste.
Merci à tous.
Jipé



"Pounet95" a écrit dans le message de news:

Bonjour,

2 questions bêtes :
- quelle est la cellule active ? si c'est une cellule des colonnes
A,B,C,D,E incluses c'est normal
car RC[-5] veut dire d'y inclure une colonne avant A !!!

- quelle est la date sur ton micro ?? Déjà le 7 janvier ???

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"Quaisako" a écrit dans le message de
news: %
Bonjour le Forum,

ce bout de code (créé avec l'aide de l'interpreteur de macr os) doit
copier la formule de la cellule "I4" dans la plage "I5:I34"
mais ça ne fonctionne pas.

Range("I4").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"
Selection.AutoFill Destination:=Range("I4:I34"), Type:=xlFillD efault
Range("I4:I34").Select
ActiveWindow.SmallScroll Down:=-14
Range("B2").Select
ActiveWindow.DisplayZeros = False

Le débugger m'indique une erreur à ce niveau
"ActiveCell.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"


Merci d'avance pour votre aide.
Jipé














1 2