VBA - copier cellule avec variable dynamique

Fermé
pilipili - 12 mars 2019 à 18:04
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 12 mars 2019 à 18:19
Bonjour à tous,
Actuellement novice en VBA, je souhaiterais coller des données dans des cellules vides. Je m'explique.
Je possède un tableau (A14 - B5000). Toutes les cellules de la colonne A sont remplies, ce qui n'est pas le cas de la colonne B. En effet, j'ai certaines cellules qui possèdent des montants/textes : je souhaiterais copier la cellule pleine puis la coller dans toutes les cellules suivantes vides et ce jusqu'à la prochaine cellule pleine où de nouveau la cellule est copiée puis collée dans les cellules suivantes (seul le montant/texte m'importe et non pas le style de la cellule).
Ex : B14 est remplie, la macro copie B14 et la colle dans les cellule B15 à B250; puis sélectionne B251, copie et colle la valeur de B252 à B260 et ainsi de suite jusqu'à B5000. Je ne connais pas à l'avance le nombre de fois que le copier/coller doit avoir lieu.
Est-il possible de faire une boucle avec une variable ? Ce type de macro est-il possible?
Merci d'avance pour vos réponses,
Bonne soirée,
A voir également:

1 réponse

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
12 mars 2019 à 18:19
Bonjour,

je suis partir du principe que B5000 n'était pas fixe et que tu voulais jusqu'à la dernière ligne de A :
Sub completer()
    Dim datas, lig As Long, v
    datas = Range([A14], Cells(Rows.Count, 1).End(xlUp)).Offset(, 1)
    For lig = 1 To UBound(datas)
        If IsEmpty(datas(lig, 1)) Then
            datas(lig, 1) = v
        Else
            v = datas(lig, 1)
        End If
    Next lig
    [B14].Resize(UBound(datas)) = datas
End Sub

eric
0