Copier vers le bas une ligne de formule tant que valeur
lebowsky
-
17 sept. 2013 à 08:43
jordane45
Messages postés37851Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 1 décembre 2023
-
17 sept. 2013 à 19:26
Bonjour,
je souhaite réaliser une macro permettant de recopier vers le bas une ligne de formule tant qu'il ya des valeurs dans la colonne d'une autre feuille.
par exemple : feuille1 "données" début des valeurs en A2 jusque indéfini
feuille 2 "calculs" première ligne de calcul de A11 à L11
il faut donc que ligne de calcul de A11 à L11 de la feuille "calculs" soit recopier vers le bas tant qu'il ya des valeurs dans la colonne A de la feuille "données"
j'espère avoir été clair.
Merci pour votre aide.
jordane45
Messages postés37851Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 1 décembre 2023343 Modifié par jordane45 le 17/09/2013 à 08:52
jordane45
Messages postés37851Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 1 décembre 2023343 17 sept. 2013 à 09:11
Bonjour.
Vous pouvez déjà commencer par utiliser l'enregistreur de macro pour voir le code a utiliser pour recopier une cellule vers le bas.
Ensuite, penchez vous sur les boucles et les tests conditionnels.
Bonjour,
Etudier quoi ?
L'utilisation de l'enregistreur de macros ? (moins de 30 secondes).
Macros ===>> enregister une macro ===>> faire manuellement les gestes ===>> arrêter l'enregistrement ===>>> lire la macro créée !
Si tu ne veux même pas faire cela...
Il est certain que copier/.coller le code écrit par un autre est "confortable", mais ce n'est pas la vocation d'un forum ...
Ici, on s'investit un minimum.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jordane45
Messages postés37851Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 1 décembre 2023343 Modifié par jordane45 le 17/09/2013 à 18:48
Bonsoir,
Dans un élan de générosité, voici le code que vous pourriez utiliser pour réaliser ce que vous souhaitez...
Sub copieFormule()
'-----------------------------------------------------------------------------------------
' expression.AutoFill(Destination, Type)
' expression Variable qui représente un objet Range.
' Destination : Les cellules à remplir. La destination doit inclure la plage source.
' Type (faculatif) : Indique le type de recopie.
'-----------------------------------------------------------------------------------------
Dim PlageOuCopier As Range
Dim PlageFeuille2 As Range
Set PlageFeuille2 = Sheets(2).Range("C1:C11")
Dim MaCelluleAcopier As String
MaCelluleAcopier = "A1"
'Boucle pour déterminer le nombre de ligne à copier
For Each Cellule In PlageFeuille2
If Cellule.Value <> "" Then
CellMax = Cellule.Row
Else
Exit For
End If
Next
'Reopie de la cellule contenant la formule
Sheets(1).Select
Set PlageOuCopier = Range(MaCelluleAcopier & ":A" & CellMax)
Range(MaCelluleAcopier).Select
Selection.AutoFill Destination:=PlageOuCopier, Type:=xlFillDefault
End Sub
Bien sur, a vous de l'adapter pour coller à VOTRE besoin.
Sachant que :
expression.AutoFill -> Information récupérée avec l'enregistreur de macro (30 secondes)
La boucle ForEach, une petite recherche sur le net pour obtenir l'info vous aurait pris 5 minutes..
Le tout ensemble : 10 minutes. (même avec peu de connaissance sur le VBA )
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 17 sept. 2013 à 18:58
s'intéresser à l'utilisation de FormulaR1C1
jordane45
Messages postés37851Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 1 décembre 2023343 Modifié par jordane45 le 17/09/2013 à 19:15
Le formulaR1C1 n'incremente pas les variables dans la formule contrairement a autofil.
A voir ce que le demandeur souhaite. .
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 17 sept. 2013 à 19:20
Range("C2:C1000").FormulaR1C1 = Range("c1").FormulaR1C1
(exemple)
copiera, en modifiant les variables/adresses, la formule se trouvant en C1
jordane45
Messages postés37851Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 1 décembre 2023343 17 sept. 2013 à 19:26
Ah oui.
Je n'avais pas testé.
Ok. Autant pour moi.
:-)