• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Rapporten printen uit een varierend aantal rijen

Status
Niet open voor verdere reacties.

Remco00

Gebruiker
Lid geworden
4 feb 2007
Berichten
10
Hallo allemaal,

Op mijn werk print ik dagelijks een aantal rapporten dmv het gebruik van de autofilter functie in combinatie met macro's. Dit gaat nogal traag en ik vroeg me af of er een handiger manier is. Hopelijk kunnen jullie me helpen.

Het overzicht van alle openstaande klantenorders vanaf vandaag (of evt orders die achterlopen) tot en met de komende twee weken dient als input voor mijn rapporten. Deze brei van data moet worden gescheiden naar productielijn (=4 productielijnen) en dan een raport per dag voor de eerste komende weken. Dit betekent dus 4 productielijnen X 5 werkdagen X 2 weken = 40 raporten.

De inputfile heeft kolommen met de productielijnen en de datum dus daar ligt het probleem niet. Wel is vervelend dat de lengte van de lijst met orders sterk kan varieren. Soms is hij tien regels lang, soms wel 250.

Ik heb vier tabbladen gemaakt, voor elke productielijn 1, waar ik de input file 1:1 naar doorlink (+ enkele honderden regels extra ruimte omdat het aantal regels zo sterk kan varieren). Daar heb ik vervolgens een autofilter op gezet en door middel van een macro laat ik vervolgens de selecties maken (per dag een raport) en printen. 4x dezelfde info doorlinken en dmv autofilters 40 x de juiste info selecteren kost excel nogal veel moeite dus ik vraag me af hoe dit makkelijker zou kunnen.

Heeft iemand ideeen hoe ik uit een variabel aantal lijnen kan selecteren?

bedankt voor de hulp!

groet,
remco
 
Een voorbeeldbestandje kan handig zijn, al besef ik dat dat niet simpel gaat zijn met zulke (potentieel) belangrijke info. Probeer toch maar. Houd de macro's en de structuur wel intact.
 
Hallo Wigi,

Bedankt voor je reactie.
Kan ik een voorbeeldbestandje naar je mailen? Ik heb hem gezipped maar hij blijft te groot.......

Bedankt voor je hulp.

groet,
Remco
 
Dan moet er nog meer nutteloze info weg. Mail je het naar mij kan ik enkel er naar kijken, als het op het forum komt heb je veel meer helpers ter beschikking.
 
Hallo Wigi,

Okay, het is me gelukt de file kleiner te krijgen. Er zat toch ergens wat verborgen 'rommel' in denk ik want de file is nu 9kb :thumb:

Aan de hand van de file zal ik uitleggen wat mijn bedoeling is. Hopelijk is het verhaal niet te warrig :confused:

Het komt er eigenlijk op neer dat ik vanuit ons ERP systeem elke morgen een download maak van alle openstaande customer orders van de komende twee weken (inclusief eventuele orders uit het verleden: dus datum < vandaag).

De downloand is 1 grote berg van data die gesplitst zou moeten worden via excel. De customer orders uit de download moeten gesplitst worden naar vier rapport types (verdeeld naar 'plaats van productie') en dan binnen deze rapport types ook nog voor elke dag van de twee weken customer orders een apart rapport.

*Deze customer order data uit ERP paste ik in het witte vlak van de sheet, beginnende op sheet B6.
*Voordat ik nieuwe data paste verwijder ik altijd alle oude data om te voorkomen dat er info van de vorige dag achterblijft die er niet op zou moeten staan.

*Het aantal rijen informatie kan sterk varieren. In theorie kan dat van oneindig (= heel veel orders) tot slechts 1 regel (= extreem rustige tijden) zijn.
*Het aantal kolommen is altijd gelijk
*Kolom M heb ik nu voor het gemak maar even gecopy-paste-valued maar wordt normaal door excel bepaald aan de hand van kolom B, masterplanning family

*De rapporten die er uiteindelijk uit zouden moeten komen hebben hetzelfde format als de gepaste data uit ERP. Wanneer je een autofilter op rij 8 plaatst en dan filtert op kolom M + D (type rapport + datum) zie je hoe het rapport eruit zou moeten zien. Dit is dan een van de 4 rapporten voor 1 dag.

Ik heb geprobeerd om via een macro de filtering uit te laten voeren maar 4 (er zijn vier typen rapporten) x 10 (= 2 weken) = 40 x een filterbewerking via een macro uitvoeren is een beetje veel van het goede

Vervolgens heb ik geprobeerd om het via dynamic name ranges op te lossen, maar ik geloof niet dat ik dat helemaal begrijp. Heb wel het idee dat het een oplossing kan zijn.

Ik ben ook nog bezig geweest met een vlookup maar het probleem daar is dat niet iedere regel perse uniek hoeft te zijn.

Hopelijk kun je me een beetje richting geven. Onze Amerikaanse IT afdeling van de multinational waar ik werk is het in ieder geval nog niet gelukt :o

Hardstikke bedankt!

groetjes,
Remco
 

Bijlagen

Volgende macro zal per Master family een apparte sheet maken:


Sub Split_By_Master_Plan_fam()
Dim RData As Range
Dim strName As String
Dim ILoop As Long, ICount As Long
Dim LRow As Long
LRow = Cells.Find("*", Range("A1"), xlFormulas, , xlByRows, xlPrevious).Row

Range("B8:M" & LRow).Name = "MyData"
Set RData = Range("MyData")

Sheets("E1 Requirement Schedule Rpt").Range("N:N").Clear

RData.Columns(1).AdvancedFilter xlFilterCopy, , Sheets("E1 Requirement Schedule Rpt").Range("N1"), True

ILoop = Sheets("E1 Requirement Schedule Rpt").Range("N2", Sheets("E1 Requirement Schedule Rpt").Range("N65536").End(xlUp)).Rows.Count


For ICount = 1 To ILoop


strName = Sheets("E1 Requirement Schedule Rpt").Range("N2")

On Error Resume Next
Sheets.Add().Name = strName
If ActiveSheet.Name <> strName Then 'sheet already exists
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
MsgBox "Sheet already exists. Macro stopped", vbCritical, "Marrosi"
Sheet1.Range("G:G").Clear
On Error GoTo 0
Exit Sub
End If

RData.AdvancedFilter xlFilterCopy, Sheets("E1 Requirement Schedule Rpt").Range("N1:N2"), Sheets(strName).Range("A1")

Sheets(strName).Columns("A:I").EntireColumn.AutoFit

Sheets("E1 Requirement Schedule Rpt").Range("N2").Delete.xlShiftUp

Next ICount

Sheets("E1 Requirement Schedule Rpt").Range("N1").Clear



End Sub


Afhankelijk van je verdere behoeftes kan je nu nog elk van de nieuwe sheets gaan opsplitsen per datum.


Groetjes - Marrosi
 
Marrosi, kan je de code (en alle verdere code die je hier nog post) eens tussen zgn. code tags plaatsen? Dan wordt alles een beetje leesbaar. Selecteer je code en klik op het hekje boven het vak waar je een bericht typt.

Ik probeer dit er zo'n beetje in te krijgen, niet alleen bij jou maar ook bij anderen hier.

BTW: goed bezig, keep up the good work.

Wigi
 
Beste Marrosi,

Hardstikke bedankt voor je hulp. Ik ben er met hulp van je code weer een heel eind opgeschoten!

Sorry voor mijn late reactie terug overigens :o

Bedankt
Remco
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan