Excel VBA validation de données
Fermé
schoret2
Messages postés
4
Date d'inscription
jeudi 14 juin 2018
Statut
Membre
Dernière intervention
14 juin 2018
-
14 juin 2018 à 07:29
PEB - 27 déc. 2018 à 23:22
PEB - 27 déc. 2018 à 23:22
A voir également:
- Excel VBA validation de données
- Ethernet n'a pas de configuration ip valide - Guide
- Excel validation des données liste - Guide
- Trier des données excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
3 réponses
schoret2
Messages postés
4
Date d'inscription
jeudi 14 juin 2018
Statut
Membre
Dernière intervention
14 juin 2018
14 juin 2018 à 09:25
14 juin 2018 à 09:25
J'ai trouvé ...
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=OFFSET(NOM,,,COUNTIF(NOM,""><""))"
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=OFFSET(NOM,,,COUNTIF(NOM,""><""))"
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
Modifié le 14 juin 2018 à 09:30
Modifié le 14 juin 2018 à 09:30
Bonjour,
ma formule =decaler(NOM;;;nb.si(NOM;"><")) fonctionne pourtant bien avec excel ...
Là je demande à voir ....
Ceci fonctionne :
Et en macro cela donne :
ma formule =decaler(NOM;;;nb.si(NOM;"><")) fonctionne pourtant bien avec excel ...
Là je demande à voir ....
Ceci fonctionne :
=DECALER(NOM;;;NBVAL(NOM);1)
Et en macro cela donne :
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=offset(NOM,,,counta(NOM),1)"
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
14 juin 2018 à 20:43
14 juin 2018 à 20:43
Bonjour,
Je tiens vraiment à ce qui est donné comme solution fonctionnelle le soit vraiment et la solution fournie par shoret2 ne me semble pas fonctionner car j'obtiens une erreur 1004 comme dans la question initiale.

Voilà le résultat qui se produit et il me semble que j'ai bien copié la ligne de code
Peux-tu nous confirmer ta solution en me disant ce qui cloche chez moi pour pouvoir valider la discussion ?
Je tiens vraiment à ce qui est donné comme solution fonctionnelle le soit vraiment et la solution fournie par shoret2 ne me semble pas fonctionner car j'obtiens une erreur 1004 comme dans la question initiale.
Voilà le résultat qui se produit et il me semble que j'ai bien copié la ligne de code
Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=OFFSET(NOM,,,COUNTIF(NOM,""><""))"
Peux-tu nous confirmer ta solution en me disant ce qui cloche chez moi pour pouvoir valider la discussion ?
schoret2
Messages postés
4
Date d'inscription
jeudi 14 juin 2018
Statut
Membre
Dernière intervention
14 juin 2018
14 juin 2018 à 21:17
14 juin 2018 à 21:17
Chez moi ce bout de code fonctionne parfaitement maintenant.
Il créé une liste déroulante de choix si la condition est vrai, si non il la supprime pour redevenir une cellule normale
cette formule supprime les blanc dans la liste =DECALER(_Détaillant_liste;;;NB.SI(_Détaillant_liste;"><"))
Sub menu_auto()
Application.ScreenUpdating = False
If Range("_Main_type") = "Dépence" Then
With Range("O13").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=OFFSET(_Détaillant_liste,,,COUNTIF(_Détaillant_liste,""><""))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else
If Range("_Main_type") = "Revenu" Then
With Range("O13").Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End If
End Sub
merci de m'avoir répondu.
Il créé une liste déroulante de choix si la condition est vrai, si non il la supprime pour redevenir une cellule normale
cette formule supprime les blanc dans la liste =DECALER(_Détaillant_liste;;;NB.SI(_Détaillant_liste;"><"))
Sub menu_auto()
Application.ScreenUpdating = False
If Range("_Main_type") = "Dépence" Then
With Range("O13").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=OFFSET(_Détaillant_liste,,,COUNTIF(_Détaillant_liste,""><""))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else
If Range("_Main_type") = "Revenu" Then
With Range("O13").Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End If
End Sub
merci de m'avoir répondu.
schoret2
Messages postés
4
Date d'inscription
jeudi 14 juin 2018
Statut
Membre
Dernière intervention
14 juin 2018
14 juin 2018 à 21:26
14 juin 2018 à 21:26
et ensuite dans ma feuille excel j'y ai mis ce code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call menu_auto
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call menu_auto
End Sub
14 juin 2018 à 09:47