Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord
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