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

Samenvoegen werkbladen uit verschillende bestanden

Status
Niet open voor verdere reacties.

basblok

Gebruiker
Lid geworden
11 nov 2011
Berichten
330
Geacht forum,

Uit bijgevoegd bestand wil ik verschillende tabbladen samenvoegen op een totaaloverzicht.
De pagina heet in dat geval BP.Totaaloverzicht
Het gaat om de bladen 9-10.BP 7-8.BP 7-8.BP (2) 7-8.BP (3) 7-8.BP (4) 7-8.BP (5) en 7-8.BP (6).
Het komt er dus op neer dat alle bladen met het kenmerk .BP op één blad komen te staan.
Hoe moet ik dat doen?

Zie met belangstelling het advies tegemoet,
Bas Blok
 

Bijlagen

Laatst bewerkt:
Wat is samenvoegen ? gewoon onder elkaar copiëren ?
Er is een moeilijkheid dat de records in de diverse sheets onderling niet herkenbaar zijn en dus bij het samenvoegen niet meer van elkaar kunnen onderscheiden worden. Kolom bijzetten met de label van de sheet van oorsprong ?

Eénmalig ? automatiseren voor herhaaldelijk uitvoeren ?
 
In je titel zeg je : '... uit verschillende bestanden.'
In je vraag gaat het dan weer over één bestand, met diverse sheets ... hoe zit die situatie ?
 
Het is inderdaad 1 bestand en het gaat om een totaaloverzicht van de .BP bladen op 1 pagina verzamelen.
 
Het is inderdaad 1 bestand en het gaat om een totaaloverzicht van de .BP bladen op 1 pagina verzamelen.

OK... wil ik proberen op basis van je voorbeeld.
Ik ga wel alle sheets eruit halen die er niet toe doen : vertrouw er dan wel op dat je mijn oplossing dan zelf kan importeren in je werkende werkboek : ik help je daarmee dan ook wel even.

Kan wel eventjes duren - hou het topic in de gaten !
 
Ik zal het even afwachten en dan zelf importeren in het werkende bestand.
Alvast dank voor je medewerking.
 
Code:
Option Compare Text                              'niet hoofdlettergevoelig

Sub samenvatten()
   For Each sh In ThisWorkbook.Worksheets        'alle werkbladen aflopen
      If sh.Name Like "*.BP*" Then               'werkbladnaam filteren op dit
         MsgBox sh.Name                          'eventjes naam zeggen
         sh.Unprotect                            'beveiliging eraf
         sh.Range("A1").CurrentRegion.Copy Sheets("BP.Totaaloverzicht").Range("A" & Rows.Count).End(xlUp).Offset(1)   'doorkopieren
         sh.Protect userinterfaceonly:=True      'beveiliging er terug op
      End If
   Next
End Sub
 
Voorlopig effe opleveren ...

Hier je bestand, niets veranderd aan de inhoud ...
Op het eerste blad, het overzichtsblad gewoon op de knop bovenaan in beeld drukken !

Ik heb voortgebouwd op de post van @cow18, want die was prima !
Enkel voor gezorgd dat de samenvoeging steeds opnieuw kan worden opgebouwd + niet de formules, maar de values gecopieerd want anders zit het uiteraard vol #N/A 's

Alle commentaar welkom ....
 

Bijlagen

Bijna perfect,
die select's, dat is iets overbodigs, te vermijden ...
Ook nuttig gebruik maken van With ... End With
Ondertussen ook die kopregels, behalve te eerste, verwijderd.
Code:
Sub samenvatten()
   Dim sh
   'eerst leegmaken
   With Sheets("BP.Totaaloverzicht")
      .UsedRange.ClearContents

      'dan opnieuw vullen
      For Each sh In ThisWorkbook.Worksheets     'alle werkbladen aflopen

         If sh.Name Like "*.BP*" Then            'werkbladnaam filteren op dit
            MsgBox "Kaart " & sh.Name & " wordt toegevoegd"   'eventjes naam zeggen (kan uitgeschakeld door comment-teken)
            sh.Unprotect                         'beveiliging eraf
            sh.Range("A1").CurrentRegion.Copy    'kopieren (eerste keer ook koprij)
            With .Range("A" & Rows.Count).End(xlUp).Offset(1)
               .PasteSpecial xlPasteValues       'paste values
               If .Row > 2 Then .EntireRow.Delete   'die koprij er niet inzetten behalve de 1e keer
            End With
            sh.Protect userinterfaceonly:=True   'beveiliging er terug op
         End If

      Next
      Application.Goto .Range("A1")
   End With
End Sub

nog een toevoeging, maar dat kost hier wel vrij veel tijd (2 sec extra bij het openen).
Als je in Thisworkbook onderstaande code zet, dan maak je dat, zelfs als de werkbladen beveiligd zijn, de macros toch hun werk kunnen doen.
Dan mogen die unprotect en protect in de 1e macro weg.
Code:
Private Sub Workbook_Open()
   For Each sh In ThisWorkbook.Worksheets        'alle werkbladen aflopen
      If sh.ProtectContents Then                 'is werkblad beveiligd
         sh.Unprotect                            'beveiliging eraf (indien geen paswoord)
         sh.Protect userinterfaceonly:=True      'beveiliging er terug op, macros mogen nu alles
      End If
   Next
End Sub
 
Laatst bewerkt:
Ondertussen ook die kopregels, behalve de eerste, verwijderd.
Had ik ook over gedacht, maar was niet zeker of het tussengevoegd laten van die kopregels voor de TS géén pluspunt was om de scheiding tussen de oorspronkelijke sheets nog te zien...

Maar inderdaad, nu is het af ! denk ik ...
 
Samenvoegen werkbladen

Beste DigiCafee,

Grote klasse en volgens mij werkt het goed. Ik heb hierbij nog één aanpassing nodig;
Is de knop ( Macro ) welke de samenvatting in werking stelt te plaatsen op het Hoofdblad Menu?

Is er een knop nodig om het blad''leeg' te maken of wordt het gewoon overschreven als opnieuw op de knop wordt gedrukt?

Graag nog even een update. Voor dit moment in ieder geval grote waardering voor het in orde maken.

Met vriendelijke groet,
Bas Blok
 
Doe ik meteen na de middag ... komt eraan, nu even andere zaken die niet kunnen wachten
 
Definitief denk ik ...

Hierbij ...verplaatst...
Scherm weergave wat rustiger gemaakt tijdens de macro + terugkeren bovenaan het overzicht.

--> Ja, de macro zorgt vlak voor het aanmaken voor een volledig leegmaken. Op die manier heb je in het overzicht steeds de meest recente versie van je overzicht beschikbaar. Wens je een nieuw gewoon de knop zijn werk laten doen !
 

Bijlagen

Er zit nog een klein probleempje in.
Als je op de knop hebt geklikt van Totaaloverzicht aanmaken voor BP dan zou je daarna moeten terugkeren naar het menu.
Kan je dat nog even aanpassen?

Voor de rest werkt het nu - na een paar wijzigingen te hebben toegepast - perfect.
Bravo voor de ondersteuning.
 
Laatst bewerkt:
Kan ook heel simpel met PowerQuery trouwens.

Niet haalbaar voor de TS - moet véél intuitiever en automatischer zijn ... als er aan alle gebruikers van dat bestand moest uitgelegd worden hoe Power Query werkt (en add-in installeren) had TS gewoon géén stap verder gestaan ...
Soms is de optimale oplossing voor de kenner, gewoon géén oplossing voor de leek hé ...
 
Ik kan niet zeggen dat VBA intuitiever is dan een beetje klikken in PQ. Ik zie nergens welke versie TS gebruikt, als het 2016 is dan valt er niks te installeren maar is alles standaard ingebouwde functionaliteit. En klikken op alles vernieuwen is toch echt niet moeilijker dan op een knopje?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan