OVH Cloud OVH Cloud

Infos de validation à partir d'un autre fichier

5 réponses
Avatar
Lycaon
bonjour =E0 tous,

Voil=E0 ce que l'enregistreur de macro me donne pour r=E9gler les
validations d'une plage de cellule :

Range("Q46", "Q" & D + 46).Select
With Selection.Validation
.Delete
.Add Type:=3DxlValidateList, AlertStyle:=3DxlValidAlertStop,
Operator:=3D _
xlBetween, Formula1:=3D"=3D$C$4:$C$40"
.IgnoreBlank =3D True
.InCellDropdown =3D True
.InputTitle =3D ""
.ErrorTitle =3D ""
.InputMessage =3D ""
.ErrorMessage =3D ""
.ShowInput =3D True
.ShowError =3D True
End With

Je voudrais r=E9cup=E9rer Formula1 =E0 partir d'un fichier pour ne pas
avoir =E0 mettre =E0 jour "manuellement" la plage de donn=E9es dans le
code VBA.

J'ai essay=E9 avec une formulation du type
formula1:=3DWorkbooks(NomClasseurEntete).Worksheets(1).Range("$A$4:$A$" &
Workbooks(NomClasseurEntete).Worksheets(1).Cells(Rows.Count,
1).End(xlUp).Row & ") mais =E7a ne marche pas.

Est ce que quelqu'un conna=EEt la solution ?


Merci

Lycaon

5 réponses

Avatar
FxM
Bonjour,

Non testé :
with Workbooks("toto").Sheets("Feuil1")
formula1 = "=" & .Range("A4:" &
.Range("A65536").End(xlUp).Address).Address
end with

@+
FxM



bonjour à tous,

Voilà ce que l'enregistreur de macro me donne pour régler les
validations d'une plage de cellule :

Range("Q46", "Q" & D + 46).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=$C$4:$C$40"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Je voudrais récupérer Formula1 à partir d'un fichier pour ne pas
avoir à mettre à jour "manuellement" la plage de données dans le
code VBA.

J'ai essayé avec une formulation du type
formula1:=Workbooks(NomClasseurEntete).Worksheets(1).Range("$A$4:$A$" &
Workbooks(NomClasseurEntete).Worksheets(1).Cells(Rows.Count,
1).End(xlUp).Row & ") mais ça ne marche pas.

Est ce que quelqu'un connaît la solution ?


Merci

Lycaon



Avatar
isabelle
bonjour Lycaon,

la plage C4:Cx s'obtient avec :

plg = Workbooks(NomClasseurEntete).Sheets("Feuil1").Range("C1:C" & Workbooks(NomClasseurEntete).Sheets("Feuil1").Range("C65536").End(xlUp).Row).Address

Formula1:="=" & plg

isabelle


bonjour à tous,

Voilà ce que l'enregistreur de macro me donne pour régler les
validations d'une plage de cellule :

Range("Q46", "Q" & D + 46).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=$C$4:$C$40"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Je voudrais récupérer Formula1 à partir d'un fichier pour ne pas
avoir à mettre à jour "manuellement" la plage de données dans le
code VBA.

J'ai essayé avec une formulation du type
formula1:=Workbooks(NomClasseurEntete).Worksheets(1).Range("$A$4:$A$" &
Workbooks(NomClasseurEntete).Worksheets(1).Cells(Rows.Count,
1).End(xlUp).Row & ") mais ça ne marche pas.

Est ce que quelqu'un connaît la solution ?


Merci

Lycaon



Avatar
Lycaon
merci beaucoup, ça fonctionne maintenant.

J'ai quand même été obligé de copier mes références de validati on
dans la page en cours car vos méthodes donnent bien la plage voulue
mais Excel va chercher les valeurs dans la page active et non pas dans
l'autre fichier. Inconvénient mineur mais ennuyeux quand même.

encore merci et à très bientôt j'en suis sûr

Lycaon
Avatar
isabelle
bonjour Lycaon,

la validation n'accepte que les plages sur la même feuille ou les plages nommées dans le même classeur,

isabelle


merci beaucoup, ça fonctionne maintenant.

J'ai quand même été obligé de copier mes références de validation
dans la page en cours car vos méthodes donnent bien la plage voulue
mais Excel va chercher les valeurs dans la page active et non pas dans
l'autre fichier. Inconvénient mineur mais ennuyeux quand même.

encore merci et à très bientôt j'en suis sûr

Lycaon



Avatar
JB
Bonjour,

Créer un nom de champ dynamique vers l'autre classeur
(classeur1.xls/Liste en E2)

Maliste

ÞCALER([Classeur1.xls]Feuil1!$E$2;;;NBVAL([Classeur1.xls]Feuil1!$E:$E))

=Maliste dans données/Validation/Liste

JB


bonjour à tous,

Voilà ce que l'enregistreur de macro me donne pour régler les
validations d'une plage de cellule :

Range("Q46", "Q" & D + 46).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=$C$4:$C$40"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Je voudrais récupérer Formula1 à partir d'un fichier pour ne pas
avoir à mettre à jour "manuellement" la plage de données dans le
code VBA.

J'ai essayé avec une formulation du type
formula1:=Workbooks(NomClasseurEntete).Worksheets(1).Range("$A$4:$A$" &
Workbooks(NomClasseurEntete).Worksheets(1).Cells(Rows.Count,
1).End(xlUp).Row & ") mais ça ne marche pas.

Est ce que quelqu'un connaît la solution ?


Merci

Lycaon