Remplissage de colonne par macro

Bonjour,

Je demande de aide pour une macro me permettant de remplir une colonne d'un tableau grace a la cellule du dessus,

Pour plus d'explication voir mon fichier exemple

https://www.excel-pratique.com/~files/doc/Remplir.xls

Sur une plage de sélection remplir les cellules vide ceci que pour 1 colonne dans mon exemple la collonne A

Merci

Bonjour,

essaye cette macro :

Sub remplir()
'Macro par Dan pour Excelnovice - XL pratique le 27/10/08
Dim c As Range
Dim dsg As String
dsg = Range("A5")
For Each c In Range("A5:A13")
If IsEmpty(c) Then
c = dsg
Else: dsg = c
End If
Next c
End Sub

Amicalement

Dan

bonjour à tous,

autre version:

Dan, je coince toujours avec mes offset disgracieux !

Sub Remplir2()
Dim N 'As Long
Dim i As Integer
    N = WorksheetFunction.CountA(Range("b5:b13"))
           Range("a5").Activate
    For i = 1 To N - 1
                If ActiveCell.Offset(1, 0) = "" Then ActiveCell.Offset(1, 0) = ActiveCell
                ActiveCell.Offset(1, 0).Select
    Next i
End Sub

fichier:

https://www.excel-pratique.com/~files/doc/remplir.xls

Claude.

Merci

La je modifie a la main la plage de selection lorsque mon tableau evolue pour ne pas aller modifier dans le code la plage de selection j'aimerai avec un bouton pouvoir lui sélectionner la plage je ne trouve plus la syntaxe exacte

Auriez vous une solution?

Merci

re,

tu sélectionne ta plage colonne A

avec ce nouveau code;

Sub Remplir2()
Dim N 'As Long
Dim i As Integer
Dim Sel
Set Sel = Selection.Offset(0, 1)
    N = WorksheetFunction.CountA(Sel)
           Range("a5").Activate
    For i = 1 To N - 1
                If ActiveCell.Offset(1, 0) = "" Then ActiveCell.Offset(1, 0) = ActiveCell
                ActiveCell.Offset(1, 0).Select
    Next i
End Sub

Claude.

re

Pas besoin de sélectionner ta plage si tu nous dis d'où partent tes données à compléter et où elles finissent.

J'ai prit A5:A13 sur base de ton exemple.

Elles vont de quelle ligne à quelle ligne et sont-elles à compléter seulement en colonne A ?

A te relire

Dan

Bonjour nad dan

en fait cest aleatoire la fin de mon tableau suivant le projet c'est pour ca que aurais aime faire par une plage de selection

Re,

Compte tenu qu'il n'y a pas de raison pour avoir une donnée en colonne A sans une donnée en colonne B, la macro pourrait être la suivante :

Sub remplir()
'Macro par Dan pour Excelnovice - XL pratique le 27/10/08
Dim c As Range
Dim dsg As String
Dim lig As Integer
dsg = Range("A5")
lig = ActiveSheet.Range("B65536").End(xlUp).Row
For Each c In Range("A5:A" & lig)
If IsEmpty(c) Then
c = dsg
Else: dsg = c
End If
Next c
End Sub

Dès que B est complétée, tu peux activer la macro.

Amicalement

Dan

Edit Dan :

Ou essaye ceci avec une inputbox pour sélectionner la plage désirée :

Sub remplir()
'Macro par Dan pour Excelnovice - XL pratique le 27/10/08
Dim c As Range, plage as range
Dim dsg As String
Set Plage = Application.InputBox("Sélectionner une plage", "SÉLECTION", Type:=8)
dsg = Range("A5")
For Each c In Plage
If IsEmpty(c) Then
c = dsg
Else: dsg = c
End If
Next c
End Sub

AMicalement

Dan

Merci Nad-Dan

C'est exactement ce queje cherchais

Je vais pouvoir comparere ensuite mes valeurs entre ellles grace a la colonne A

Encore merci

Bojour,

une autre manière de faire :

Sub remplir_vides()
With Range("A5:A" & [B65000].End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
End With
End Sub
Rechercher des sujets similaires à "remplissage colonne macro"