Recopier vers le bas en VBA

sonskriverez

XLDnaute Occasionnel
Bsr le Forum

Je voudrais a partir d'une cellule active d'une colonne pouvoir la recopier vers le bas de la même colonne.

exemple : si ma cellule active est A21 et que j'ai des datas j'usqu'en B50, recopier le contenu de A21 jusqu'en A50.

bien sur c'est un exemple et ma cellule active n'est pas toujours la même

Merci de votre aide
 

JAcQUOT

XLDnaute Nouveau
Re : Recopier vers le bas en VBA

Bsr le Forum

Je voudrais a partir d'une cellule active d'une colonne pouvoir la recopier vers le bas de la même colonne.

exemple : si ma cellule active est A21 et que j'ai des datas j'usqu'en B50, recopier le contenu de A21 jusqu'en A50.

bien sur c'est un exemple et ma cellule active n'est pas toujours la même

Merci de votre aide

Bonsoir à tous,

Pas trés clair comme demande !

Néanmoins un exemple :de la colonne B21 VERS A21

Code:
Option Explicit

Sub COPIE()
Dim I As Long
For I = 21 To 50
 Cells(I, 2).Copy Cells(I, 1)
Next I
End Sub

bonne soirée
 

Paf

XLDnaute Barbatruc
Re : Recopier vers le bas en VBA

Bonsoir à tous

Ce que j'ai compris

Code:
Sub sonskriverez()
Dim DerLig
With ActiveCell 
    DerLig = Range("B" & Rows.Count).End(xlUp).Row ' derniere ligne de la colonne B
    Range(Cells(.Row + 1, .Column), Cells(DerLig, .Column)).Value = .Value 
End With
End Sub

après détermination de la dernière ligne de la colonne B, on copie la valeur de la cellule active dans sa colonne jusqu'au N) de ligne déterminé pour la colonne B.

Que la cellule active soit en A ou dans n'importe quelle colonne

A+
 

job75

XLDnaute Barbatruc
Re : Recopier vers le bas en VBA

Bonsoir sonskriverez, JacQUOT, Paf,

Pour moi la demande est claire :

Code:
Sub Recopie()
Dim dercel As Range
Set dercel = Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious)
If dercel Is Nothing Then Exit Sub
If ActiveCell.Row < dercel.Row Then _
  ActiveCell.AutoFill ActiveCell.Resize(dercel.Row - ActiveCell.Row + 1)
End Sub
Bonne fin de soirée et A+
 

Staple1600

XLDnaute Barbatruc
Re : Recopier vers le bas en VBA

Bonsoir à tous


Une variante (avec FillDown équivalent de CTRL+B) et bien sur une endive;)
job75 ;), je me suis permis d'emprunter un peu de ton code.
Code:
Sub Variante()
Dim dercel As Range
Set dercel = Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious)
If dercel Is Nothing Then Exit Sub
    With ActiveCell
        If .Row < dercel.Row Then
        .Resize(dercel.Row - .Row + 1).FillDown
        End If
    End With
End Sub

Et pour simplifier l'écriture tout en se compliquant la relecture ;)
Code:
Sub VarianteII()
Dim dercel As Range: Set dercel = Cells.Find("*", , -4123, , 1, 2)
If dercel Is Nothing Then Exit Sub
With ActiveCell
If .Row < dercel.Row Then
.Resize(dercel.Row - .Row + 1).FillDown
End If
End With
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recopier vers le bas en VBA

Bonsoir Jean-Marie :)

Tu peux te permettre, d'autant que je ne connaissais pas FillDown.

La différence : AutoFill incrémente un texte comme X1 en X2 X3 X4 etc... Pas FillDown.

Il serait bien de savoir ce que notre ami cherche à recopier, probablement des formules je pense.

Bonne nuit à tous.
 

Staple1600

XLDnaute Barbatruc
Re : Recopier vers le bas en VBA

Re

job75:
Une autre variante pas la voie du Remplissage mais qui ne remplit totalement son rôle.;)
(X1,X2 -> OK, Formules -> OK, Nombres: pas d'incrémentation -> PAS OK )
Code:
Sub VarianteIII()
Dim dercel As Range: Set dercel = Cells.Find("*", , -4123, , 1, 2)
If dercel Is Nothing Then Exit Sub
With ActiveCell
    If .Row < dercel.Row Then
    .Resize(dercel.Row - .Row + 1).DataSeries 2, 4, , False
    End If
End With
End Sub
PS: AutoFill n'incrémente pas non plus les nombres
Personnellement sur une petite plage de cellules, je me sers du raccourci clavier: CTRL+B plus rapide qu'une macro à rédiger puis copier dans un module etc...
Ou de la souris selon les cas (sans négliger la recopie avec les options offertes par le clic-droit ;) )
recopie.png
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
330

Statistiques des forums

Discussions
312 113
Messages
2 085 420
Membres
102 886
dernier inscrit
eurlece