Incompatibilité de type sur un multipage
Résolu
fortydub
Messages postés
50
Statut
Membre
-
fortydub Messages postés 50 Statut Membre -
fortydub Messages postés 50 Statut Membre -
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é !
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é !
A voir également:
- Incompatibilité de type sur un multipage
- Clear type - Guide
- Type de ram - Guide
- Comment changer le type de fichier - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Faiblesse type spectre ✓ - Forum Jeux vidéo
2 réponses
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
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