Copier une ligne en fonction de la valeur d'une cellule

Fermé
Vdel - 2 juil. 2019 à 22:40
 Vdel - 3 juil. 2019 à 11:37
Bonjour,

Malgré mes recherches. Je n'ai pas trouvé ce que je voulais et vous sollicite donc aujourd'hui.

Voici mon problème :
Je souhaiterais copier les lignes de ma feuille 1 sur la feuille 2 à chaque fois que la valeur "x" apparaît dans la colonne A de la feuille 1.

Je suis débutant en VBA et sèche un peu...

Merci par avance de votre aide

Configuration: Android / Opera Next 52.3.2517.140547

3 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
Modifié le 3 juil. 2019 à 08:35
Bonjour,

Est-ce bien une copie de la ligne comportant un "x" en colonne A ou bien déplacer cette ligne dans la feuille 2, dans ce cas elle serait supprimée de la feuille 1?

En attendant voici un exemple avec la copie
https://mon-partage.fr/f/0d9yd7ss/

le code utilisé:
Option Compare Text
Option Explicit

Sub Recopie()
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig_f1 As Long, Derlig_f2 As Long, DerCol_f1 As Long
    Dim i As Long
    
    Application.ScreenUpdating = False
    Set f1 = Sheets("Feuil1")
    Set f2 = Sheets("Feuil2")
    
    DerLig_f1 = f1.[A100000].End(xlUp).Row
    DerCol_f1 = [xfd1].End(xlToLeft).Column
    Derlig_f2 = f2.[A10000].End(xlUp).Row + 1
    For i = 1 To DerLig_f1
        If f1.Cells(i, "A") = "x" Then
            f1.Range(Cells(i, "B"), Cells(i, DerCol_f1)).Copy Destination:=f2.Cells(Derlig_f2, "A")
            Derlig_f2 = Derlig_f2 + 1
        End If
    Next i
    
    Set f1 = Nothing
    Set f2 = Nothing
End Sub


Cdlt
1