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.
A voir également:
- Vba (excel) : Dépassement de capacité.
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
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 ?
Maintenant, Vba me signale une incompatibilité de type dans cette ligne... avez vous une idée de ce dont il pourrait s'agir ?
dim tableau1
au lieu de
Dim Tableau1() As Integer
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)
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