Copier ligne vers autre feuille si donnée non existante

Bonjour à tous !

Je cherche à copier le contenu de la feuille2, vers ma feuille 1 (à partir de la ligne 2 sur feuille 2, vers ligne vide feuille 1)

Uniquement si la ligne n'existe pas déjà en page 1(controle realisé sur la colonne A, numero de contrat)

j'arrive a copier le contenu de la ligne, mais je n'arrive pas a mettre un critere de copie?

Pourriez vous m'aider svp ?

Bonjour

Essayez comme ceci :

Sub test()
Dim derLig As Long, i As Long, lig As Long
With Sheets("données à intégrer")
    derLig = .Cells(.Rows.Count, 1).End(xlUp).Row
    For i = 2 To derLig
        On Error Resume Next
        lig = Sheets("Logt Attribués 2021").Range("A2:A10000").Find(.Range("A" & i), LookIn:=xlValues, Lookat:=xlWhole).Row
        If lig = 0 Then
            .Range("A" & i & ":p" & i).Copy Sheets("Logt attribués 2021").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        End If
        lig = 0
    Next i
End With
End Sub

Cordialement

Alors, déjà pouce en l'air

Ca fonctionne. Merci beaucoup

Dans le cas, ou j'ai des lignes déjà presentes, et que le numero en colonne A est bien trouvé,

Si je veux compléter la ligne presente en 1ere page, avec les valeur Y et Z de la feuille 2, à reporter en Y et Z de la feuille 1,

je dois ajouter une condition au code dans ce style ? =>

On Error Resume Next
lig = Sheets("Logt Attribués 2021").Range("A2:A10000").Find(.Range("A" & i), LookIn:=xlValues, Lookat:=xlWhole).Row
If lig = 0 Then
.Range("A" & i & ":p" & i).Copy Sheets("Logt attribués 2021").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

Else
.Range("Y" & i & ":Z" & i).Copy Sheets("Logt attribués 2021").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

End If
lig = 0
Next i

A dispo

j'ai pensé a ca =>

Else
.Range("Q" & i & ":R" & i).Copy Sheets("Logt attribués 2021").Cells(Rows.Count, 17).End(xlUp).Offset(1, 0)

ou ca

Else

Worksheets("logt Attribués 2021").Range("Q" & i).Value = Worksheets("données à saisir").Range("Q" & i).Value

pour intégrer les valeurs de la colonne Q ,2eme page, vers Q 1ere page, si la ligne existe déjà ?

re

Vous parlez de Y, Z puis Q et R.

Si je comprends, lorsque la ligne est trouvée vous voulez compléter ces colonnes dans la feuille Logt depuis la feuille Données à intégrer ?

Si oui, est-ce que c'est systématique ou pas dès qu'une ligne existe dans la feuille Logt ?

Bonjour,

Oui j'ai cité les colonnes pour l'exemple. la méthode doit pouvoir s'adapter facilement quelque soit les colonnes à prendre?

Oui, le remplissage des colonnes sera systématique si la ligne est déjà présente.

Merci à vous

Bonjour

Pour les colonne Y et Z, modifier votre code comme ceci

Sub test()
Dim derLig As Long, i As Long, lig As Long
Dim Wslogt As Worksheet

Set Wslogt = Sheets("Logt Attribués 2021")

With Sheets("données à intégrer")
    derLig = .Cells(.Rows.Count, 1).End(xlUp).Row
    For i = 2 To derLig
        On Error Resume Next
        lig = Wslogt.Range("A2:A" & Wslogt.Range("A" & Rows.Count).End(xlUp).Row).Find(.Range("A" & i), LookIn:=xlValues, Lookat:=xlWhole).Row
        If lig = 0 Then
            .Range("A" & i & ":p" & i).Copy Wslogt.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Else:
            Wslogt.Range("Y" & lig & ":" & "Z" & lig) = .Range("Y" & i & ":Z" & i).Value
        End If
        lig = 0
    Next i
End With
End Sub

Cordialement

C'est exactement ce dont j'avais besoins ! merci beaucoup

Rechercher des sujets similaires à "copier ligne feuille donnee existante"