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

Data vanuit blad1 spreiden over de diverse tabbladen

Status
Niet open voor verdere reacties.

Benbij

Gebruiker
Lid geworden
23 jun 2016
Berichten
19
Beste Forum-Gebruikers,

Ik krijg het maar niet voor elkaar.. Zie voorbeeld..

Ik wil ervoor zorgen dat de omzet regels (blad omzet) automatisch worden gekopieerd naar de behorende tabbladen. In werkelijkheid zijn er honderden regels. De waarde waar ik op wil selecteren is Kolom C (blad omzet).

Dank alvast!

Gr,
Ben
 

Bijlagen

  • Omzet test.xlsb
    12,8 KB · Weergaven: 47
Laatst bewerkt:
Bij elke wijziging in blad "Omzet", wordt alle data gespreid over de tabbladen.
Zie maar of het iets is.
Afhankelijk van de kracht van je PC, kan het bij zeer veel regels even duren voor alles gekopieërd is
 

Bijlagen

  • Omzet test.xlsb
    22,1 KB · Weergaven: 49
Laatst bewerkt:
Maak gebruik van het geavanceerde filter.

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "Omzet" Then
  Application.ScreenUpdating = False
  Cells.ClearContents
  Range("V1") = "Uitgever"
  Range("V2") = Sh.Name
  Sheets("Omzet").Cells(1).CurrentRegion.AdvancedFilter xlFilterCopy, Range("V1:V2"), Range("A1")
  Range("V1:V2").ClearContents
End If
End Sub
 

Bijlagen

  • Omzet test-2.xlsb
    22,4 KB · Weergaven: 43
Op 2 plaatsen:
1.
Code:
For sh = 2 To 5
Hier zet je het aantal tabbladen naar waar moet gekopieerd worden.
2.
Code:
If cl.Value = WorksheetFunction.Choose(sh, "", 150, 151, 168, 170) Then
Hier zet je de namen van de tabbladen naar waar moet gekopieerd worden.
Let op! Als de tabbladnamen, getallen zijn: niet tussen aanhalingstekens ("170" = fout, 170 = juist)
Als de tabbladnamen tekst zijn: wel tussen aanhalingstekens ("Blad1" = juist, Blad1 = fout)
 
Posting van VenA, zo simpel kan het zijn als een professional het aanpakt.
 
VenA & wieter, beide dank voor het meedenken en de hulp.

@VenA: Ziet er bijna perfect uit, alleen wanneer ik een nieuwe kolom wil gebruiken dan overschrijft je macro de kolom..

@wieter: Heel mooi, alleen wanneer ik een nieuwe tabblad tussen de "151" en "168" zet, dan gaat de verdeling ineens mis..


Willen jullie mij nog even verder helpen? :thumb:
 
Welke kolom? In het voorbeeldbestand staat nergens een extra kolom.
 
Code:
If cl.Value = WorksheetFunction.Choose(sh, "", 150, 151, 168, 170) Then
De volgorde van de tabbladen in deze coderegel, moet hetzelfde zijn als de volgorde van de tabbladen in het werkboek
ps. Ga verder met het bestand van VenA, is veel praktischer
 
Laatst bewerkt:
Kijk hoe je het bestand van VenA, eventueel kan aanpassen.
 

Bijlagen

  • Bestand VenA.xlsm
    32,5 KB · Weergaven: 35
@VenA: Als ik in de toekomst een extra kolom wil gebruiken dan overschrijft je selectie dat. Is het mogelijk dat die dat niet doet en alleen de regels t/m gebruikt? Is het ook mogelijk dat wanneer ik een nieuwe tabblad gebruik dat je macro niet gelijk de headers kopieert?

@wieter: zal ik doen, bedankt voor je hulp!
 
Geen idee wat je met de extra kolom bedoelt.

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If InStr("150151168170", Sh.Name) > 0 Then
  Application.ScreenUpdating = False
  Cells.ClearContents
  Range("XFD1") = "Uitgever"
  Range("XFD2") = Sh.Name
  Sheets("Omzet").Cells(1).CurrentRegion.AdvancedFilter xlFilterCopy, Range("XFD1:XFD2"), Range("A1")
  Range("XFD1:XFD2").ClearContents
End If
End Sub
 
hoi VenA,

Zie bijgaand bestand. Ik heb nieuwe tabbladen gemaakt, namelijk test1, test2, en test3. Hier wordt automatisch de header van tabblad omzet gekopieerd. Kan dat anders?

Bij de tabbladen 150, 151, 168, 170 wil ik eventueel de kolommen S t/m Z vrij kunnen gebruiken. Zodra ik hier een waarde invul dan verdwijnt dat nadat de filter zich ververst.

Gr,
Ben

Bekijk bijlage Omzet test.xlsb
 
je hebt de code uit #13 niet in het bestand staan.

Probeer het zo maar eens.
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If InStr("150151168170", Sh.Name) > 0 Then
  Application.ScreenUpdating = False
  Columns("A:R").ClearContents
  Range("XFD1") = "Uitgever"
  Range("XFD2") = Sh.Name
  Sheets("Omzet").Cells(1).CurrentRegion.AdvancedFilter xlFilterCopy, Range("XFD1:XFD2"), Range("A1")
  Range("XFD1:XFD2").ClearContents
End If
End Sub
 
@VenA, super mooi thanks!, ik heb nu nog 1 ding. Ik heb nu een nieuwe waarde uitgever "165" en een nieuw tabblad aangemaakt. Is er een manier dat zodra er een nieuwe "uitgever" komt dat deze dan in de betreffende tabblad wordt weergeven?

Dank! :thumb:


Bekijk bijlage Omzet test 3.xlsb
 
Bekijk dit stukje eens en pas het aan naar behoefte.
Code:
If InStr("150151168170", Sh.Name) > 0 Then
 
Even googlen op 'commandbutton excel'


Hoi VenA,

Dank voor je reactie. Ik kom er echter niet uit hoe ik jouw code in een knop zet. Door jouw code te gebruiken worden de velden telkens ververst zodra ik op het tabblad kom, dmv een knop wil ik ervoor zorgen dat dit alleen gebeurd wanneer ik op de knop druk. Wat doe ik verkeerd?

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If InStr("150151168170", Sh.Name) > 0 Then
  Application.ScreenUpdating = False
  Columns("A:R").ClearContents
  Range("XFD1") = "Uitgever"
  Range("XFD2") = Sh.Name
  Sheets("Omzet").Cells(1).CurrentRegion.AdvancedFilter xlFilterCopy, Range("XFD1:XFD2"), Range("A1")
  Range("XFD1:XFD2").ClearContents
End If
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan