Bonjour.
Je ne sais pas quel autre sujet mettre. Le code suivant se trouve dans
la macro :
Private Sub Workbook_SheetChange
...
Var = Application.Match(Sh.Name, [List!A:A], 0)
If Not IsNumeric(Var) Then Exit Sub
Set Sh1 = Sh
t = Application.Index([List!B1:B500], Var)
*** Cette ligne est en erreur (incompatibilité de type
Set Sh2 = Sheets(Application.Index([List!B1:B500], Var))
*** Cette ligne fonctionne
Set Sh2 = Sheets(t)
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
michdenis
Bonjour Daniel,
Es-tu sûr que ce n'est pas une histoire de "Fully supported" ? ;-))
Pour ta problématique :
Application.Index([List!B1:B500], Var)) retourne un "Range", une cellule. En fait, c'est la propriété "Value" que nous récupérons dans une variable comme dans la ligne de code suivante : T = Application.Index([List!B1:B500], Var)
(Oui, oui, ce n'est pas évident pour ceux qui utilisent cette fonction abondamment dans des formules !!!
2 façons de corriger la ligne de code problématique :
Set sh2 = Sheets((Application.Index([List!B1:B500], Var).Value)) OU Set sh2 = Sheets(Cstr(Application.Index([List!B1:B500], Var)))
Et pour démontrer ce que j'avance, exécute cette ligne de code : a = TypeName(Application.Index([List!B1:B500], Var))
Bonjour Daniel,
Es-tu sûr que ce n'est pas une histoire de "Fully supported" ?
;-))
Pour ta problématique :
Application.Index([List!B1:B500], Var)) retourne un "Range", une cellule.
En fait, c'est la propriété "Value" que nous récupérons dans une variable
comme dans la ligne de code suivante :
T = Application.Index([List!B1:B500], Var)
(Oui, oui, ce n'est pas évident pour ceux qui utilisent cette fonction
abondamment dans des formules !!!
2 façons de corriger la ligne de code problématique :
Set sh2 = Sheets((Application.Index([List!B1:B500], Var).Value))
OU
Set sh2 = Sheets(Cstr(Application.Index([List!B1:B500], Var)))
Et pour démontrer ce que j'avance, exécute cette ligne de code :
a = TypeName(Application.Index([List!B1:B500], Var))
Es-tu sûr que ce n'est pas une histoire de "Fully supported" ? ;-))
Pour ta problématique :
Application.Index([List!B1:B500], Var)) retourne un "Range", une cellule. En fait, c'est la propriété "Value" que nous récupérons dans une variable comme dans la ligne de code suivante : T = Application.Index([List!B1:B500], Var)
(Oui, oui, ce n'est pas évident pour ceux qui utilisent cette fonction abondamment dans des formules !!!
2 façons de corriger la ligne de code problématique :
Set sh2 = Sheets((Application.Index([List!B1:B500], Var).Value)) OU Set sh2 = Sheets(Cstr(Application.Index([List!B1:B500], Var)))
Et pour démontrer ce que j'avance, exécute cette ligne de code : a = TypeName(Application.Index([List!B1:B500], Var))
Daniel.C
Bonjour Denis. Tu as raison. Je n'aurais jamais pensé à ça... Même en lisant l'aide VBA sur Index. Merci. Daniel
Bonjour Daniel,
Es-tu sûr que ce n'est pas une histoire de "Fully supported" ? ;-))
Pour ta problématique :
Application.Index([List!B1:B500], Var)) retourne un "Range", une cellule. En fait, c'est la propriété "Value" que nous récupérons dans une variable comme dans la ligne de code suivante : T = Application.Index([List!B1:B500], Var)
(Oui, oui, ce n'est pas évident pour ceux qui utilisent cette fonction abondamment dans des formules !!!
2 façons de corriger la ligne de code problématique :
Set sh2 = Sheets((Application.Index([List!B1:B500], Var).Value)) OU Set sh2 = Sheets(Cstr(Application.Index([List!B1:B500], Var)))
Et pour démontrer ce que j'avance, exécute cette ligne de code : a = TypeName(Application.Index([List!B1:B500], Var))
Bonjour Denis.
Tu as raison. Je n'aurais jamais pensé à ça... Même en lisant l'aide
VBA sur Index.
Merci.
Daniel
Bonjour Daniel,
Es-tu sûr que ce n'est pas une histoire de "Fully supported" ?
;-))
Pour ta problématique :
Application.Index([List!B1:B500], Var)) retourne un "Range", une cellule.
En fait, c'est la propriété "Value" que nous récupérons dans une variable
comme dans la ligne de code suivante :
T = Application.Index([List!B1:B500], Var)
(Oui, oui, ce n'est pas évident pour ceux qui utilisent cette fonction
abondamment dans des formules !!!
2 façons de corriger la ligne de code problématique :
Set sh2 = Sheets((Application.Index([List!B1:B500], Var).Value))
OU
Set sh2 = Sheets(Cstr(Application.Index([List!B1:B500], Var)))
Et pour démontrer ce que j'avance, exécute cette ligne de code :
a = TypeName(Application.Index([List!B1:B500], Var))
Bonjour Denis. Tu as raison. Je n'aurais jamais pensé à ça... Même en lisant l'aide VBA sur Index. Merci. Daniel
Bonjour Daniel,
Es-tu sûr que ce n'est pas une histoire de "Fully supported" ? ;-))
Pour ta problématique :
Application.Index([List!B1:B500], Var)) retourne un "Range", une cellule. En fait, c'est la propriété "Value" que nous récupérons dans une variable comme dans la ligne de code suivante : T = Application.Index([List!B1:B500], Var)
(Oui, oui, ce n'est pas évident pour ceux qui utilisent cette fonction abondamment dans des formules !!!
2 façons de corriger la ligne de code problématique :
Set sh2 = Sheets((Application.Index([List!B1:B500], Var).Value)) OU Set sh2 = Sheets(Cstr(Application.Index([List!B1:B500], Var)))
Et pour démontrer ce que j'avance, exécute cette ligne de code : a = TypeName(Application.Index([List!B1:B500], Var))