Incompatibilité de type sur un multipage

Résolu/Fermé
fortydub Messages postés 44 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 31 janvier 2016 - 14 mars 2014 à 11:02
fortydub Messages postés 44 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 31 janvier 2016 - 14 mars 2014 à 14:33
Bonjour,


J'ai une application qui fonctionne parfaitement sur Excel 2000 mais qui curieusement ne fonctionne pas dans Excel 2010.
Quand je lance le programme, j'ai une erreur de type 13 (incompatibilité de type), dès le premier passage dans la boucle.
sur la ligne : Set p2(X) = MultiPage1.Pages.Add("p", Sheets("Champs").Cells(1, X))


Les déclarations sont faites en haut de page (hors module).

[...]
Dim X, i, Y As Integer
Dim l2(1 To 150) As Control
Dim p2(1 To 150) As page
[...]

Private Sub UserForm_Initialize()

[...]

While Sheets("Champs").Cells(1, X) <> ""
NbChamps = NbChamps + 1
Y = 1
While Sheets("Champs").Cells(Y + 1, X) <> ""
Y = Y + 1
Wend

'Cette commande ne fonctionne pas à cause d'une incompatibilité de type

Set p2(X) = MultiPage1.Pages.Add("p", Sheets("Champs").Cells(1, X))

Set l2(X) = p2(X).Controls.Add("Forms.ListBox.1", "liste", True)

'Dimensions de la listbox
l2(X).Left = 0
l2(X).Width = p2(X).InsideWidth
l2(X).Top = 0
l2(X).Height = 150
l2(X).ColumnHeads = True
l2(X).MultiSelect = 2
'Source de la listbox (nombre de modalités)
l2(X).RowSource = Sheets("Champs").Range(Sheets("Champs").Cells(2, X), _
Sheets("Champs").Cells(Y, X)).Address(, , , True)
X = X + 1
Wend

[...]

End sub

Merci de m'aider je suis bloqué !

2 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
14 mars 2014 à 13:56
Bonjour,

J'ai fait un test très simple et le problème vient bien de la déclaration de type :
Dim p2(1 To 150) As page

je pense qu'il faut déclarer aussi en Control :
Dim p2(1 To 150) As Control

Je ne sais pas pourquoi il y a cette différence avec Excel 2010 mais il me semble que cela fonctionne.

A tester
1
fortydub Messages postés 44 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 31 janvier 2016
14 mars 2014 à 14:33
Merci beaucoup !!
Effectivement cela a résolu le problème.

Ce qui me surprends, c'est que la fonction Add retourne un objet de type Page à en croire l'explorateur d'objet.
0