Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Afficher liste validation sous condition...

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Le souhaiterais votre aide à l'écriture d'une macro, afin afficher ou non une liste de validation...

Voir fichier joint;

Je vous remercie, par avance, pour le temps que vous voudrez bien vouloir m'accoder.

Bien à vous,
Christian
 

Pièces jointes

  • Liste Validation Affichée Sous Condition V01.zip
    44.6 KB · Affichages: 35

JCGL

XLDnaute Barbatruc
Re : Afficher liste validation sous condition...

Bonjour à tous,
Salut Christian,
Salut Rachid,

VB:
Sub Test()
    On Error Resume Next
    Columns(8).SpecialCells(xlCellTypeAllValidation).Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=if($E2>42000,Liste,"""")"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With
    Range("H2").Select
End Sub

A+ à tous
 

R@chid

XLDnaute Barbatruc
Re : Afficher liste validation sous condition...

Re,
Bonjour JCGL,
voir PJ si cela te convient.


@ + +
 

Pièces jointes

  • Liste Validation Affichée Sous Condition V01.xlsm
    89.9 KB · Affichages: 28

MP59

XLDnaute Occasionnel
Re : Afficher liste validation sous condition...

Bonjour à tous,
voici un essai en PJ
MP59
 

Pièces jointes

  • Copie de Liste Validation Affichée Sous Condition V01.xlsm
    96.8 KB · Affichages: 37
  • Copie de Liste Validation Affichée Sous Condition V01.xlsm
    96.8 KB · Affichages: 44
  • Copie de Liste Validation Affichée Sous Condition V01.xlsm
    96.8 KB · Affichages: 45

Christian0258

XLDnaute Accro
Re : Afficher liste validation sous condition...

Re, le forum, JCGL, R@chid, MP59

Merci à vous pour votre aide.

Salut JCGL, ta macro je la place ou...lol
Merci, R@chid, ça fonctionne parfaitement mais je préfère par macro.
Merci MP59, mais ça plante dès l'appel d'une date...

à vous lire,
Bien à vous,
Christian
 

JCGL

XLDnaute Barbatruc
Re : Afficher liste validation sous condition...

Bonjour à tous,

VB:
Private Sub CommandButton1_Click()
    Const MCM_FIRST& = &H1000&, MCM_GETCURSEL& = (MCM_FIRST + 1&)
    Dim LeTime As SYSTEMTIME
    'Récuperer la date sélectionnée dans une cellule
    SendMessage mWnd, MCM_GETCURSEL, 0&, LeTime
    With LeTime
        'MsgBox "Vous avez choisi le : " & vbNewLine & vbTab & _
         Format(DateSerial(.wYear, .wMonth, .wDay), "dddd dd mmmm yyyy") & "."
        Date2 = DateSerial(.wYear, .wMonth, .wDay)
        'Récupérer la date sélectionnée dans une TextBox
        If Not ObjetSource Is Nothing Then
            If InStr(1, "Range,TextBox", TypeName(ObjetSource)) > 1 Then ObjetSource.Value = Date2
        End If
    End With
    Unload Me
    On Error Resume Next
    Range("H2:H500").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=IF($E2>42000,Liste,"""")"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With
    Range("H2").Select
End Sub

A+ à tous
 

Pièces jointes

  • JC Liste Validation Affichée Sous Condition.xlsm
    45.7 KB · Affichages: 31

grisan29

XLDnaute Accro
Re : Afficher liste validation sous condition...

bonjour Christian,MP59,JCGL,r@chid et le forum

tu place le code de JCGL dans un module standart, voir dans le module calendrier et tu active la macro pour essayer

Pascal
 

JCGL

XLDnaute Barbatruc
Re : Afficher liste validation sous condition...

Bonjour à tous,

Petite amélioration pour atteindre la cellule de validation après sélection d'une date (décalage de trois colonnes vers la droite) :

VB:
Private Sub CommandButton1_Click()Dim Cellule As Range
    Const MCM_FIRST& = &H1000&, MCM_GETCURSEL& = (MCM_FIRST + 1&)
    Dim LeTime As SYSTEMTIME
    SendMessage mWnd, MCM_GETCURSEL, 0&, LeTime
    With LeTime
        Date2 = DateSerial(.wYear, .wMonth, .wDay)
    End With
    Unload Me
    Set Cellule = ActiveCell
    On Error Resume Next
    Range("H2:H500").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=IF($E2>42000,Liste,"""")"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With
    Cellule.Offset(, 3).Select
End Sub

A+ à tous
 

job75

XLDnaute Barbatruc
Re : Afficher liste validation sous condition...

Bonjour le fil, le forum,

Voici 2 solutions.

Celle du fichier (1) n'est pas bien fameuse :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[H:H].Validation.Delete 'RAZ
If Not Intersect(ActiveCell, [H:H]) Is Nothing Then
  If IsDate(ActiveCell(, -2)) Then
    Me.Unprotect "toto"
    ActiveCell.Validation.Add xlValidateList, Formula1:="=Liste"
    Me.Protect "toto"
  End If
End If
End Sub
Celle du fichier (2) nécessite une ligne 2 masquée avec la liste de validation en H2 :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sel As Range, ac As Range
Range("H3:H" & Rows.Count).Validation.Delete 'RAZ
Set sel = Selection: Set ac = ActiveCell
If Not Intersect(ac, [H:H]) Is Nothing Then
  If IsDate(ac(, -2)) Then
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    [H2].Select: [H2] = ac: [H2].Copy ac
    sel.Select: ac.Activate
    Application.EnableEvents = True
  End If
End If
End Sub
Edit : le problème de la 1ère solution est que la déprotection/protection prend du temps.

On est obligé de la faire malgré UserInterfaceOnly = True.

Bonne journée.

A+
 

Pièces jointes

  • Liste Validation Affichée Sous Condition(1).xlsm
    95.9 KB · Affichages: 26
  • Liste Validation Affichée Sous Condition(2).xlsm
    96.3 KB · Affichages: 28
Dernière édition:

MP59

XLDnaute Occasionnel
Re : Afficher liste validation sous condition...

Bonjour Christian,
cela ne fonctionnait pas uniquement à cause de la protection.
Voici le fichier avec une tentative de résolution de ce problème.
MP59
 

Pièces jointes

  • Copie de Liste Validation Affichée Sous Condition V01.xlsm
    98 KB · Affichages: 24
  • Copie de Liste Validation Affichée Sous Condition V01.xlsm
    98 KB · Affichages: 50
  • Copie de Liste Validation Affichée Sous Condition V01.xlsm
    98 KB · Affichages: 43

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…