Private Sub Worksheet_Change

  • Initiateur de la discussion Initiateur de la discussion SOM58
  • 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 !

S

SOM58

Guest
Bonjour à tous

Dans cet extrait de classeur qui me sert à la gestion de kit (reception pour preparation et stockage puis livraison )je valide la reception ou la livraison des kits par un double clic en colonne L ,j'aimerais lorsque je valide la reception d'un kit(x) pour un stockage afficher "en cours' dans la colonne L correspondant à la ligne" livraison à"du N° de ce kit

exemple pour le KIT11(ligne8)validé "recu le" mettre "en cours" ligne 14 pour ce kit11
Merci à vous de votre collaboration
som58
 

Pièces jointes

Re : Private Sub Worksheet_Change

Bonjour,
Plutôt bizarre comme fonctionnement
Les noms de tes kits colonne F contiennent des espaces donc pas bon
J'ai inclu la suppression de ces espaces dans la macro, mais il est préférable 'et plus rationnel de les supprimmer à la saisie...mais comme on ne sait pas comment se fait cette saisie...
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Derlign As Long, cel As Range, x
'ActiveSheet.Unprotect
If Target.Count > 1 Or Target.Offset(0, -5) = "" Then Exit Sub
Derlign = [E65000].End(xlUp).Row
'----------------------------------------------------------------------
'suppression des espaces dans le nom du kit colonne F
'il faudra peut-être voir pour contrôler à la saisie plutôt qu'ici
For Each cel In Range("F4:F" & Derlign)
    cel = Trim(cel)
Next
'----------------------------------------------------------------------
   If Not Intersect(Target, Range("L4:L" & Derlign)) Is Nothing Then
        Target.Offset(0, 1) = Date
        Target = IIf(Target.Offset(0, -5) = "Livraison_à", "Livré le", "Reçu le")
        x = Application.Match(Target.Offset(0, -6), Range("F" & Target.Row + 1 & ":F" & Derlign), 0)
        If IsError(x) Then Exit Sub
        Range("L" & Target.Row + x) = "En cours"
   End If
'ActiveSheet.Protect

End Sub
A+
kjin
 
- 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
10
Affichages
781
Réponses
2
Affichages
1 K
M
Réponses
9
Affichages
2 K
macgillian
M
D
Réponses
4
Affichages
1 K
Retour