VBA: Copier Formule dans Colonne sans F.RC1C1
Résolu/Fermé
A voir également:
- Vba copier coller formule
- Formule excel - Guide
- Formule si et - Guide
- Copier coller pdf - Guide
- Copier une vidéo youtube - Guide
- Formule moyenne excel - Guide
4 réponses
Utilisateur anonyme
25 mai 2012 à 18:58
25 mai 2012 à 18:58
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
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 209
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
Utilisateur anonyme
28 mai 2012 à 13:17
28 mai 2012 à 13:17
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
!