Bonjour,
J'ai créer une macro toute simple sous Excel 2010 pour copier des données de plusieurs feuilles (4 actuellement) et les copier dans une feuille unique. J'utilise pour cela deux boucles For..Next imbriquées.
Tout fonctionne bien sauf si une feuille contient plus de 255 lignes (w), j'ai alors le message d'erreur d'exécution '6': dépassement de capacité.
Est-ce que les boucles For...Next sont limitées ou ai-je un problème dans ma macro ?
Je ne peux joindre mon fichier qui contient des données confidentielles.
Merci de votre coopération.
MACRO:
Private Sub CommandButton1_Click()
Dim Sel As String
Dim v, w, x, y As Long
Dim i, j As Byte
Application.ScreenUpdating = False
Sel = Range("G2").Value
If Sel = "" Then
Exit Sub
End If
Range("A3:E" & Range("E3").End(xlDown).Row).Select ' Effacement des précédents imports
Selection.ClearContents
Selection.ClearComments
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
x = 1
y = Worksheets("IMPORT").Index - 1
For i = x To y
With Worksheets(i)
v = 3
w = .Range("A" & Rows.Count).End(xlUp).Row
For j = v To w
If .Cells(j, 5).Value = Sel Then
.Range(.Cells(j, 1), .Cells(j, 5)).Copy _
Destination:=Worksheets("IMPORT").Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
End If
Next j
End With
Next i
ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address
Range("G2").Select
Application.ScreenUpdating = True
End Sub
J'ai créer une macro toute simple sous Excel 2010 pour copier des données de plusieurs feuilles (4 actuellement) et les copier dans une feuille unique. J'utilise pour cela deux boucles For..Next imbriquées.
Tout fonctionne bien sauf si une feuille contient plus de 255 lignes (w), j'ai alors le message d'erreur d'exécution '6': dépassement de capacité.
Est-ce que les boucles For...Next sont limitées ou ai-je un problème dans ma macro ?
Je ne peux joindre mon fichier qui contient des données confidentielles.
Merci de votre coopération.
MACRO:
Private Sub CommandButton1_Click()
Dim Sel As String
Dim v, w, x, y As Long
Dim i, j As Byte
Application.ScreenUpdating = False
Sel = Range("G2").Value
If Sel = "" Then
Exit Sub
End If
Range("A3:E" & Range("E3").End(xlDown).Row).Select ' Effacement des précédents imports
Selection.ClearContents
Selection.ClearComments
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
x = 1
y = Worksheets("IMPORT").Index - 1
For i = x To y
With Worksheets(i)
v = 3
w = .Range("A" & Rows.Count).End(xlUp).Row
For j = v To w
If .Cells(j, 5).Value = Sel Then
.Range(.Cells(j, 1), .Cells(j, 5)).Copy _
Destination:=Worksheets("IMPORT").Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
End If
Next j
End With
Next i
ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address
Range("G2").Select
Application.ScreenUpdating = True
End Sub
Dernière édition: