Excel VBA validation de données
schoret2
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
PEB -
PEB -
Bonjour,
J'essaie via l'enregistreur de macro d'excel de faire une liste de validation de données
j'obtiens une erreur 1004
ma formule =decaler(NOM;;;nb.si(NOM;"><")) fonctionne pourtant bien avec excel ...
voici la modeste macro
----------------------------------
Sub menu_auto()
With Range("O13").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=DECALER(NOM;;;NB.SI(NOM;""><""))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
-----------------------------------
J'ai également essayer de traduire ma formule en anglais qui donne
=offset(NOM;;;countif(NOM;"><"))
et sa fonctionne pas non plus.
merci de votre aide.
J'essaie via l'enregistreur de macro d'excel de faire une liste de validation de données
j'obtiens une erreur 1004
ma formule =decaler(NOM;;;nb.si(NOM;"><")) fonctionne pourtant bien avec excel ...
voici la modeste macro
----------------------------------
Sub menu_auto()
With Range("O13").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=DECALER(NOM;;;NB.SI(NOM;""><""))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
-----------------------------------
J'ai également essayer de traduire ma formule en anglais qui donne
=offset(NOM;;;countif(NOM;"><"))
et sa fonctionne pas non plus.
merci de votre aide.
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
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
3 réponses
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
Statut
Contributeur
Dernière intervention
4 724
Content pour toi mais si tu pouvais donner le lien d'un fichier exemple ce serait parfait car (Jusqu'à preuve du contraire !) je le vois mal fonctionnel...
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)"
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 ?
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.