Copier vers le bas une ligne de formule tant que valeur
lebowsky
-
17 sept. 2013 à 08:43
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024
-
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.
A voir également:
Copier cellule vba
Transformer formule en valeur excel vba - Meilleures réponses
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024344 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 ?
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 )