Copier/coller des lignes sous condition sans lignes vides

Bonjour,

Je profite de la renommée de ce site pour chercher une réponse à ma question.

Voilà j'ai une extraction SAP brute. J'ai créé une macro qui selon le cost center copie/Colle les lignes de l'extraction SAP vers un onglet (un onglet par cost center).

"SAP" est ma feuille d'extraction qui contient les données à répartir dans divers onglets. Ma condition " cost center" se trouve en Colonne B.

La macro tourne bien mais mon problèm est que les lignes se collent sur le même numéro de ligne que l'onglet SAP. Du coup je me retrouve avec des onglets où la 1ère ligne se trouve en A625!!

POurriez-vous m'aider à suprpimer ces lignes vides svp?

Merci beaucoup par avance.

Voici la code

Sub Button3_Click()

    Dim i As Long
    Dim KindOfUpdate As String

KindOfUpdate = MsgBox("Do you want to update file?", vbYesNo, "Update")

If KindOfUpdate = 6 Then

Worksheets("SAP").Activate
    For i = 2 To 10000
            If Cells(i, 2) = "CostCenter1" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter1").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter2" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter2").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter3" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter3").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter4" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter4").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter5" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter5").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter6" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter6").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter7" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter7").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter8" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter8").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter9" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter9").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            ElseIf Cells(i, 2) = "CostCenter10" Then
                Worksheets("SAP").Range("A" & i & ":N" & i).Copy
                Sheets("CostCenter10").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False
            End If
    Next i

End If

End Sub

Merci beaucoup

Bonjour et bienvenue

Merci de joindre un extrait de ton fichier.

Amicalement

Nad

Bonjour

A essayer

Sub Button3_Click()
Dim i As Long
  If MsgBox("Do you want to update file?", vbYesNo, "Update") = 6 Then
    With Worksheets("SAP")
      For i = 2 To .Range("B65536").End(xlUp).Row
        .Range("A" & i & ":N" & i).Copy
        With Sheets(.Cells(i, 2).Value)
          .Range("C" & .Range("C65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                                                                                  False, Transpose:=False
        End With
      Next i
    End With
    Application.CutCopyMode = False
  End If
End Sub
Rechercher des sujets similaires à "copier coller lignes condition vides"