Recopie vers le bas

Bonjour à tous,

J'ai un tableau excel qui comporte habituellement environ 3500 lignes

pour simplifier j'ai réduit le nombre de lignes...

Y aurait il moyen par une macro recopier les prénoms jusqu'au prénom différent... et ainsi de suite pour s'arrêter en fin de tableau.

au début de la macro le curseur serait positionné bien entendu sur le premier prénom.

J'ai tenté de le faire par enregistrement mais malheureusement il faudrait à chaque fois modifier le prénom

Merci par avance pour votre aide

9test.xlsx (10.35 Ko)

Bonjour,

Voilà ma proposition :

Sub RecopiePrenom()

Dim DerLig As Long, Lig As Long, Prenom As String

With ActiveSheet
    DerLig = .Range("B" & Rows.Count).End(xlUp).Row 'Repérer la dernière ligne
    For Lig = 1 To DerLig 'Boucle sur les lignes
        If IsEmpty(.Cells(Lig, 1)) Then .Cells(Lig, 1) = Prenom Else Prenom = .Cells(Lig, 1)
    Next Lig
End With

End Sub

Il suffit juste d'être dans la bonne feuille, ou alors de remplacer ActiveSheet par Sheets("LeNomDeLaFeuilleConcernée")

Bonjour Pedro

Merci beaucoup pour ta proposition qui fonctionne impeccablement bien

je vais essayer de comprendre le code

merci encore

bonne soirée

Si ça peut t'aider, voilà le code davantage commenté :

Sub RecopiePrenom()

Dim DerLig As Long, Lig As Long, Prenom As String 'Déclaration des variables qui seront utilisées

With ActiveSheet 'Les objets qui commencent par un "." font référence à la feuille active 
    DerLig = .Range("B" & Rows.Count).End(xlUp).Row 'Repérer la dernière ligne
    For Lig = 1 To DerLig 'Boucle sur les lignes
        If IsEmpty(.Cells(Lig, 1)) Then 'Si la cellule est vide, alors
              .Cells(Lig, 1) = Prenom 'On lui affecte la valeur stockée dans la variable Prenom
        Else : Prenom = .Cells(Lig, 1) 'Sinon on stocke la nouvelle valeur dans la variable Prenom
        End If 'Fin d'instruction SI
    Next Lig 'Passer à la ligne suivante
End With 'Fin d'instruction AVEC

End Sub
Rechercher des sujets similaires à "recopie bas"