j'ai un problème dans ma macro avec une validation de données, je m'explique
:
Dans un classeur, la première feuille Feuil1 contient une liste dans la
colonne A succeptible d'être modifiée. J'ai donc créé
le nom "LISTE" auquel j'ai associé la formule
=DECALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);1) en guise de référence pour
prévoir tout ajout dans la liste.
Jusque là tout va bien. c'est maintenant que ça ce complique :
je souhaite créer une procédure événementielle pour les autres feuilles du
classeur : à chaque fois que l'utilisateur
cliques sur une cellule située dans la plage "B9:B30" par exemple, je veux
que la cellule sélectionnée affiche en validation la liste définie dans
Feuil1.
Par exemple, si je clique sur la cellule B10 de Feuill2, ou encore B25 de
Feuill3 je veux que la liste déroulante de validation s'affiche conformément
aux valeurs du nom LISTE défini dans Feuil1.
J'ai donc codé dans la procédure événementielle
Workbook_SheetSelectionChange de ThisWorkBook (car je veux pour toute les
feuilles du classeurs) :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
If (Not Intersect(Target, Range("B9:B30")) Is Nothing) And Cells.Count = 1
Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween, Formula1:="=Feuil1!LISTE"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub
Mais il me sort un message d'erreur : "Erreur d'exécution 1004. Erreur
définie par l'application ou par l'objet".
Comment lui dire que le champ Formula1 correspond au nom LISTE de Feuill1 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour Greg Remplace
xlBetween, Formula1:="þuil1!LISTE" Par
xlBetween, Formula1:="=LISTE"
Cordialement Pascal
"Greg" a écrit dans le message de news:c94fro$9pa$
Bonjour,
j'ai un problème dans ma macro avec une validation de données, je m'explique
: Dans un classeur, la première feuille Feuil1 contient une liste dans la colonne A succeptible d'être modifiée. J'ai donc créé le nom "LISTE" auquel j'ai associé la formule ÞCALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);1) en guise de référence pour prévoir tout ajout dans la liste.
Jusque là tout va bien. c'est maintenant que ça ce complique : je souhaite créer une procédure événementielle pour les autres feuilles du classeur : à chaque fois que l'utilisateur cliques sur une cellule située dans la plage "B9:B30" par exemple, je veux que la cellule sélectionnée affiche en validation la liste définie dans Feuil1.
Par exemple, si je clique sur la cellule B10 de Feuill2, ou encore B25 de Feuill3 je veux que la liste déroulante de validation s'affiche conformément
aux valeurs du nom LISTE défini dans Feuil1.
J'ai donc codé dans la procédure événementielle Workbook_SheetSelectionChange de ThisWorkBook (car je veux pour toute les feuilles du classeurs) :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range) If (Not Intersect(Target, Range("B9:B30")) Is Nothing) And Cells.Count = 1 Then With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator: > _
xlBetween, Formula1:="þuil1!LISTE" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub
Mais il me sort un message d'erreur : "Erreur d'exécution 1004. Erreur définie par l'application ou par l'objet". Comment lui dire que le champ Formula1 correspond au nom LISTE de Feuill1 ?
Merci de vos réponses
Bonjour Greg
Remplace
xlBetween, Formula1:="þuil1!LISTE"
Par
xlBetween, Formula1:="=LISTE"
Cordialement
Pascal
"Greg" <greg@neuf.fr> a écrit dans le message de
news:c94fro$9pa$1@aphrodite.grec.isp.9tel.net...
Bonjour,
j'ai un problème dans ma macro avec une validation de données, je
m'explique
:
Dans un classeur, la première feuille Feuil1 contient une liste dans la
colonne A succeptible d'être modifiée. J'ai donc créé
le nom "LISTE" auquel j'ai associé la formule
ÞCALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);1) en guise de référence pour
prévoir tout ajout dans la liste.
Jusque là tout va bien. c'est maintenant que ça ce complique :
je souhaite créer une procédure événementielle pour les autres feuilles du
classeur : à chaque fois que l'utilisateur
cliques sur une cellule située dans la plage "B9:B30" par exemple, je veux
que la cellule sélectionnée affiche en validation la liste définie dans
Feuil1.
Par exemple, si je clique sur la cellule B10 de Feuill2, ou encore B25 de
Feuill3 je veux que la liste déroulante de validation s'affiche
conformément
aux valeurs du nom LISTE défini dans Feuil1.
J'ai donc codé dans la procédure événementielle
Workbook_SheetSelectionChange de ThisWorkBook (car je veux pour toute les
feuilles du classeurs) :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
If (Not Intersect(Target, Range("B9:B30")) Is Nothing) And Cells.Count = 1
Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator: > _
xlBetween, Formula1:="þuil1!LISTE"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub
Mais il me sort un message d'erreur : "Erreur d'exécution 1004. Erreur
définie par l'application ou par l'objet".
Comment lui dire que le champ Formula1 correspond au nom LISTE de Feuill1
?
"Greg" a écrit dans le message de news:c94fro$9pa$
Bonjour,
j'ai un problème dans ma macro avec une validation de données, je m'explique
: Dans un classeur, la première feuille Feuil1 contient une liste dans la colonne A succeptible d'être modifiée. J'ai donc créé le nom "LISTE" auquel j'ai associé la formule ÞCALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);1) en guise de référence pour prévoir tout ajout dans la liste.
Jusque là tout va bien. c'est maintenant que ça ce complique : je souhaite créer une procédure événementielle pour les autres feuilles du classeur : à chaque fois que l'utilisateur cliques sur une cellule située dans la plage "B9:B30" par exemple, je veux que la cellule sélectionnée affiche en validation la liste définie dans Feuil1.
Par exemple, si je clique sur la cellule B10 de Feuill2, ou encore B25 de Feuill3 je veux que la liste déroulante de validation s'affiche conformément
aux valeurs du nom LISTE défini dans Feuil1.
J'ai donc codé dans la procédure événementielle Workbook_SheetSelectionChange de ThisWorkBook (car je veux pour toute les feuilles du classeurs) :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range) If (Not Intersect(Target, Range("B9:B30")) Is Nothing) And Cells.Count = 1 Then With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator: > _
xlBetween, Formula1:="þuil1!LISTE" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub
Mais il me sort un message d'erreur : "Erreur d'exécution 1004. Erreur définie par l'application ou par l'objet". Comment lui dire que le champ Formula1 correspond au nom LISTE de Feuill1 ?
Merci de vos réponses
Greg
En effet comme ça ça marche. Comme quoi, il en faut de peu parfois.
Merci pour ton aide rapide et efficace,
Greg
"papou" wrote in message news:
Bonjour Greg Remplace
xlBetween, Formula1:="þuil1!LISTE" Par
xlBetween, Formula1:="=LISTE"
Cordialement Pascal
"Greg" a écrit dans le message de news:c94fro$9pa$
Bonjour,
j'ai un problème dans ma macro avec une validation de données, je m'explique
: Dans un classeur, la première feuille Feuil1 contient une liste dans la colonne A succeptible d'être modifiée. J'ai donc créé le nom "LISTE" auquel j'ai associé la formule ÞCALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);1) en guise de référence pour
prévoir tout ajout dans la liste.
Jusque là tout va bien. c'est maintenant que ça ce complique : je souhaite créer une procédure événementielle pour les autres feuilles du
classeur : à chaque fois que l'utilisateur cliques sur une cellule située dans la plage "B9:B30" par exemple, je veux
que la cellule sélectionnée affiche en validation la liste définie dans Feuil1.
Par exemple, si je clique sur la cellule B10 de Feuill2, ou encore B25 de
Feuill3 je veux que la liste déroulante de validation s'affiche conformément
aux valeurs du nom LISTE défini dans Feuil1.
J'ai donc codé dans la procédure événementielle Workbook_SheetSelectionChange de ThisWorkBook (car je veux pour toute les
feuilles du classeurs) :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range) If (Not Intersect(Target, Range("B9:B30")) Is Nothing) And Cells.Count 1 Then With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator: > > _
xlBetween, Formula1:="þuil1!LISTE" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub
Mais il me sort un message d'erreur : "Erreur d'exécution 1004. Erreur définie par l'application ou par l'objet". Comment lui dire que le champ Formula1 correspond au nom LISTE de Feuill1
?
Merci de vos réponses
En effet comme ça ça marche. Comme quoi, il en faut de peu parfois.
Merci pour ton aide rapide et efficace,
Greg
"papou" <oterceciprobin@otercecicg44.fr> wrote in message
news:eAJ2ca9QEHA.1004@TK2MSFTNGP10.phx.gbl...
Bonjour Greg
Remplace
xlBetween, Formula1:="þuil1!LISTE"
Par
xlBetween, Formula1:="=LISTE"
Cordialement
Pascal
"Greg" <greg@neuf.fr> a écrit dans le message de
news:c94fro$9pa$1@aphrodite.grec.isp.9tel.net...
Bonjour,
j'ai un problème dans ma macro avec une validation de données, je
m'explique
:
Dans un classeur, la première feuille Feuil1 contient une liste dans la
colonne A succeptible d'être modifiée. J'ai donc créé
le nom "LISTE" auquel j'ai associé la formule
ÞCALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);1) en guise de référence
pour
prévoir tout ajout dans la liste.
Jusque là tout va bien. c'est maintenant que ça ce complique :
je souhaite créer une procédure événementielle pour les autres feuilles
du
classeur : à chaque fois que l'utilisateur
cliques sur une cellule située dans la plage "B9:B30" par exemple, je
veux
que la cellule sélectionnée affiche en validation la liste définie dans
Feuil1.
Par exemple, si je clique sur la cellule B10 de Feuill2, ou encore B25
de
Feuill3 je veux que la liste déroulante de validation s'affiche
conformément
aux valeurs du nom LISTE défini dans Feuil1.
J'ai donc codé dans la procédure événementielle
Workbook_SheetSelectionChange de ThisWorkBook (car je veux pour toute
les
feuilles du classeurs) :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal
Target
As Excel.Range)
If (Not Intersect(Target, Range("B9:B30")) Is Nothing) And Cells.Count 1
Then
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator: > > _
xlBetween, Formula1:="þuil1!LISTE"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub
Mais il me sort un message d'erreur : "Erreur d'exécution 1004. Erreur
définie par l'application ou par l'objet".
Comment lui dire que le champ Formula1 correspond au nom LISTE de
Feuill1
En effet comme ça ça marche. Comme quoi, il en faut de peu parfois.
Merci pour ton aide rapide et efficace,
Greg
"papou" wrote in message news:
Bonjour Greg Remplace
xlBetween, Formula1:="þuil1!LISTE" Par
xlBetween, Formula1:="=LISTE"
Cordialement Pascal
"Greg" a écrit dans le message de news:c94fro$9pa$
Bonjour,
j'ai un problème dans ma macro avec une validation de données, je m'explique
: Dans un classeur, la première feuille Feuil1 contient une liste dans la colonne A succeptible d'être modifiée. J'ai donc créé le nom "LISTE" auquel j'ai associé la formule ÞCALER(Feuil1!$A$1;0;0;NBVAL(Feuil1!$A:$A);1) en guise de référence pour
prévoir tout ajout dans la liste.
Jusque là tout va bien. c'est maintenant que ça ce complique : je souhaite créer une procédure événementielle pour les autres feuilles du
classeur : à chaque fois que l'utilisateur cliques sur une cellule située dans la plage "B9:B30" par exemple, je veux
que la cellule sélectionnée affiche en validation la liste définie dans Feuil1.
Par exemple, si je clique sur la cellule B10 de Feuill2, ou encore B25 de
Feuill3 je veux que la liste déroulante de validation s'affiche conformément
aux valeurs du nom LISTE défini dans Feuil1.
J'ai donc codé dans la procédure événementielle Workbook_SheetSelectionChange de ThisWorkBook (car je veux pour toute les
feuilles du classeurs) :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range) If (Not Intersect(Target, Range("B9:B30")) Is Nothing) And Cells.Count 1 Then With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator: > > _
xlBetween, Formula1:="þuil1!LISTE" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub
Mais il me sort un message d'erreur : "Erreur d'exécution 1004. Erreur définie par l'application ou par l'objet". Comment lui dire que le champ Formula1 correspond au nom LISTE de Feuill1