Insertion ligne sous condition

  • Initiateur de la discussion Initiateur de la discussion Alghorn
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Alghorn

Guest
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.
 
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
 
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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
824
Réponses
4
Affichages
849
T
Réponses
4
Affichages
673
thomas95
T
N
Réponses
6
Affichages
2 K
Navillus
N
I
Réponses
3
Affichages
1 K
I
E
Réponses
4
Affichages
2 K
elisa05000
E
Retour