Bonjour,

j'ai un probleme, mon code est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
Private Type produit    'Definition du type produit
    designation As String
    part_reference As String
    material_type(1 To 2) As String
    '...
    '...(beaucoup de variable)
End Type
 
Sub Master()
 
'Creation d'un tableau de produit
Dim tableau(1 To 20) As produit
 
'Remplissage du tableau
Dim plage As Range, cellule As Range
Dim nCols As Integer, nRows As Integer
    nCols = 28
    nRows = 40
    For n = 1 To 10
        Set plage = Range(Range("A1").Offset(0, (n - 1) * 28), Range("A1").Offset(nRows, (n - 1) * 28 + nCols))  'selection successive de 28 colonne et 40 lignes par un offset de 28 case a droite
 
        For Each cellule In plage
 
            If cellule.Value = "Designation" Then
                cellule.Select                       'On selectionne cet case
                Selection.Offset(0, 1).Select
                tableau(n).designation = ActiveCell.Value    'Stockage de la valeure
            End If
 
 
            If cellule.Value = "City" Then
                cellule.Select
                Selection.Offset(1, 0).Select
                tableau(n).part_reference = ActiveCell.Value
            End If
 
        '...
        '...(beaucoup de conditions)
 
 
 
        Next cellule
    Next n
 
End Sub
Ce programme fonctionne corectement.
Mais lorsque je veux passer mon "nRows" de 40 a 400, ca ne marche plus, le debbuger surlingne en jaune "If cellule.Value = "Designation" Then"

J'ai l'impression qu l'ordi n'appreci pas de manipuler de si grand tableau et/ou de si grand type perso.

Peut-etre qu'une meilleur synthaxe serait la solution, ?
Si vous avez des idées, n'hesitez pas.

Merci d'avance, Jean-Claude.