VBA - Copier coller Boucle .Count

Bonjour à tous,

Il y a quelques jours et grâce à l'aide Frédéric38, j'ai écris ma première boucle pour supprimer une ligne si 2 conditions étaient réunies sur cette dite ligne.

Aujourd'hui, je souhaite faire sensiblement la même chose mais en copiant d'une feuille à l'autre certaines cellules de ces lignes qui respectent les deux conditions.

'Vérifie que le prénom et l'année sont bien sélectionnées
If Sheets("Sommaire").Range("f19").Value <> "" And Sheets("Sommaire").Range("f20").Value <> "" Then

    cnt = Application.WorksheetFunction.CountA(OS.Range("a:a"))
    var1 = OB.Range("F19").Value 'Année
    var2 = OB.Range("F20").Value 'Mois

    For i = cnt To 2 Step -1
    If OS.Range("W" & i).Value = var1 And OS.Range("X" & i) = var2 Then

        'RechercheV sur le nom pour trouver l'identifiant sur la feuille MDPrenom

        OS.Cells(i, 17).Copy
        EXP.Cells(LI + j, 2).PasteSpecial xlValues 'Operationnel
        j = j + 1

        EXP.Cells(LI + j, 3) = "BAU" '

        OS.Cells(i, 6).Copy
        EXP.Cells(LI + j, 5).PasteSpecial xlValues 'Données

        'RechercheV sur pays

        'RechercheV sur catégorie

        EXP.Cells(LI + j, 8) = "1" '

        OS.Cells(i, 10).Copy
        EXP.Cells(LI + j, 9).PasteSpecial xlValues

        'RechercheV sur Code BW

        EXP.Cells(LI + j, 11) = "" 'AED

        OS.Cells(i, 19).Copy
        EXP.Cells(LI + j, 12).PasteSpecial xlValues 'Operationnel 2

        OS.Cells(i, 8).Copy
        EXP.Cells(LI + j, 13).PasteSpecial xlValues 'Dossier

        'Extraire le mois
        OS.Cells(i, 20).Copy ' Start Month
        EXP.Cells(LI + j, 16).PasteSpecial xlValues 'End Month

        'Extraire l'année
        OS.Cells(i, 20).Copy 'Start Year
        EXP.Cells(LI + j, 15).PasteSpecial xlValues

        'Extraire le mois
        OS.Cells(i, 21).Copy
        EXP.Cells(LI + j, 16).PasteSpecial xlValues 'End Month

        'Extraire l'année
        OS.Cells(i, 21).Copy
        EXP.Cells(LI + j, 17).PasteSpecial xlValues 'End Year

        EXP.Cells(LI + j, 18) = "EUR" 'Monnaie

        OS.Cells(i, 14).Copy
        EXP.Cells(LI + j, 19).PasteSpecial xlValues 'Montant1

        OS.Cells(i, 15).Copy
        EXP.Cells(LI + j, 20).PasteSpecial xlValues 'Montant2

        EXP.Cells(LI + j, 21) = "1" 'Qunatity

        EXP.Cells(LI + j, 22) = "Unit" 'Unit

        EXP.Cells(LI + j, 33) = "Closed" 'Status

        OS.Cells(i, 25).Copy
        EXP.Cells(LI + j, 34).PasteSpecial xlValues 'Commentaire

    End If
    Next

Mon code fonctionne sur toutes les lignes, mais part de la dernière pour remonter à la première qui respect les deux conditions.

Je suppose que cela vient de la manière dont est formulé le Count et le if

 cnt = Application.WorksheetFunction.CountA(OS.Range("a:a"))
    var1 = OB.Range("F19").Value 'Année
    var2 = OB.Range("F20").Value 'Mois

    For i = cnt To 2 Step -1

Quel moyen ai-je pour inverser cela?

De même, l'incrémentation au collage est décallé d'une cellule ! Je ne comprends pas pourquoi !?

Merci de votre aide !

Jay

Rechercher des sujets similaires à "vba copier coller boucle count"