Insertion ligne sous condition

Alghorn

XLDnaute Junior
Bonjour Tous

J'ai eu beau chercher sur le forum, je n'ai malheureusement rien trouvé qui pourrai correspondre à ce que je recherche.

Mon problème est tout simple, je m'explique :
Dans la feuil1, j'ai un certain nombre de donnée
col A : statut
col B : reference

Dans la feuil2 j'ai toutes mes références.

Si dans la feuil1, le statut est à OK et que la ref n'existe pas dans la feuil2, alors il m'insère une ligne avec la ref manquante.

C'est bête mais je bute la dessus :-(

Merci pour votre aide.
 

youky(BJ)

XLDnaute Barbatruc
Bonjour,
Un fichier aurait été bien. J'ai fait comme j'ai compris
Feuil1 ou Feuil2 sont les CodeName des onglets et non les noms donnés.
Faire un click droit du bouton de souris sur l'onglet Feuil1 >Visualiser le code et copier la macro.
Bruno
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Target.Value = "OK" Then
lig = Application.Match(Target.Offset(0, 1), Feuil2.[B:B], 0)
If IsNumeric(lig) Then Exit Sub
Feuil2.Cells(Feuil2.[B65000].End(3).Row + 1, 2) = Target.Offset(0, 1)
End If
End Sub
 

Alghorn

XLDnaute Junior
c'est encore moi !
Du coup j'ai fait un fichier simple puisqu'au final les colonnes ne seront pas tout à fait les même et c'est un peu moins simple.
J'ai préciser dans la feuil2 ce que je cherche à faire.

Merci encore pour votre aide.
 

Pièces jointes

  • TEST TRA.xlsm
    601.9 KB · Affichages: 25

youky(BJ)

XLDnaute Barbatruc
Désolé d'être tardif mais avec les petits enfants dans les pattes l'ordi c'est dur.....
Je pense que cela doit répondre à la demande.
Bruno
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
If Target = "" Then Exit Sub
If Target.Offset(0, -2).Value = "" Then Exit Sub
mydate = "01/01/2018"
'mydate="01/01/" & year(date)+1'pour d'année en année
If Target.Offset(0, -2).Value <= CDate(mydate) Then
lig = Application.Match(Target.Value, Feuil1.[E:E], 0)
If IsNumeric(lig) Then Exit Sub
lig = Target.Row
With Feuil1
bas = .[E65000].End(3).Row + 1
.Cells(bas, 5) = Cells(lig, 7)
.Cells(bas, 4) = Cells(lig, 3)
.Cells(bas, "S") = Cells(lig, 4)
.Cells(bas, "T") = Cells(lig, 6)
.Cells(bas, "E") = Cells(lig, 7)
.Cells(bas, "X") = Cells(lig, "H")
.Cells(bas, "U") = Cells(lig, "I")
End With
End If
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 322
Messages
2 087 278
Membres
103 507
dernier inscrit
tapis23