TechCafe

Generen samenvatting diverse tabbladen?

Naar aanleiding van deze post (http://computertotaal.nl/forumarchief/11-anders-software/175915-excel--genereren-samenvatting-van-diverse-tabbladen) heb ik onderstaande code gemaakt. Wanneer ik deze stap laat draaien, opent Excel wel de juiste sheet (overview) maar er komen geen gegevens in. Waar gaat dit mis? Sub UpdateOverview() Dim i As Integer Dim LopendeProjecten As Integer Sheets("overview").Select On Error Resume Next LopendeProjecten = Sheets.Count Range("A" & i + 1) = Sheets(i).Name Range("B" & i + 1) = Sheets(i).Range("B7") Range("C" & i + 1) = Sheets(i).Range("B14") Range("D" & i + 1) = Sheets(i).Range("C14") Range("E" & i + 1) = Sheets(i).Range("B17") Range("F" & i + 1) = Sheets(i).Range("C17") End Sub

2 antwoorden
    • +
    • 0
    • -
    http://office.microsoft.com/nl-nl/help/gegevens-op-meerdere-werkbladen-samenvoegen-HP010095249.aspx
    • +
    • 0
    • -
    On Error Resume Next zorgt ervoor dat (relevante) foutmeldingen afgevangen worden. Dit moet je dus eigenlijk niet gebruiken!

    De fout zit hem erin dat i gedurende de hele sub gelijk is aan 0, en Sheets(0) bestaat niet. Deze begint namelijk te tellen bij 1. Beter zou zijn:

    Sub UpdateOverview()
    Dim i As Integer
    Dim LopendeProjecten As Integer

    Sheets("overview").Select
    LopendeProjecten = Sheets.Count

    For i = 1 To LopendeProjecten
    If Sheets(i).Name = "overview" Then
    Else
    Range("A" & i + 1) = Sheets(i).Name
    Range("B" & i + 1) = Sheets(i).Range("B7")
    Range("C" & i + 1) = Sheets(i).Range("B14")
    Range("D" & i + 1) = Sheets(i).Range("C14")
    Range("E" & i + 1) = Sheets(i).Range("B17")
    Range("F" & i + 1) = Sheets(i).Range("C17")
    End If
    Next i
    End Sub

Beantwoord deze vraag