OVH Cloud OVH Cloud

Erreur d'exécution 6

4 réponses
Avatar
Linebaker
Bonsoir à vous tous,

Lorsque j'exécute mon code en utilisant un bouton de commande d'un userform
j'ai une erreur 6 : dépassement de capacité ???

Ce bouton de commande appel un userform contenant 1 combobox et 5 listbox.
Le code fonctionnait très bien lorsque j'ai seulement que lignes pour mon
combobox mais lorsque j'ai ajouté mes données au complet +1000 lignes,
paf... erreur 6.

Vous avez une idée ?

Merci

4 réponses

Avatar
michdenis
Bonsoir LineBaker,

Il se peut cependant que ton dépassement soit celui d'une variable dont le type est mal défini en rapport avec l'étendue de son
action

Tu peux publier ta procédure ici même. Cela aidera à voir ce qui ne va pas.


Salutations!


"Linebaker" a écrit dans le message de news: _0cIe.73414$
Bonsoir à vous tous,

Lorsque j'exécute mon code en utilisant un bouton de commande d'un userform
j'ai une erreur 6 : dépassement de capacité ???

Ce bouton de commande appel un userform contenant 1 combobox et 5 listbox.
Le code fonctionnait très bien lorsque j'ai seulement que lignes pour mon
combobox mais lorsque j'ai ajouté mes données au complet +1000 lignes,
paf... erreur 6.

Vous avez une idée ?

Merci
Avatar
Linebaker
Rebonsoir Michdenis,

Tel que demandé voici le code en question :

Public L As Integer

Private Sub Cbo1_Change()
Dim tabtemp As Variant
Dim L As Integer
With Worksheets("Feuil1") 'La Feuil1 est cachée au démarrage
L = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:F" & L).Value
End With
ListBox1.Clear
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
If Cbo1.Value = "" Then Exit Sub

For L = 1 To UBound(tabtemp, 1)
If tabtemp(L, 1) = CLng(Cbo1.Value) Then
ListBox1.AddItem tabtemp(L, 2)
ListBox2.AddItem tabtemp(L, 5)
ListBox3.AddItem tabtemp(L, 6)
ListBox4.AddItem tabtemp(L, 3)
ListBox5.AddItem tabtemp(L, 4)
End If
Next L

End Sub

Private Sub CmdQuit_Click()
Unload UsfTrouve
UsfMenu.Show
End Sub

Private Sub UserForm_Initialize()
Dim nom As New Collection
Dim item
Dim c As Range
Dim L As Integer
Dim i As Byte

With Worksheets("Feuil1")
L = .Range("a5000").End(xlUp).Row
On Error Resume Next
For Each c In .Range("a2:a" & L)
nom.Add c.Value, CStr(c.Value)
Next c
On Error GoTo 0
End With

For i = 1 To nom.Count
Cbo1.AddItem nom.item(i)
Next i

End Sub

En espérant que cela pourra aider sinon je pourrais d'envoyer le fichier au
complet à une adresse valide. La mienne est

Merci encore une fois.


"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Il se peut cependant que ton dépassement soit celui d'une variable dont le
type est mal défini en rapport avec l'étendue de son
action

Tu peux publier ta procédure ici même. Cela aidera à voir ce qui ne va
pas.


Salutations!


"Linebaker" a écrit dans le message de news:
_0cIe.73414$
Bonsoir à vous tous,

Lorsque j'exécute mon code en utilisant un bouton de commande d'un
userform
j'ai une erreur 6 : dépassement de capacité ???

Ce bouton de commande appel un userform contenant 1 combobox et 5 listbox.
Le code fonctionnait très bien lorsque j'ai seulement que lignes pour mon
combobox mais lorsque j'ai ajouté mes données au complet +1000 lignes,
paf... erreur 6.

Vous avez une idée ?

Merci





Avatar
michdenis
Bonsoir LineBaker,

Quand tu utilises une variable qui doit contenir un nombre de lignes d'une plage de cellule, il est préférable de lui donner le type
"Long" , le type Integer est limité a 32700 environ et tu as 65536 lignes dans un classeur....il est possible selon l'étendue de ta
plage qu'il y ait un dépassement de la capacité de la variable défine avec le type integer. C'est une question de prudence !

Dans ton code, cette procédure : Private Sub UserForm_Initialize, tu utilises ceci :

Dim i As Byte

Tu devrais utiliser le type Integer.


Salutations!





"Linebaker" a écrit dans le message de news: RCdIe.73613$
Rebonsoir Michdenis,

Tel que demandé voici le code en question :

Public L As Integer

Private Sub Cbo1_Change()
Dim tabtemp As Variant
Dim L As Integer
With Worksheets("Feuil1") 'La Feuil1 est cachée au démarrage
L = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:F" & L).Value
End With
ListBox1.Clear
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
If Cbo1.Value = "" Then Exit Sub

For L = 1 To UBound(tabtemp, 1)
If tabtemp(L, 1) = CLng(Cbo1.Value) Then
ListBox1.AddItem tabtemp(L, 2)
ListBox2.AddItem tabtemp(L, 5)
ListBox3.AddItem tabtemp(L, 6)
ListBox4.AddItem tabtemp(L, 3)
ListBox5.AddItem tabtemp(L, 4)
End If
Next L

End Sub

Private Sub CmdQuit_Click()
Unload UsfTrouve
UsfMenu.Show
End Sub

Private Sub UserForm_Initialize()
Dim nom As New Collection
Dim item
Dim c As Range
Dim L As Integer
Dim i As Byte

With Worksheets("Feuil1")
L = .Range("a5000").End(xlUp).Row
On Error Resume Next
For Each c In .Range("a2:a" & L)
nom.Add c.Value, CStr(c.Value)
Next c
On Error GoTo 0
End With

For i = 1 To nom.Count
Cbo1.AddItem nom.item(i)
Next i

End Sub

En espérant que cela pourra aider sinon je pourrais d'envoyer le fichier au
complet à une adresse valide. La mienne est

Merci encore une fois.


"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Il se peut cependant que ton dépassement soit celui d'une variable dont le
type est mal défini en rapport avec l'étendue de son
action

Tu peux publier ta procédure ici même. Cela aidera à voir ce qui ne va
pas.


Salutations!


"Linebaker" a écrit dans le message de news:
_0cIe.73414$
Bonsoir à vous tous,

Lorsque j'exécute mon code en utilisant un bouton de commande d'un
userform
j'ai une erreur 6 : dépassement de capacité ???

Ce bouton de commande appel un userform contenant 1 combobox et 5 listbox.
Le code fonctionnait très bien lorsque j'ai seulement que lignes pour mon
combobox mais lorsque j'ai ajouté mes données au complet +1000 lignes,
paf... erreur 6.

Vous avez une idée ?

Merci





Avatar
Linebaker
Bonjour Michdenis,

Bingo.

MERCI.

"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Quand tu utilises une variable qui doit contenir un nombre de lignes d'une
plage de cellule, il est préférable de lui donner le type
"Long" , le type Integer est limité a 32700 environ et tu as 65536 lignes
dans un classeur....il est possible selon l'étendue de ta
plage qu'il y ait un dépassement de la capacité de la variable défine avec
le type integer. C'est une question de prudence !

Dans ton code, cette procédure : Private Sub UserForm_Initialize, tu
utilises ceci :

Dim i As Byte

Tu devrais utiliser le type Integer.


Salutations!





"Linebaker" a écrit dans le message de news:
RCdIe.73613$
Rebonsoir Michdenis,

Tel que demandé voici le code en question :

Public L As Integer

Private Sub Cbo1_Change()
Dim tabtemp As Variant
Dim L As Integer
With Worksheets("Feuil1") 'La Feuil1 est cachée au démarrage
L = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:F" & L).Value
End With
ListBox1.Clear
ListBox2.Clear
ListBox3.Clear
ListBox4.Clear
ListBox5.Clear
If Cbo1.Value = "" Then Exit Sub

For L = 1 To UBound(tabtemp, 1)
If tabtemp(L, 1) = CLng(Cbo1.Value) Then
ListBox1.AddItem tabtemp(L, 2)
ListBox2.AddItem tabtemp(L, 5)
ListBox3.AddItem tabtemp(L, 6)
ListBox4.AddItem tabtemp(L, 3)
ListBox5.AddItem tabtemp(L, 4)
End If
Next L

End Sub

Private Sub CmdQuit_Click()
Unload UsfTrouve
UsfMenu.Show
End Sub

Private Sub UserForm_Initialize()
Dim nom As New Collection
Dim item
Dim c As Range
Dim L As Integer
Dim i As Byte

With Worksheets("Feuil1")
L = .Range("a5000").End(xlUp).Row
On Error Resume Next
For Each c In .Range("a2:a" & L)
nom.Add c.Value, CStr(c.Value)
Next c
On Error GoTo 0
End With

For i = 1 To nom.Count
Cbo1.AddItem nom.item(i)
Next i

End Sub

En espérant que cela pourra aider sinon je pourrais d'envoyer le fichier
au
complet à une adresse valide. La mienne est

Merci encore une fois.


"michdenis" a écrit dans le message de news:

Bonsoir LineBaker,

Il se peut cependant que ton dépassement soit celui d'une variable dont
le
type est mal défini en rapport avec l'étendue de son
action

Tu peux publier ta procédure ici même. Cela aidera à voir ce qui ne va
pas.


Salutations!


"Linebaker" a écrit dans le message de news:
_0cIe.73414$
Bonsoir à vous tous,

Lorsque j'exécute mon code en utilisant un bouton de commande d'un
userform
j'ai une erreur 6 : dépassement de capacité ???

Ce bouton de commande appel un userform contenant 1 combobox et 5
listbox.
Le code fonctionnait très bien lorsque j'ai seulement que lignes pour mon
combobox mais lorsque j'ai ajouté mes données au complet +1000 lignes,
paf... erreur 6.

Vous avez une idée ?

Merci