Bonjour
J'ai un tableau qui comporte en colonne "A" une liste d'articles.
J'ai une formule en colonne "B" ligne "1" que je souhaite recopier avec une macro tant que la colonne "A" n'est pas vide.
D'avance merci pour votre aide.
StSym
Bonjour
J'ai un tableau qui comporte en colonne "A" une liste d'articles.
J'ai une formule en colonne "B" ligne "1" que je souhaite recopier avec une macro tant que la colonne "A" n'est pas vide.
D'avance merci pour votre aide.
StSym
bonjour,
- le premier code suppose que B1 est hors liste ou tableau
il fait une copie de la formule contenue dans B1.
les enregistrements commencent en ligne 2 A2 B2
-le second suppose que b1 est une cellule du première enregistrement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub Macro1() 'la formule est en cellule B1 'les enregistrements commencent en ligne 2 ligne = Range("a2").End(xlDown).Row 'renvoie la dernière ligne occupée Range("b2").Select 'positionnement dans première cellule devant recevoir la formule b1 For i = 2 To ligne Range("b1").Copy 'la formule à copier ActiveSheet.Paste 'colle la formule dans la cellule b2 , b3 ,.....b ligne ActiveCell.Offset(1, 0).Select 'incrémente d'une ligne vers le bas Next i End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Macro2() 'la formule est en cellule B1 'les enregistrements commencent en ligne 1 ligne = Range("a1").End(xlDown).Row 'renvoie la dernière ligne occupée Range("b1").Select 'positionnement dans première cellule devant recevoir la formule b1 For i = 1 To ligne ActiveCell.FormulaR1C1 = "=RC[-1]" ActiveCell.Offset(1, 0).Select 'incrémente d'une ligne vers le bas Next i End Sub
cordialement.
Bonjour,
Deux autres méthodes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub Test1() Dim DerLig As Long DerLig = Range("A" & Rows.Count).End(xlUp).Row Range("B1").Copy ActiveSheet.Paste Range("B1:B" & DerLig) Application.CutCopyMode = False End SubCordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub Test2() Dim DerLig As Long DerLig = Range("A" & Rows.Count).End(xlUp).Row Range("B1").AutoFill Destination:=Range("B1:B" & DerLig), Type:=xlFillDefault End Sub
Bonjour nibledispo et gFZT82
Merci à vous deux pour vos réponses et vos codes qui
fonctionnent tous.
Cordialement
StSym
Partager