Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel] Automatisch een tab kopiëren bij openen document

Pagina: 1
Acties:

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Hallo allemaal,

Ik werk aan een tijdelijk excel project bij een grote multinational. Helaas is excel niet de juiste omgeving om te maken wat ze willen (een simulator) maar om een of andere reden staan ze er op om excel te gebruiken dus ik moet inventief wezen. Het spreadsheet is verschrikkelijk groot en complex (en bovendien "top secret"), dus ik kan het helaas niet helemaal uit de doeken doen. Vereenvoudigd komt het hier op neer:

- 1 tab voor queries
- 1 tab met de database
- 1 tab met een kopij van de database

Op het 1e tabblad wordt de data van het 2e tabblad vergeleken met de data van het 3e tabblad. Bepaalde gegevens kunnen gewijzigd worden op tabblad 3 (via tabbad 1) zodat er een verschil met tabblad 2 ontstaat.

De database moet echter flexibel zijn. Dwz: de gebruikers moeten data aan de database kunnen toevoegen. Voor de queries is het evenwel onontbeerlijk dat in zowel tabblad 2 als 3 dezelfde gegevens staan, anders valt er niet veel te vergelijken. Dit zou op te lossen zijn door de gebruiker de data te laten toevoegen aan beide tabbladen, of de gebruiker zelf te vragen om telkens hij data toegevoegd heeft het tabblad te kopiëren. Dit zijn echter weinig gebruiksvriendelijke oplossingen.

Mijn ideale oplossing zou zijn dat, telkens het exceldocument geopend wordt er automatisch een kopij van het tweede tabblad gemaakt wordt, daarbij de bestaande kopij overschrijvend. Dan kan ik als enige instructie geven aan de gebruikers dat ze het document moeten sluiten en heropenen nadat ze data toegevoegd hebben.

Pro info: het is Excel 2003 waar het bedrijf mee werkt. Access mag ik niet gebruiken. Visual Basic ken ik helaas niet, maar ik vermoed dat de oplossing daar ergens zal zitten... .

offtopic:
Knettergek... vragen ze me bij mijn sollicitatiegesprek of ik weet hoe ik iets in het vetjes zet en hoe een bestand te openen en dan krijg je zoiets op je bord :/


@Urk_forever
Kort gezegd: een bestaand tabblad kopiëren met inhoud en al zodra het document geopend wordt, een eventuele bestaande kopij overschrijven. Aan je code te zien is het dus wel degelijk mogelijk zulke opdrachten te laten doen bij het openen van het document. Ik ga 'ns googlen op basis van jouw code, maar wat ik dus wil zou er in pidgin-VB zo uitzien:

Visual Basic:
1
2
3
Private Sub Workbook_Open()
  ActiveWorkbook.Sheet"Data".CopyTo"Var"|Overwrite=Y
End Sub

[ Voor 11% gewijzigd door YellowOnline op 25-09-2008 13:51 ]


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 29-11 17:06
Ik snap niet helemaal wat je wilt doen. En nieuw tabblad kan je makkelijk in VBA toevoegen:

Visual Basic:
1
2
3
Private Sub Workbook_Open()
  ActiveWorkbook.Sheets.Add
End Sub


De cellen zou je dan ook nog kunnen kopieren.

Hail to the king baby!


Verwijderd

een bestaande kopie overschrijven zal moeilijk zijn (elke cel stemt overeen qua inhoud & opmaak, tenzij de term kopie in dit geval los geinterpreteerd wordt).
je zou natuurlijk op de naam van het tabblad afgaan en dat vergelijken. of bij het maken van een kopie op eoa manier aanduiden dat het om een kopie gaat, die bij de volgende keer dat het bestand geopend wordt, gewist mag worden.
Visual Basic:
1
2
3
'kopieer blad data, plaats het helemaal achteraan en herbenoem het naar "var"
ActiveWorkbook.Worksheets("data").Copy after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count).Name = "var"

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Dank voor jullie reacties. Vandaag heb ik een meeting gehad met het management en hen kunnen overtuigen, omdat ze een nóg hogere complexiteit willen, met Access te werken. Dit lost meteen al mijn problemen op.