Menu

VBA - copier cellule avec variable dynamique

- - Dernière réponse : eriiic
Messages postés
22560
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 mars 2019
- 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,
Afficher la suite 

Votre réponse

1 réponse

Messages postés
22560
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 mars 2019
7272
0
Merci
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
Commenter la réponse de eriiic