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

Automatisch kopieren naar ander werkblad missels macro

Status
Niet open voor verdere reacties.

rolfbrouwer

Gebruiker
Lid geworden
15 mrt 2013
Berichten
34
Beste allemaal,

Ik heb het volgende gemaakt, maar heb een probleem met kopieren:
Tabblad gebeuren: grote database, hierin staan gebeurtenissen vermeld
Tabblad januari: hierheen moet, onder bepaalde voorwaarde, worden gekopieerd
Tabblad februari, maart enz enz (t/m december): kopieren zoals, onder voorwaarde, bij januari.
Nu het probleem:
In de database “gebeuren” staan records die moeten worden gekopieerd met een macro (maar niet verwijderd) naar het tabblad “januari”, zolang in kolom C “januari” voorkomt. Dat natuurlijk ook als “februari”, “maart” enz voorkomt in de database.
Vanaf mijn werk lukt het me niet om een voorbeeldbestandje mee te sturen, maar hopelijk begrijpen jullie wat de bedoeling is.
Hopelijk hebben jullie een oplossing voor mij.


Groet,

Rolf
 
En bovendien mogen de oude gegevens niet gewist worden, hoe ga je XL dan vertellen welke de nieuwe gegevens zijn die overgezet moeten worden de volgende maal ?

Of is dit een éénmalige actie ? Of ..... ?
 
Beste Jean-Paul en Rudi.

@ Jean-Paul:
Vanavond post ik een voorbeeldbestandje

@ Rudi:
In de database, tabblad "gebeuren", worden gegevens ingevoerd. Op enig moment moet er een uitdraai worden gemaakt m.b.t. bijvoorbeeld de data over januari. Deze gegevens worden geprint en het tabblad januari mag leeg worden gehaald. Als er nieuwe gegevens aan 'gebeuren' worden toegevoegd, kan middels de macro wederom in januari een complete lijst worden gegenereerd over januari.
 
Beste VenA

Heb het uitgeprobeerd, maar de macro maakt het tabblad "gebeuren" helemaal leeg. Da's niet de bedoeling. Alles moet daar blijven staan, alleen als e.e.a. voldoet aan een voorwaarde, bv maand is "januari" of maand is "februari", dat moeten ALLEEN die rijen worden gekopieerd. Nogmaals het is de bedoeling dat alles in "gebeuren" blijft staan.

Alvast veel dank voor je hulp.

Rolf
 
Nee hoor alleen het filter staat nog aan op waarschijnlijk december en je dus nog geen gegevens van hebt.:d

Code:
Sub Spaarie()
'©Spaarie dd 29-06-2015
Application.ScreenUpdating = False
    For s = 2 To Sheets.Count
        With Sheets("gebeuren").Cells.CurrentRegion
            .AutoFilter 3, Sheets(s).Name
            .Copy Sheets(s).Cells(1)
            .AutoFilter
        End With
    Next
End Sub
 
aha, maar waar zie ik dan op welke maand de filter staat? b.v. op januari, februari enz


Maar het werkt geweldig tot dusver!!!
Dank
 
Beste VenA,

Met mijn onkunde in deze ben ik daar ook achter gekomen, maar ik zou graag willen weten waar in de macro de fliter staat voor b.v. Januari, februari enz. Ik wil dus kunnen kiezen per maand. Nadat e.e.a. Is gekopieerd, wil ik graag dat de filter weer op "0" komt te staan, dus ik wil alle gegevens in " gebeuren" weer kunnen zien. Hopelijk snap je het nog.

Groet,

Rolf
 
Het begint nu een beetje boven mijn pet te groeieN:
De database "gebeuren" dient als brondocument, waarin wijzigingen worden aangebracht. Op enig moment wil ik een maand kunnen inzien, b.v. Januari. De gegevens uit de database m.b.t. Januari moeten dus worden gekopieerd naad het tabblad januari, of februari enz. De originele data in "gebeuren" moet dus ongewijzigd blijven. Als,er mutaties zijn in "gebeuren", dan moeten deze dus de volgende keer worden meegenomen, in de volgende keer in het maandoverzicht worden gegenereerd. Ik zou graag willen zien waar ik (in de macro) de keuze kan/moet maken m.b.t. de maand
 
Je moet geen keuze maken, ga naar de betreffende maand en je zal zien dat in het betreffende maand alles aanwezig is, de macro wordt gestart van het moment je het tabblad selecteert, speel eens met je bron bestand en test eens uit, uiteraard gaat dit nog maar bij de eerste 3 maanden , de andere waren niet aanwezig, maar ik zou zeggen vlooi het uit en maak het na, je kan er maar alleen wijzer van worden.

of
Je kan een tabblad maken met een validatie lijst met maanden, die je dan alles lekker te voorschijn haalt.
 
Oke, jullie hebben me geweldig geholpen. Ga morgen even "spelen" en kijken wat er van komt.
Ik denk dat ik "TE MOEILIJK" heb zitten denken. Nogmaals heel veel dank.

Groet,
Rolf

PS: En wijzer worden is alleen maar een voordeel!!!!!
 
Daar hebben ze de module Thisworkbook met de sheet_activate event voor gemaakt.
 
wil ik graag dat de filter weer op "0" komt te staan, dus ik wil alle gegevens in " gebeuren" weer kunnen zien. Hopelijk snap je het nog.

Eerlijk gezegd niet. Je filter zal alleen maandnamen of lege cellen geven. Dus "0" zal niet bestaan en daarom niet teruggezet kunnen worden. In #8 staat de code die het filter weer uit zet. En dus alle waarden tonen waar je waarschijnlijk op doelt.:confused:

Zonder foutafhandeling. Zet deze in een module
Code:
Sub VenA()
Set sh = ActiveSheet
Application.ScreenUpdating = False
    With Sheets("gebeuren").Cells.CurrentRegion
        .AutoFilter 3, sh.Name
        sh.UsedRange.Rows.EntireRow.Delete
        .Copy sh.Cells(1)
        .AutoFilter
    End With
End Sub

En deze in ThisWorbook
Code:
Private Sub Workbook_SheetActivate(ByVal sh As Object)
    If Not sh.Name = "gebeuren" Then VenA
End Sub
 
Een alternatieve oplossing is gebruik maken van een bestaande mogelijkheid in Excel namelijk de draaitabel

Dan heb je ook geen 12 tabbladen nodig.
 

Bijlagen

Je gebruikt toch geen standaard module als alles in Thisworkbook kan? (sh as object heb je al).
 
Beste mensen,

Het is gelukt wat ik wilde! Het was wel even (uit)zoek, maar het werkt. Heel veel dank voor al jullie hulp.

Groet,
Rolf
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan