• 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.

Sorteermacro

Status
Niet open voor verdere reacties.

radar

Gebruiker
Lid geworden
13 jan 2006
Berichten
242
Excellenties,

Ik heb een excelbestand zijnde een dump uit een andere applicatie, zo'n 3000 regels groot en zo'n 20 kolommen breed.
Dit bestand moet ik verdelen over verschillende tabbladen op basis van een locatie in een kolom.
Het bestand wordt tweewekelijks gedraaid en is steeds verschillend qua inhoud (niet de opmaak en de kolom op grond waarvan selectie gemaakt moet worden)
Het gaat om zo'n 50 verschillende tabbladen als eindresultaat dus erg bewerkelijk als we gaan filteren en kopieren, knippen en plakken enz.
Is dit in een macro weg te zetten.
In bijlage een voorbeeld van wat de bedoeling is; waarden hierin zijn nietszeggend, doch het principe van de verdeling is hetzelfde.
Ben zelf een beginner op gebied van macro's maken...

Groet, Radar
 

Bijlagen

Eerste waar ik aan denk:

met draaitabel gegevens ophalen vanuit de andere applicatie.

En dan indelen zoals je zelf het makkelijkst vind.
 
raymond,

Bedankt voor snelle reactie.
Omdat deze informatie gesplitst verspreid moet worden per tabblad in organisatie en het gaat om vertrouwelijke informatie voldoet deze optie helaas niet.


Groet,
Radar
 
Heb even snel de draaitabel gemaakt.
Dubbelklik nu eens op aarts (in jou voorbeeld), een nieuw tabblad wordt geopend en je krijgt alleen de informatie van aarts te zien.
 

Bijlagen

Raymond,

zou betekenen dat ik toch deze handelingen zo vaak moet herhalen als dat er locaties zijn; ik zou regels moeten kopieren naar nieuw tabblad ten einde de andere info toch echt onzichtbaar te maken voor eindgebruikers, of met wachtwoorden gaan werken.

Groet,
Radar
 
Kijk even op de site van Finch

Rayomond,

Dat hoeft niet. op de site van Finch staat uitgelegd hoe je dit automatisch kan laten doen.

Je moet nl een paginaveld maken van "Locatie" en dan kun je met de aanwijzingen van Finch autmatisch de tabbladen maken die je wilt.

Groet, Gert
 
Hallo Gert

Carnaval zit er weer op....
Ik ga een en ander eens bekijken.
Het stappenplan lijkt op het eerste gezicht erg duidelijk.
Zal dit eerst nabouwen en proberen uit te voeren en kijken of ik het kan vertalen naar mijn gegevens.
Vooralsnog dank voor de tip!

groet,
Radar
 
Laatst bewerkt:
Het is gelukt!
Struikelblok was het maken van het paginaveld.
Dat is m.i. in Finch's uitleg voor Excelversie 2003 iets onderbelicht.
(Of het zijn de naweeen van Carnaval bij mij)
Het rapport wordt inderdaad op deze wijze netjes verdeeld over de diverse tabbladen op basis van het gekozen criterium.
Dat scheelt een heleboel werk.
Ik kende deze mogelijkheid bij draaitabellen niet.

Ik ben er echter nog niet helemaal.
In de diverse tabbladen is de draaitabel dan op locatie gefilterd, echter de andere locaties zijn nog steeds benaderbaar.
Dat laatste is niet de bedoeling.
Elke locatie mag slechts toegang hebben tot eigen gegevens en daarmee kunnen werken.
Is daar nog een mouw aan te passen?
Dat zou fantastisch zijn!

Groet,
Radar
 
Toch nog een VBA-oplossing.
Het criterium waarop gefilterd moet worden staat in kolom F (=7)
Voor ieder verschillend criterium bestaat een afzonderlijk werkblad met dat criterium als naam.
een lijst van alle unieke criteria wordt ingelezen in matrix sq.
Het criteriumgebied voor de filtering begint bij cel AA1

Code:
Sub verplaatsfilter()
  With Blad1
    .[A1]).CurrentRegion.Rows(1).Copy .[AA1]
    
    sq = Filter(Split("#" & Join(WorksheetFunction.Transpose(.Columns(6).SpecialCells(xlCellTypeConstants)), "|"), "|"), "#", False)
    Do Until UBound(sq) = -1
      c0 = c0 & sq(0) & "|"
      sq = Filter(sq, sq(0), False)
    Loop
    
    sq = Filter(Split(c0 & "#", "|"), "#", False)
    For j = 0 To UBound(sq)
      .[AF2] = sq(0)
      .[A1].CurrentRegion.AdvancedFilter xlFilterCopy, .[AA1].CurrentRegion, Sheets(sq(0)).[A1]
    Next
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan