Gegevens van meerdere tabbladen samenvoeg tot 1 tabblad in een gedeeld bestand

Status
Niet open voor verdere reacties.

cello249

Gebruiker
Lid geworden
1 jul 2009
Berichten
14
Hoi allemaal,

Ik heb een stuk VBA code voor het samenvoegen van gegevens van verschillende tabbladen naar 1 tabblad.
Deze code werkt prima.
In de code wordt echter het bestaande tabblad gegevens verwijderd en opnieuw toegevoegd om vervolgens de nieuwe gegevens op weg te schrijven.

Ik moet deze code nu gebruiken in een gedeeld bestand en loop tegen het probleem aan dat het verwijderen en toevoegen van een tabblad in een gedeeld bestand niet mogelijk is.
Hebben jullie een oplossing, zonder dat het delen van het bestand wordt afgehaald?

Code:
Sub integratie()
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim sh As Worksheet
    
'gegevens integreren
    Sheets("gegevens").Select
    ActiveWindow.SelectedSheets.Delete

    With ActiveWorkbook.Sheets.Add
    .Name = "gegevens"
    For Each sh In Worksheets(Array("team a", "team b", "team c", "team d", "team e", "team f"))
    sh.UsedRange.Copy .Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Next
  End With



       
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub
 
Waarom gooi je het blad eerst weg om 'm daarna opnieuw aan te maken? Makes little sense... Maak 'm desnoods gewoon leeg en plak daarna je gegevens er in.
 
Hoi Octafish,

Je hebt helemaal gelijk, maar ik krijg dus het stukje code niet werkend als ik geen nieuw tabblad toevoeg. En dat kan dus niet bij een gedeeld bestand.
Dus is de vraag eigenlijk hoe pas ik het stukje code aan om niet meer een tabblad te hoeven verwijderen en opnieuw toe te voegen, maar dat de gegevens worden samengevoegd op een bestaand tabblad?:eek:
 
Dit al geprobeerd?
Code:
    ActiveSheet.Cells.ClearContents
 
Hoi OctaFish,

Het probleem is niet het leegkrijgen, maar het stukje code dat de gegevens van de tabbladen overzet naar het samenvoegtabblad.
Code:
With ActiveWorkbook.Sheets.Add
    .Name = "gegevens"
    For Each sh In Worksheets(Array("team a", "team b", "team c", "team d", "team e", "team f"))
    sh.UsedRange.Copy .Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Next
  End With

Als ik de
Code:
"With ActiveWorkbook.Sheets.Add"
verwijder en verwijs naar
Code:
Sheets("gegevens").Select
dan krijg ik een compileerfout (Ongeldige of niet gekwalifideerde verwijzing) bij de .Cells.
 
Laatst bewerkt:
Het helpt als je je vragen duidelijk stelt.... Hoe moet ik dit:
Ik moet deze code nu gebruiken in een gedeeld bestand en loop tegen het probleem aan dat het verwijderen en toevoegen van een tabblad in een gedeeld bestand niet mogelijk is.
rijmen met:
Het probleem is niet het leegkrijgen, .....
Je probeert in je beveiligde bestand een werkblad toe te voegen. Dat doe je omdat je eerst een werkblad weggooit. Maar iets dat je niet weggooit, hoef je ook niet toe te voegen.....
 
Code:
With Sheets("gegevens")
'rest van je code
End With
 
Hoi Warme Bakkertje,

Dat is de oplossing. Helaas wordt het bestand (het daadwerkelijke bestand is veel groter dan het ingezonden testbestand) door het delen zo langzaam lang dit niet echt een oplossing lijkt. Zeker omdat dit mogelijk gevolgen heeft voor het delen.
Een optie voor mij is om bij einde werktijd de macro te draaien, dan hoef ik in ieder geval het delen en de beveiliging niet te verwijderen.

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