Remplissement copie cellules colonnes remplies aléatoirement

Résolu/Fermé
Polorskitoch - 7 févr. 2014 à 16:43
 Polorskitoch - 9 févr. 2014 à 14:46
Bonjour à tous,

Encore une difficulté s'offre à moi, moi qui ne suis qu'un pauvre noob ayant commencer à apprendre le VBA il y a 3 jours. Mon problème est le suivant:


J'ai une colonne (admettons la colonne V) qui ressemble à cela (j'ai mis des crochets pour représenter les cellules):

[ ]
[ ]
[ ]
[ George ]
[ Marie ]
[ Anais ]
[ ]
[ ]
[ Eric ]
[ ]
[ ]
[ Michel ]


J'aimerais obtenir après lancement de la macro le résultat suivant:

[ George ]
[ George ]
[ George ]
[ George ]
[ George ]
[ George ]
[ Eric ]
[ Eric ]
[ Eric ]
[ Michel ]
[ Michel ]
[ Michel ]


En gros ça parcoure les cellules de la colonne, ça repère la première cellule pleine qu'il rencontre, en enregistre la valeur dans une variable.

Puis, ça recopie le contenu de la variable jusqu'au premier vide rencontré après l'ensemble de cellules pleines (d'où est issu le contenu de la variable).

Et ça recommence, et ainsi de suite jusqu'à avoir compléter tout la colonne.


Là ça va faire 2 heures que je planche dessus, je n'arrive pas à trouver -_-

A voir également:

2 réponses

cousinhub29 Messages postés 882 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 25 avril 2024 334
7 févr. 2014 à 20:54
Bonsoir,

si je comprends bien (mais ça, c'est pas donné...), tu ne veux pas garder "Marie" ni "Anais", vu qu'il n'y a pas de cellules vides au-dessus?

Si c'est bien cela, tu pourrais commencer par insérer une formule dans les cellules vides, style (dans la cellule V3) :

=V4

Puis remplacer les formules par les valeurs (copier/collage spécial "Valeurs"), et 1 fois toutes les cellules vides remplies, supprimer les cellules uniques, en commençant par le bas...

Ceci pourrait être l'algo, cependant, comme j'ai commencé par le dire, pas sûr que j'ai tout saisi....

bon courage
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
8 févr. 2014 à 02:24
Bonsoir,

en supposant que "Marie" et "Anais" soient un oubli :
Sub completer()
    Dim lig As Long, derlig As Long, nom As String
    derlig = Cells(Rows.Count, 1).End(xlUp).Row ' n° dernière ligne remplie de colonne 1 (A)
    For lig = derlig To 2 Step -1 ' boucle de la dernière ligne à la ligne 2
        If Cells(lig, 1) = "" Then
            Cells(lig, 1) = nom
        Else
            nom = Cells(lig, 1)
        End If
    Next lig
End Sub

ex : https://www.cjoint.com/?DBicxu7S1hu

eric
0
Merci à vous deux pour votre aide!

Ton code fait parfaitement l'affaire Eric, il m'a suffit seulement des quelques modifications pour que ça fasse ce que je voulais, merci encore!
0