Boucle copier coller ligne suivante si colonne non vide

Bonjour,

Très débutante sur excel, je crée un fichier avec 2 macros. J'ai réussi la 1ère mais je bloque sur la 2ème.

1ère macro : Copie colle cellules et plages de cellules de feuille "fiche de situation" vers feuille "passeport professionnel" à partir de la 1ère ligne vide.

Le problème suivant qui se pose est que ce copier coller peut générer plusieurs lignes mais par pour toutes les colonnes : la date ne se copie logiquement qu'une fois dans la cellule A4 par exemple mais la colonne I va copier de I4 à I5.

Je souhaite copier coller par exemple la date (en réalité de A4 à H4) sur les lignes suivantes, tant que I4 n'est pas vide.

Je suis partie dans l'idée de faire une 2ème macro dans la feuille "passeport professionnel" avec While Wend mais je bloque.

Je vous remercie de votre aide.

Bonjour

Si j'ai bien compris ce que vous cherchez à faire, utilisez plutôt le code comme ceci :

Sub copier_coller_ligne_vide()
'
' copier_coller_ligne_vide Macro

ActiveWorkbook.Save

Dim maLigne As Long
With Sheets("passeport professionnel")
    If .Range("D4") <> "" Then
        maLigne = .Cells.Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
        'maLigne = .Range("D" & .Rows.Count).End(xlUp).Row + 1
    Else
        maLigne = 4
    End If
    Sheets("fiche de situation").Range("E6").Copy
    .Range("A" & maLigne).PasteSpecial Paste:=xlPasteValues
    Sheets("fiche de situation").Range("E4").Copy
    .Range("B" & maLigne).PasteSpecial Paste:=xlPasteValues
    Sheets("fiche de situation").Range("B15").Copy
    .Range("C" & maLigne).PasteSpecial Paste:=xlPasteValues
    Sheets("fiche de situation").Range("A25:E29").Copy
    .Range("D" & maLigne).PasteSpecial Paste:=xlPasteValues
    Sheets("fiche de situation").Range("A32:E36").Copy
    .Range("I" & maLigne).PasteSpecial Paste:=xlPasteValues

End With
End Sub

Si ok et terminé, merci de cloturer le fil en cliquant sur le petit v en haut à droite lors de votre réponse

Cordialement

bonjour,

Merci beaucoup pour votre réponse.

Je suis désolée mais ça ne marche pas.

J'ai créé (avec de l'aide) une 2ème macro :

Sub copier_coller_boucle()

Dim cel As Range

With Sheets("passeport professionnel")

For Each cel In .Range("I4", .Cells(Rows.Count, "I").End(xlUp))

If Not IsEmpty(cel) And IsEmpty(cel.Offset(0, -8)) Then cel.Offset(0, -8).Resize(1, 8) = .Range("A4:H4").Value

Next

End With

End Sub

Mais j'obtiens ceci : La macro copie uniquement les valeurs A4:H4 au lieu de copier les valeurs de la dernière ligne vide des colonnes A:H.

Merci de votre aide et désolée pour ma réponse tardive

Cordialement

capture

Re

Je suis désolée mais ça ne marche pas.

Pour moi cela fonctionne

Voyez votre fichier avec le code proposé et exécuter le sur ce fichier

Ensuite dites moi ce qui ne marche pas.

Cordialement

Bonjour,

Merci de votre retour.

Quand j'exécute la macro, les valeurs de la ligne A4 à H4 ne se dupliquent pas dans la ligne du dessous.

Je recherche à dupliquer les valeurs des colonnes A à H en fonction de la dernière ligne vide (fiches situations 1, 2 , 3 au fur et à mesure de leur création) et jusqu'à la dernière cellule remplie dans la colonne I.

J'espère être compréhensible dans mes explications.

bien cordialement

Rebonjour,

J'ai tenté sur la macro 2 et ça a l'air de marché en faisant ceci :

Sub copier_coller_boucle()

Dim cel As Range

With Sheets("passeport professionnel")

For Each cel In .Range("I4", .Cells(Rows.Count, "I").End(xlUp))

If Not IsEmpty(cel) And IsEmpty(cel.Offset(0, -8)) Then cel.Offset(0, -8).Resize(1, 8) = Range("A65536").End(xlUp).Resize(, 8).Value

Next

End With

End Sub

Donc je pense que c'est ok

Merci

Re

Ok. Je ne regarde plus votre demande.

Merci de votre retour

N'oubliez pas de cloturer vos fils en cliquant sur le petit v en haut à droite. Je cloture ce fil ci

Cordialement

Rechercher des sujets similaires à "boucle copier coller ligne suivante colonne vide"