Onglet avec récap de tous les autres onglets
Bonjour a tous,
Dans le cadre d'un suivi d'entretien de véhicules, j'ai crée un doc Excel contenant 1 onglet par vehicule. La personne constatant la panne remplira une ligne dans l'onglet prévu, et sélectionnera "a traiter" dans le volet déroulant de fin de ligne. A ce moment là je souhaite que cette ligne soit visible sur la premiere feuille nommée "Fiche récap" avec le nom du véhicule dans la premiere colonne.
Les personnes en charges des reparations/commandes, effectuerons les modif sur les lignes de la fiche récap. Je souhaite que ces modif se fassent egalement automatiquement sur la feuille spécifique à l'engin.
De plus sur la fiche récap, lorsque le menu déroulant indiquera "en cours", la ligne devra rester visible sur la fiche récap, mais si l'on indique "cloturé" elle devra disparaire de le fiche récap.
En PJ le doc pour plus de clarté.
Merci d'avance
Bonjour Steph, bonjour le forum,
Les deux événementielles ci-dessous font le job mais les valeurs éditées dans l'onglet FICHE RECAP sont reportées dans la dernière ligne éditée de l'onglet du véhicule. À vérifier si ça te convient.
Le code à placer dans le composant Thisforbook qui permet re copier la ligne "A traiter" dans l'onglet FICHE RECAP :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'au changement dans tous les onglets du classseur
Dim OF As Worksheet 'déclare la variabe OF (Onglet Fiche Recap)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
If Sh.Name = "FICHE RECAP" Then Exit Sub 'si le changement a lieu dans l'onglet "FICHE RECAP", sort de la procédure
If Target.Column <> 8 Then Exit Sub 'si le changement a lieu ailleurs que dans la colonne 8, sort de la procédure
Application.EnableEvents = False
Set OF = Worksheets("FICHE RECAP") 'définit l'onglet OF
'définit la cellule de destination DEST (A2 si A2 est vide, sinon la première cellule vide de la colonne A de l'onglet OF)
Set DEST = IIf(OF.Range("A2").Value = "", OF.Range("A2"), OF.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
'si la cible vaut "A traiter" récupère dans DEST redimensionnée les valeurs de la ligne de la cible
If Target.Value = "A traiter" Then DEST.Resize(1, 8).Value = Sh.Cells(Target.Row, 1).Resize(1, 8).Value
Application.EnableEvents = True
End SubLe code à placer dans le composant Feuil1 (FICHE RECAP), qui renvoie les données et supprime la ligne quand Cloturé :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'au changement dans tous les onglets du classseur
Dim OF As Worksheet 'déclare la variabe OF (Onglet Fiche Recap)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
If Sh.Name = "FICHE RECAP" Then Exit Sub 'si le changement a lieu dans l'onglet "FICHE RECAP", sort de la procédure
If Target.Column <> 8 Then Exit Sub 'si le changement a lieu ailleurs que dans la colonne 8, sort de la procédure
Application.EnableEvents = False
Set OF = Worksheets("FICHE RECAP") 'définit l'onglet OF
'définit la cellule de destination DEST (A2 si A2 est vide, sinon la première cellule vide de la colonne A de l'onglet OF)
Set DEST = IIf(OF.Range("A2").Value = "", OF.Range("A2"), OF.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
'si la cible vaut "A traiter" récupère dans DEST redimensionnée les valeurs de la ligne de la cible
If Target.Value = "A traiter" Then DEST.Resize(1, 8).Value = Sh.Cells(Target.Row, 1).Resize(1, 8).Value
Application.EnableEvents = True
End SubLe fichier :