Vba (excel) : Dépassement de capacité.
Usgpa
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Excusez-moi de vous déranger à nouveau mais ma fonction bug à cause d'un dépassement de capacité. Savez vous si je peux résoudre ou contourner ce problème ?
Dim Tableau1() As Integer
Dim x1 As Integer, y1 As Integer
Dim i1 As Integer, j1 As Integer
x1 = 1465
y1 = 119
ReDim Tableau1(2 To x1, 3 To y1)
For i1 = 2 To x1
For j1 = 3 To y1
Tableau1(i1, j1) = Workbooks("Fichier Personnel X.xls").Sheets("Statistiques").Cells(i1, j1) + Workbooks("Classeur Commun X").Sheets("Statistiques").Cells(i1, j1)
Next j1
Next i1
With Workbooks("Classeur Commun X.xls").Sheets("Statistiques")
.Range("C2:D01465") = Tableau1
End With
Range("C2:D01465").ClearContents
Merci d'avance pour le temps que vous consacrerez à mon problème.
Excusez-moi de vous déranger à nouveau mais ma fonction bug à cause d'un dépassement de capacité. Savez vous si je peux résoudre ou contourner ce problème ?
Dim Tableau1() As Integer
Dim x1 As Integer, y1 As Integer
Dim i1 As Integer, j1 As Integer
x1 = 1465
y1 = 119
ReDim Tableau1(2 To x1, 3 To y1)
For i1 = 2 To x1
For j1 = 3 To y1
Tableau1(i1, j1) = Workbooks("Fichier Personnel X.xls").Sheets("Statistiques").Cells(i1, j1) + Workbooks("Classeur Commun X").Sheets("Statistiques").Cells(i1, j1)
Next j1
Next i1
With Workbooks("Classeur Commun X.xls").Sheets("Statistiques")
.Range("C2:D01465") = Tableau1
End With
Range("C2:D01465").ClearContents
Merci d'avance pour le temps que vous consacrerez à mon problème.
2 réponses
-
Bonjour
regarde si
DO1465 au lieu deD01465
-
-
-
-
en fait la procédure sur laquelle j'avais mon problème est résolue. C'est la suivante qui pose désormais problème.
Dim tableau
Dim x As Integer, y As Integer
Dim i As Integer, j As Integer
'ici x est la dernière ligne, y la dernière colonne
x = 800
y = 8
'Redimensionne le tableau de la ligne 3 à x et de la 2ème col à la yème
ReDim tableau(2 To x, 5 To y)
'complète les valeurs du tableau par l'addition des cellules de la même plage sur 2 feuilles
For i = 2 To x
For j = 5 To y
tableau(i, j) = Workbooks("Fichier Personnel X.xls").Sheets("Statistiques Clients").Cells(i, j) + Workbooks("Classeur Commun X.xls").Sheets("Statistiques Clients").Cells(i, j)
Next j
Next i
'restitue les valeurs du tableau dans la feuil3
With Workbooks("Classeur Commun X.xls").Sheets("Statistiques Clients")
.Range("E2:H800") = tableau
End With
Range("E2:H800").ClearContents
Avec un incompatibilité de type sur la ligne soulignée
-
-
peut-être qu'une autre manière de procéder avec 2 tableaux conviendrait ( et + rapide?); maquette très simple:
Sub ccc() tablo_out = Range("A1:B5") tablo_in = Range("E1:F5") For cptr_y = 1 To 5 For cptr_x = 1 To 2 tablo_out(cptr_y, cptr_x) = tablo_out(cptr_y, cptr_x) + tablo_in(cptr_y, cptr_x) Next Next Range("J1:K5") = tablo_out 'destination finale changée pour visualiser l'essai End Sub-
Tableau2(i, j) = Workbooks("Fichier Personnel X.xls").Sheets("Statistiques Clients").Cells(i, j) + Workbooks("Classeur Commun X.xls").Sheets("Statistiques Clients").Cells(i, j)
Maintenant, Vba me signale une incompatibilité de type dans cette ligne... avez vous une idée de ce dont il pourrait s'agir ? -
-
-