Copier ligne de feuil1 vers feuille 2

bonjour tout le monde

je viens d'ecrire une macro qui tourne bien sauf que rien ne se passe sur ma feuille synthese

cette macro consiste a copier les lignes de la feuille nouvelle disposition puis les coller sur la feuille synthese

lorsque la condition du "if " est remplie

de ce qui est de la condition du if il s'agit de copier une ligne si en colonne "C" sur la dite ligne j'ai soit le caractere "Oblig" ou le caractere "EMTN"

voici mon code :

Sub mamacro()
    Dim i As Long, j As Long, lastrow As Long
    Dim ws_nd As Worksheet
    Dim ws_S As Worksheet
    Set ws_nd = Worksheets("Nlle Dispo")
    Set ws_S = Worksheets("Synthèse")
    lastrow = ws_nd.Cells(Rows.Count, 1).End(xlUp).Row
    j = 0
    For i = 0 To lastrow
    If ws_nd.Cells(i + 3, "C").Text = "Oblig" _
    Or ws_nd.Cells(i + 3, "C").Text = "EMTN" Then
        ws_nd.Range("A" & i + 3 & ":I" & j + 3).Copy ws_S.Range("A" & i + 5)
    End If
    j = j + 1
    Next

End Sub

merci de votre aide

Bonjour

Il est toujours préférable d'avoir le fichier pour effectuer les tests.

Je vois une erreur dans cette partie :

If ws_nd.Cells(i + 3, "C").Text = "Oblig" _

Or ws_nd.Cells(i + 3, "C").Text = "EMTN" Then

Remplace "C" par 3

Amicalement

Nad

bonjour,

comme demandé j'ai joint un fichier contenant uniquement mon code et la colonne C de ma feuille ("nlle dispo)

merci de votre aide.

20classeur1.xlsm (17.03 Ko)

Bonjour,

Je ne sais pas du tout ce que tu veux faire, mais essaie le code ci-dessous, bien que je pense qu'un filtre élaboré serait beaucoup plus rapide :

Sub mamacro()
    Dim i As Long, j As Long, lastrow As Long
    Dim ws_nd As Worksheet
    Dim ws_S As Worksheet
    Set ws_nd = Worksheets("Nlle Dispo")
    Set ws_S = Worksheets("Synthèse")
    lastrow = ws_nd.Cells(Rows.Count, 3).End(xlUp).Row
    j = 0
    For i = 0 To lastrow
    If ws_nd.Cells(i + 3, "C").Text = "Oblig" _
    Or ws_nd.Cells(i + 3, "C").Text = "EMTN" Then
        ws_nd.Range("A" & i + 3 & ":I" & i + 3).Copy ws_S.Range("A" & j + 5)
        j = j + 1
    End If
    Next

End Sub

Je te laisse remarquer les différences...

@ Nad, re-bonsoir, la syntaxe :

Cells(i + 3, "C")

est également acceptée sous cette forme

Bonne soirée

merci ça fonctionne bien

Rechercher des sujets similaires à "copier ligne feuil1 feuille"