VBA: Copier Formule dans Colonne sans F.RC1C1
Résolu/Fermé
A voir également:
- Vba copier coller formule
- Formule excel - Guide
- Dessin a copier coller ✓ - Forum Internet / Réseaux sociaux
- Copier coller formule excel sans décalage ✓ - Forum Bureautique
- Erreur 1004 vba ✓ - Forum VB / VBA
- Formule de politesse mail anglais - Guide
4 réponses
Bonjour,
L'affectation d'une formule vers une cellule peut se faire
selon la propriété [ Value ], la propriété [ FormulaR1C1 ] est
utile pour lire la formule :
ex.:
n.b. Pas testé, codé à la volé :-)
Cdt
Lupin
L'affectation d'une formule vers une cellule peut se faire
selon la propriété [ Value ], la propriété [ FormulaR1C1 ] est
utile pour lire la formule :
ex.:
Option Explicit
Sub TransfertFormule()
'Application.ScreenUpdating = False ' Augmente la performance
Dim LimiteL As Long, LimiteC As Long
Dim BoucleL As Long, BoucleC As Long
Dim Formule As String
LimiteL = Range("A65535").End(xlUp).Row
LimiteC = Range("A1").End(xlToRight).Column
Range("A1").Select
For BoucleL = 1 To Limite
For BoucleC = 1 To LimiteC
Formule = ActiveCell.Offset(0, BoucleC).FormulaR1C1
ActiveCell.Offset(BoucleL, BoucleC).Value = Formule
Next BoucleC
Next BoucleL
'Application.ScreenUpdating = True
End Sub
'
n.b. Pas testé, codé à la volé :-)
Cdt
Lupin
eriiic
Messages postés
24510
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
7 166
Modifié par eriiic le 28/05/2012 à 11:57
Modifié par eriiic le 28/05/2012 à 11:57
Bonjour,
en plus court :
eric
en plus court :
[E2:G2].AutoFill Range("E2:G" & Cells(Rows.Count, 1).End(xlUp).Row)recopie les formules présentes en E2:G2 vers le bas jusqu'à la dernière ligne remplie de A.
eric
Bonjour,
Comme tu peux voir Sara, il existe des méthodes plus courte
comme eric nous a montré.
Je suis plustôt du style explicite et je passe par le chemin qui
semble le plus long mais étant donné que tu avais spécifié
que tu étais novice sous VBA, je préconise plus une approche
explicite.
Néanmoins, si tu continue dans cette voie, tu pourras bientôt
toi aussi codé à la volé. Comme le disait Einstein :
La connaissance s'acquiert par l'expérience,
tout le reste n'est que de l'information.
Cdt
Lupin
Comme tu peux voir Sara, il existe des méthodes plus courte
comme eric nous a montré.
Je suis plustôt du style explicite et je passe par le chemin qui
semble le plus long mais étant donné que tu avais spécifié
que tu étais novice sous VBA, je préconise plus une approche
explicite.
Néanmoins, si tu continue dans cette voie, tu pourras bientôt
toi aussi codé à la volé. Comme le disait Einstein :
La connaissance s'acquiert par l'expérience,
tout le reste n'est que de l'information.
Cdt
Lupin
Modifié par SaraNeden le 25/05/2012 à 19:33
Modifié par SaraNeden le 28/05/2012 à 06:23
Option Explicit
Sub TransfertFormule()
Application.ScreenUpdating = False ' Augmente la performance
Dim LimiteL As Long, LimiteC As Long
Dim BoucleL As Long, BoucleC As Long
Dim Formule As String
LimiteL = ThisWorkbook.Sheets("IN").Range("A65535").End(xlUp).Row
LimiteC = ThisWorkbook.Sheets("IN").Range("R3").End(xlToRight).Column
ThisWorkbook.Sheets("IN").Range("R3").Select
For BoucleL = 3 To LimiteL
For BoucleC = 18 To LimiteC
Formule = ActiveCell.Offset(0, BoucleC).FormulaR1C1
ActiveCell.Offset(BoucleL, BoucleC).Value = Formule
Next BoucleC
Next BoucleL
Application.ScreenUpdating = True
End Sub
Est-il possible de m'éclairer?
28 mai 2012 à 08:01
!