Bonjour à tous,
Dans le cadre de ma formation BTS assistant de gestion, j'ai comme projet la création d'un fichier litige.
Sur la première feuille LITIGE je note toutes les informations reçus et je souhaiterai avoir une case à cocher (ou un X à mettre) qui transfert les informations de la ligne sur la feuille TECHNIQUE (avec si possible indiquer la date du transfert dans la colonne "reçu").
Quelqu'un a déjà posé la même problématique sur ce forum et a obtenu le code ci-dessous :
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [F:F]) Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
If Target.Cells.Count > 1 Then Application.Undo: GoTo 1 'interdiction sélection d'une plage
If Application.CountA([A1:E1].Offset(Target.Row - 1)) < 5 _
Then Target = "" 'si ligne incomplète aucun transfert
If IsEmpty(Target) Then 'si x effacé
Sheets("AA").Rows(Application.Match(1 * Target.Offset(0, 1), _
Sheets("AA").Range("D"), 0)).Delete 'suppression de la ligne en feuille "AA"
Target.Offset(0, 1) = "" 'effacement date/heure du transfert colonne G
Range(Target.Offset(0, -5), Target).Interior.ColorIndex = 0 'effacement couleur
Else 'si x entré
Target = "X"
If IsEmpty(Target.Offset(0, 1)) Then
Target.Offset(0, 1) = Now 'Date/heure du transfert colonne G
Range(Target.Offset(0, -5), Target).Interior.ColorIndex = 36 'mise en couleur
With Sheets("AA").Range("A65536").End(xlUp) 'dernière cellule colonne A
.Offset(1) = Target.Offset(0, -5) 'transfert nom
.Offset(1, 1) = Target.Offset(0, -4) 'transfert prénom
.Offset(1, 2) = Target.Offset(0, -2) 'transfert n°dossier
.Offset(1, 3) = Target.Offset(0, 1) 'transfert date/heure du transfert
Sheets("AA").Range("A265536").Sort Key1:=Sheets("AA").Range("A1"), Order1:=xlAscending 'tri croissant
End With
End If
End If
1 Application.EnableEvents = True
End Sub
J'ai voulu adapté ce code à mon fichier mais je ne sais pas où mettre le nom des feuilles ni des cellules.
En PJ mon fichier.
Merci d'avance pour votre aide précieuse !!
Dans le cadre de ma formation BTS assistant de gestion, j'ai comme projet la création d'un fichier litige.
Sur la première feuille LITIGE je note toutes les informations reçus et je souhaiterai avoir une case à cocher (ou un X à mettre) qui transfert les informations de la ligne sur la feuille TECHNIQUE (avec si possible indiquer la date du transfert dans la colonne "reçu").
Quelqu'un a déjà posé la même problématique sur ce forum et a obtenu le code ci-dessous :
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [F:F]) Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
If Target.Cells.Count > 1 Then Application.Undo: GoTo 1 'interdiction sélection d'une plage
If Application.CountA([A1:E1].Offset(Target.Row - 1)) < 5 _
Then Target = "" 'si ligne incomplète aucun transfert
If IsEmpty(Target) Then 'si x effacé
Sheets("AA").Rows(Application.Match(1 * Target.Offset(0, 1), _
Sheets("AA").Range("D"), 0)).Delete 'suppression de la ligne en feuille "AA"
Target.Offset(0, 1) = "" 'effacement date/heure du transfert colonne G
Range(Target.Offset(0, -5), Target).Interior.ColorIndex = 0 'effacement couleur
Else 'si x entré
Target = "X"
If IsEmpty(Target.Offset(0, 1)) Then
Target.Offset(0, 1) = Now 'Date/heure du transfert colonne G
Range(Target.Offset(0, -5), Target).Interior.ColorIndex = 36 'mise en couleur
With Sheets("AA").Range("A65536").End(xlUp) 'dernière cellule colonne A
.Offset(1) = Target.Offset(0, -5) 'transfert nom
.Offset(1, 1) = Target.Offset(0, -4) 'transfert prénom
.Offset(1, 2) = Target.Offset(0, -2) 'transfert n°dossier
.Offset(1, 3) = Target.Offset(0, 1) 'transfert date/heure du transfert
Sheets("AA").Range("A265536").Sort Key1:=Sheets("AA").Range("A1"), Order1:=xlAscending 'tri croissant
End With
End If
End If
1 Application.EnableEvents = True
End Sub
J'ai voulu adapté ce code à mon fichier mais je ne sais pas où mettre le nom des feuilles ni des cellules.
En PJ mon fichier.
Merci d'avance pour votre aide précieuse !!