MS Excel - Genereren tabel-data.

Genereren van tabel-gegevens

Ten einde te kunnen oefenen met de rijke weergave van tabellen, filter-functionaliteiten, Pivot-tabellen en Diagram-weergaven is een aanwezigheid van subtantiële tabel gegevens noodzakelijk. Om deze niet manueel te hoeven in te geven heb ik een methode gezocht om deze automatisch te genereren.
Teneinde verkoopsgegevens te verkrijgen voorzie ik een Werkblad data met volgende 1-kolom tabellen.

  1. Naam van verkoper - met gedefenieerde naam : Naam
  2. Regio - met gedefenieerde naam : Regio
  3. Item - met gedefenieerde naam : Item
  4. Prijs - met gedefenieerde naam : Stukprijs

Ik voorzie een functie, fGeefWaarde(), om in een willekeurige volgorde gegevens van de Range van de gedefinieerde namen in te lezen

        Public Function fGeefWaarde(nmNaam As Excel.Name) As String
        Dim intWil As Integer
        Dim intDum  As Integer
        Dim rngNaam As Excel.Range
        Dim rngCel As Excel.Range
            Set rngNaam = Range(nmNaam)
            intWil = fWilgetal(1, rngNaam.Rows.Count)
            intDum = 0
            For Each rngCel In rngNaam
                intDum = intDum + 1
                    If intDum = intWil Then
                        fGeefWaarde = rngCel.Value
                        Exit For
                    End If
            Next rngCel
        End Function
        

In het werkblad 'tabel_2'' worden de volgende hoofdingen voorzien:

Datum Jaar Kwartaal Naam Regio Item Aantal Stukprijs Totaal prijs

De routine sGenereer() vult de gegevens rij per rij in de tabel in.

        Public Sub sGenereer()
        Dim shtTabel As Worksheet
        Dim intRij, intKol  As Integer
        Dim rngCel As Excel.Range
        Dim datDatum As Date
        Set shtTabel = ThisWorkbook.Worksheets("tabel_2")
            For intRij = 2 To 301
                datDatum = fRandomDatum(#1/1/2014#, #12/31/2016#)
                shtTabel.Cells(intRij, 1) = datDatum
                shtTabel.Cells(intRij, 1).NumberFormat = "dd/mm/yyyy"
                shtTabel.Cells(intRij, 2).Formula = "=YEAR(R[0] C[-1])"
                shtTabel.Cells(intRij, 3).Formula = "=fVertaalInKwartaal(R[0] C[-2])"
                shtTabel.Cells(intRij, 4) = fGeefWaarde(ThisWorkbook.Names("Naam"))
                shtTabel.Cells(intRij, 5) = fGeefWaarde(ThisWorkbook.Names("Regio"))
                shtTabel.Cells(intRij, 6) = fGeefWaarde(ThisWorkbook.Names("Item"))
                shtTabel.Cells(intRij, 7) = fWilgetal(5, 50)
                shtTabel.Cells(intRij, 8) = CCur(fGeefWaarde(ThisWorkbook.Names("Stukprijs")))
                shtTabel.Cells(intRij, 8).NumberFormat = "€ #,##0.00"
                shtTabel.Cells(intRij, 9).FormulaR1C1 = "=R[0] C[-1]*R[0] C[-2]"
                shtTabel.Cells(intRij, 9).NumberFormat = "€ #,##0.00"
            Next intRij
        End Sub
        

hallo