J'ai du code dans VBA et avec un grand nombre de lignes, il utilise trop de mémoire - il peut prendre quelques Go et faire l'écraser. Code prendre numéro demander au serveur pour XLM trouver des données et les écrire que d'aller à un autre numéro. S'il y a plus de 500 lignes, il écrase. Pourriez-vous m'aider à optimiser le code pour gérer environ 10 000 lignes? Merci pour votre aide MarekOptimisation de code VBA
Sub ares()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False 'potlačí obnovování obrazovky
Application.DisplayAlerts = False 'potlačí varovné hlášky
Application.DisplayStatusBar = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Dim i As Integer
Dim row As Integer
Dim column As Integer
For i = 2 To 15000
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "ares"
Sheets("ares").Activate
On Error GoTo ErrorHandler
ActiveWorkbook.XmlImport URL:="http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_bas.cgi?ico=" & Worksheets("ico").Cells(i, 1).Value, ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")
If Worksheets("ares").Cells(2, 10).Value = "" Then
Worksheets("ico").Cells(i, 2).Value = "OK"
row = 2
column = 3
Do While Worksheets("ares").Cells(row, 1).Value <> ""
If Worksheets("ares").Cells(row, 167).Value <> "" Then
Worksheets("ico").Cells(i, column).Value = Worksheets("ares").Cells(row, 167).Value
column = column + 1
End If
row = row + 1
Loop
Else
Worksheets("ico").Cells(i, 2).Value = Worksheets("ares").Cells(2, 10).Value
End If
ErrorResume:
Sheets("ares").Delete
Next i
Application.ScreenUpdating = True 'zapne obnovování obrazovky
Application.DisplayAlerts = FaTruelse 'obnoví varovné hlášky
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Exit Sub
ErrorHandler:
Worksheets("ico").Cells(i, 2).Value = "Jiná chyba"
Resume ErrorResume
End Sub
'Application.DisplayAlerts = FaTruelse « obnoví varovné hlášky' - c'est un nouveau booléen :) – Vityata
De toute façon, vous pouvez importer des données et de définir votre cellule ico sans ajouter et supprimer une feuille de temps. peut-être réutiliser une feuille? – MacroMarc