Double Private worksheet
Bonjour
J'ai une erreur car j'ai l'impression qu'il ne peut pas exécuter 2 worksheet change sur un même onglet ?
J'ai une première maj pour le choix de l'agent et du type de travaux
Puis ma 2ème servirai à afficher les familles possibles en fonction du seteur et du type. Pour l'instant je cherche juste a afficher un texte basique pour valider cette partie du code.
L'idéal serait que lorsque le secteur est choisi, ainsi que le type, il mette la liste adéquate avec les bases de données dans les autres onglets
Voila le fichier
Merci d'avance
- Messages
- 1'025
- Excel
- 2016 FR // 365
- Inscrit
- 19/04/2019
- Emploi
- Étudiant en 5e année d'école d'Ingénieur
Bonjour JustInMagic,
Et bien, je ne comprend pas, pourquoi ne mets-tu pas tes codes à la suite ?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G12")) Is Nothing Then
Range("G14").Value = "Choisir un agent"
Range("G16").Value = "Choisir le type de demande"
Range("N28").Value = "Choisir le compte/OF associé à l'opération"
Select Case Target
Case Is = "P1N"
Range("$N$20").Value = "Excellent résultat !"
Case Is = "P1S"
Range("$N$20").Value = "Bon résultat"
Case Is = "P2N"
Range("$N$20").Value = "Résultat satisfaisant"
Case Is = "P2S"
Range("$N$20").Value = "Résultat insatisfaisant"
Case Is = "P3N"
Range("$N$20").Value = "Mauvais résultat"
Case Is = "P3S"
Range("$N$20").Value = "Résultat exécrable"
Case Else
Range("$N$20").Value = "Aucun résultat"
End Select
End If
End Sub
Et c'est normal que ça ne marche pas, Worksheet_Change est une procédure événementielle, elle ne peut s'exécuter qu'une fois donc !
J'ai un probème de range...
Mais j'ai réussi avec un ami en faisant un sub en change et l'autre en selection change
Maintenant le soucis est de remplacer l'appel du texte avec les niveaux par les tableaux sous forme de liste
Par exemple, lorsque je choisi P3S et confections PRM, il faut afficher dans famille sous forme de liste, les familles correspondantes à ces choix...
Voici mon code à jour
J'aimerai fusionner les selects, mais je sais pas trop comment faire, avec des & ? une imbrication l'une dans l'autre ?
Et après comment transformer les textes en cases de tableau comme on peut le faire sur excel de ce style "=P1S_BDD[[#Tout];[Avancement]]"
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$12" Then
Range("G14").Value = "Choisir un agent"
Range("G16").Value = "Choisir le type de demande"
Range("N28").Value = "Choisir le compte/OF associé à l'opération"
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim secteur As String
Dim famille As String
Dim typetravaux As String
Dim piece As String
secteur = Range("G12")
typetravaux = Range("G16")
Select Case secteur
Case Is = "P1N"
famille = Range("$G$12")
Case Is = "P1S"
famille = Range("$G$12")
Case Is = "P2N"
famille = Range("$G$12")
Case Is = "P2S"
famille = Range("$G$12")
Case Is = "P3N"
famille = Range("$G$12")
Case Is = "P3S"
famille = Range("$G$12")
Case Else
famille = "Aucun résultat"
End Select
Range("$N$20") = famille
Select Case typetravaux
Case Is = "Réparation PRM"
piece = Range("$G$16")
Case Is = "Confection PRM"
piece = Range("$G$16")
Case Is = "Réparation Outillage"
piece = Range("$G$16")
Case Is = "Confection Outillage"
piece = Range("$G$16")
Case Else
piece = "Aucun résultat"
End Select
Range("$N$21") = piece
End Sub