Worksheet_SelectionChange(ByVal Target As Range)

Shinreih

XLDnaute Nouveau
Bonjour,

Dans une feuille appelé Bon de commande j'ai ce code qui s’exécute dès qu'on clique dans la feuille

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Sheets("BON DE COMMANDE").Unprotect "MDP"    
    If Target.Column = 6 And Target.Row >= 16 And Target.Row <= 44 Then
       temp = ""
     For Each c In Sheets(Sheets("BON DE COMMANDE").Range("K11").Value).Range("A12:A" & 1000)
      If InStr(temp, c.Value) = 0 Then temp = temp & c.Value & ","
      Next c
     Target.Validation.Delete
     Target.Validation.Add xlValidateList, Formula1:=Left(temp, Len(temp) - 1)
   End If
    
End Sub

Je souhaiterais que rien ne s’exécute si on ne clique pas dans les cellules F16 à F44 et si K11 =""
Comment faire?

Il ne me manque pas grand chose mais je bute.

J'en appelle aux dieux du VBA : please help!!!

Merci d'avance

Shinreih
 

camarchepas

XLDnaute Barbatruc
Re : Worksheet_SelectionChange(ByVal Target As Range)

Bonjour ,

Comme ceci peut être :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

   If Target.Column = 6 And Target.Row >= 16 And Target.Row <= 44 And Range("F11") <> "" Then
    Sheets("BON DE COMMANDE").Unprotect "MDP"
    temp = ""
      For Each c In Sheets(Sheets("BON DE COMMANDE").Range("K11").Value).Range("A12:A" & 1000)
        If InStr(temp, c.Value) = 0 Then temp = temp & c.Value & ","
      Next c
    Target.Validation.Delete
    Target.Validation.Add xlValidateList, Formula1:=Left(temp, Len(temp) - 1)
    Sheets("BON DE COMMANDE").Protect "MDP"
   End If
     
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 317
Messages
2 087 189
Membres
103 493
dernier inscrit
Vidal Salvador