Résolu XL pour MAC Problème macro référence

Micka2305

XLDnaute Nouveau
Bonsoir, je viens vers vous car je suis en train d'essayer de créer un classeur de gestion de stock personnalisé.
Grace à plusieurs recherche sur ce site j'ai bien avancer.

Seulement voilà, je voudrais sur la page "bon de livraison" entrée une valeur en K29 qui :

Si déjà existante dans la colonne code (C13:C52) et si existante page "stock" soit en colonne b soit en colonne c soit les deux ajoute +1 à la quantité livré sur la page "bon de livraison".
Si non existante dans la colonne code (C13:C52) mais existante page "stock" soit en colonne b soit en colonne c soit les deux alors entrer la valeur k29 en C (cellule vide la plus proche) et agrémenté la quantité livré correspondante +1.
Si non existante dans la colonne code (C13:C52) et non existante page "stock" soit en colonne b soit en colonne c soit les deux alors MsgBox "créer d'abord la nouvelle référence"

J'ai mal à la tête rien que d'avoir écris tout ça...
Donc par avance un énorme merci.

ps: je travaille sur mac Sierra
 
Ce fil a été résolu! Aller à la solution…
Dernière édition:

laurent3372

XLDnaute Occasionnel
Supporter XLD
Bonjour,

J'ai quelque peu arrangé le code qui fonctionne maintenant.
VB:
Private Sub Worksheet_Change(ByVal target As Range)
    Dim b As Range, bb As Boolean
    Dim c As Range, bc As Boolean
    Dim d As Range, bd As Boolean
    
    If target.Address = "$K$29" Then
        Set b = Columns(3).Find(target.Value, LookIn:=xlValues, lookat:=xlWhole)
        With Sheets("stock")
            .Unprotect ""
            Set c = .Columns(2).Find(target.Value, LookIn:=xlValues, lookat:=xlWhole)
            Set d = .Columns(3).Find(target.Value, LookIn:=xlValues, lookat:=xlWhole)
        End With
        
        bb = Not b Is Nothing       'Vrai si trouvé
        bc = Not c Is Nothing
        bd = Not d Is Nothing
                                  
        If bb Then                   'Existe dans le bon de livraison (Existe forcément dans le stock)
            b.Offset(, 2) = b.Offset(, 2) + 1
            target.MergeArea.ClearContents
            End If
              
        If Not bb And (bc Or bd) Then   'N'existe pas dans le bon de livraison, mais existe dans le stock
            Set c = Cells(Rows.Count, 3).End(xlUp).Offset(1) 'Première ligne vide
            If c.Row > 52 Then
                MsgBox ("Vous avez saisi le nombre d'articles maximum!")
                Exit Sub
            End If
            c.Value = target.Value
            target.MergeArea.ClearContents
        End If

        If Not bb And Not bc And Not bd Then
            MsgBox ("La rŽfŽrence que vous souhaitez ajouter ne fait pas partie du stock. Veuillez d'abord la creer dans le stock. Merci ")
        End If
        
        target.Select           'Pour saisir la référence suivante
                
       End If
      
 End Sub
Cordialement,
--
LR
 
Ce message a été identifié comme étant une solution!

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas