Tabel uitbreiden

  • Onderwerp starter Onderwerp starter Tsw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Tsw

Gebruiker
Lid geworden
5 dec 2011
Berichten
183
Goedemorgen,

Ik ben bezig met een excel bestand te maken om ingescande aantallen in een tabel te krijgen.
Ik ben nu zover:

De in gescande gegevens komen in kolom F + G + H te staan.
Als ik dan op ''Knop 1" druk krijg ik een tabel zoals ik hem wil hebben.

Alleen nu wil ik eigenlijk dat hij zowel horizontaal als verticaal bij elkaar op telt.
(zie voorbeeld in tabblad "voorbeeld".)

En eigenlijk wil ik er ook nog tabel lijnen omheen krijgen om het te verduidelijken.
(zie voorbeeld in tabblad "voorbeeld".)

Kan iemand mij hier bij helpen?

Bekijk bijlage Voorbeeld_HelpMij.xlsm

bvd.
 
Het laatste stukje.
Code:
 Next i
[COLOR=#0000ff]    .ListObjects.Add(1, .Cells(1).CurrentRegion.Resize(, .Cells(1).CurrentRegion.Columns.Count + 1), , xlYes).Name = "tabel1"[/COLOR]
[COLOR=#0000ff]      With .ListObjects(1)[/COLOR]
[COLOR=#0000ff]          .ShowAutoFilter = False[/COLOR]
[COLOR=#0000ff]          .ShowTotals = True[/COLOR]
[COLOR=#0000ff]      For x = 2 To .ListColumns.Count[/COLOR]
[COLOR=#0000ff]         .ListColumns(x).TotalsCalculation = 1[/COLOR]
[COLOR=#0000ff]       Next x[/COLOR]
[COLOR=#0000ff]      For x = 1 To .DataBodyRange.Rows.Count[/COLOR]
[COLOR=#0000ff]       .DataBodyRange(x, .ListColumns.Count) = Application.Sum(.DataBodyRange(x, 2).Resize(,  .DataBodyRange.Columns.Count - 2))[/COLOR]
[COLOR=#0000ff]      Next x[/COLOR]
[COLOR=#0000ff]    End With[/COLOR]
[COLOR=#0000ff]  End With[/COLOR]
End Sub
 
Beste HSV,

Het ziet er super strak uit! Bedankt hiermee kan ik verder.
Ik heb eigenlijk nog wel een ander punt. Kun jij mij daar ook bij helpen?

Ik wil hiernaast nog voor elke "PAK" of "JUK" een eigen tabblad maken waar staat welke merken er precies in dat pak of juk zitten.
En met de aantallen er achter.

Dus eigenlijk hetzelfde als nu in tabblad 'result' staat, alleen dan per pak of juk.
Is dit voor jou makkelijk te maken?

Als dat lukt kan ik het zelf verder uitwerken en kom ik er wel uit.
En kan ik mijn vraag op beantwoord zetten.

Alvast bedankt voor de geweldige hulp!

Nog een aanvulling:
Ik heb een vraag over jou formule.
Ik snap nu hoe hij verticaal en horizontaal kan uittellen.
Alleen welke zin zit de opmaak van het tabel? Deze kan ik niet terug vinden?
 
Laatst bewerkt:
Zou dit voor je werken?

Gebaseerd op tabblad result.
Code:
Sub hsv_2()
Dim j As Long
Application.ScreenUpdating = False
With Sheets("result").ListObjects(1).Range
For j = 2 To .Columns.Count - 1
   .AutoFilter j, "<>"
    If IsError(Evaluate("'" & .Cells(1, j) & "'!A1")) Then _
    Sheets.Add(, Sheets(Sheets.Count)).Name = .Cells(1, j).Value
      Union(.Columns(1), .Columns(j)).Copy Sheets(.Cells(1, j).Value).Cells(1)
    .AutoFilter
 Next j
 End With
End Sub
 
Bedankt!

Het ziet er uit zoals ik het wil.
Alleen kan ik ook makkelijk bepalen waar het tabel op de sheet komt te staan?
Bijvoorbeeld bovenste hoek in cel A10?

En nu maakt hij tabbladen aan, maar kan ik ook een makkelijk knop maken om dan alle tabbladen met JUK*** en PAK*** te verwijderen?
Omdat ik er anders straks heel veel in krijg te staan.
 
De tabbladen worden maar een keer aangemaakt als ze niet bestaan.

Voor A10.
Code:
 Union(.Columns(1), .Columns(j)).Copy Sheets(.Cells(1, j).Value).Cells([COLOR=#0000ff]10,1[/COLOR])
 
En dat ze maar 1 keer worden aangemaakt zit op dit moment nog de fout.
kolom H + kolom G worden uitgelezen uit een scanner en worden dan daar ingevuld.

Dus bepaalde PAK-nummers en JUK-nummers kunnen vaker voorkomen.
Ik wil dus eigenlijk een macro hebben waarmee alle bladen die beginnen met "JUK" of "PAK" worden verwijdert.

Is hier nog iets in mogelijk?
 
Ik doelde op de andere code dat de tabbladen maar een keer kunnen worden aangemaakt, niet ergens een code van jezelf.

De verwijder code van Juk en Pak.
Code:
sub verwijder_Pak_Juk()
dim sh as worksheet
application.displayalerts =false
for each sh in sheets
 if lcase(left(sh.name,3))="juk" or lcase(left(sh.name,3))="pak" then sh.delete
next sh
application.displayalerts = true
end sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan