[Access/Excel 2000 + VBA] Probleem: werkmap hidden

Pagina: 1
Acties:

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 00:06
Na een tijd lang googlen, trial & error'en en zoeken op GoT zonder resultaat besloot ik toch maar een topic te maken.


In Access heb ik een script dat Excel bestanden opent, wat variabelen wijzigt en vervolgens weer moet opslaan, waarna ze wee handmatig bewerkt worden.

Punt is alleen dat wanneer ik vanuit het VBA script het bestand opsla en daarna open in Excel dat er niks zichtbaar is totdat je naar 'Venster > Zichtbaar maken...' gaat en het bestand handmatig kiest.

Ik vroeg me dus af of er een manier is om te voorkomen dat de Werkmap hidden wordt opgeslagen in het bestand.

code:
1
2
3
4
Set xlobj = GetObject(XlsBestand)
Set wsobj = xlobj.worksheets(WorkSheetje)

wsobj.SaveAs FileName:=NewFileName

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Da's weird, je zou expliciet het volgende voor je save kunnen zetten:

Visual Basic:
1
Windows("Naam van je map").Visible = True

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 00:06
Werkt niet. Windows is geen functie oid.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Nee, dat verbaast me niks. Je werkt in Access en Access heeft geen impliciete variabele die een property windows heeft. Het zal dus iets moeten worden als:
xlApp.windows(). Makkelijker en mooier is het om direct het worksheet zelf aan te spreken met
code:
1
wsobj.visible=-1

Overigens is het bizar: standaard zijn sheets niet hidden. Wss wordt er ergens in de code zelf het sheet op hidden gezet. Die regel zou je gewoon weg moeten halen.
BarôZZa schreef op woensdag 21 december 2005 @ 11:49:
Werkt niet. Windows is geen functie oid.
offtopic:
Dit is wel heel kortaf. Als jij de moeite niet doet om even precies de foutmelding over te tikken, waarom verwacht je dan wel van anderen dat ze de moeite willen doen om jou verder te helpen

[ Voor 1% gewijzigd door Lustucru op 21-12-2005 12:18 . Reden: xlVisible is geen constante in Access |:( ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 00:06
De foutmeldingen zijn behoorlijk nietszeggend in dit geval.

De worksheet direct aanroepen werkt niet. xlVisible is geen bestaande variable krijg je dan.

Had het al eerder geprobeerd door wsobj.visible=true te gebruiken, maar ook dat werkt niet.

Zal even kijken of de andere oplossing wel werkt.


Het is op zich trouwens wel logisch: zodra je vanuit Access een excel-bestand op deze manier opent, dan is deze niet zichtbaar. Het irritante is dus alleen dat hij dat ook gelijk meeneemt wanneer je het weer wilt opslaan.

[ Voor 28% gewijzigd door BarôZZa op 21-12-2005 12:19 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

BarôZZa schreef op woensdag 21 december 2005 @ 12:15:
De foutmeldingen zijn behoorlijk nietszeggend in dit geval.
Dat het jou niets zegt wil niet zeggen dat het een ander ook niets zegt ;)
De worksheet direct aanroepen werkt niet. xlVisible is geen bestaande variable krijg je dan.
Tuurlijk niet; je werkt in Access. FYI, xlVisible=-1.
Had het al eerder geprobeerd door wsobj.visible=true te gebruiken, maar ook dat werkt niet.
foutmelding?
Zal even kijken of de andere oplossing wel werkt.


Het is op zich trouwens wel logisch: zodra je vanuit Access een excel-bestand op deze manier opent, dan is deze niet zichtbaar. Het irritante is dus alleen dat hij dat ook gelijk meeneemt wanneer je het weer wilt opslaan.
Dit is onzin. Het feit dat het excelvenster onzichtbaar zegt niets over de zichtbaarheid van het werkblad bij openen. Standaardgedrag is het igg niet.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 00:06
Niesje schreef op woensdag 21 december 2005 @ 12:30:

Tuurlijk niet; je werkt in Access. FYI, xlVisible=-1.
Ook met -1 krijg ik dat het werkblad nog steeds niet zichtbaar is wanneer ik het bestand heropen.
foutmelding?
Geen foutmelding. Gewoon hetzelfde verhaal.
Dit is onzin. Het feit dat het excelvenster onzichtbaar zegt niets over de zichtbaarheid van het werkblad bij openen. Standaardgedrag is het igg niet.
Hmm ok, dat leek mij de enige logische verklaring.

Verwijderd

je gebruikt reeds bestaande excelbestanden. zeker dat deze al niet reeds verborgen vensters hadden voor ze in access geopend werden?
anyway: wsobj.parent.windows(1).visible=true zou moeten werken.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Niesje schreef op woensdag 21 december 2005 @ 12:09:
Nee, dat verbaast me niks. Je werkt in Access en Access heeft geen impliciete variabele die een property windows heeft. Het zal dus iets moeten worden als:
xlApp.windows(). Makkelijker en mooier is het om direct het worksheet zelf aan te spreken met
code:
1
wsobj.visible=-1
offtopic:
Pfff, maar goed dat je OFF mod bent ;). Ik zat nog in Excel te denken :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

inderdaad. je kan de constanten van een andere toepassing wel gebruiken als je een verwijziging naar de typelibrary maakt. (vbe->extra->verwijzingen)
de voorgestelde oplossing (wsobj.visible=-1) werkt echter op sheetniveau, terwijl het TS probleem zich op workbook niveau situeert.

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 00:06
Verwijderd schreef op woensdag 21 december 2005 @ 14:21:
je gebruikt reeds bestaande excelbestanden. zeker dat deze al niet reeds verborgen vensters hadden voor ze in access geopend werden?
anyway: wsobj.parent.windows(1).visible=true zou moeten werken.
Bedankt, werkt nog net wat beter en mooier dan de oplossing die ik had gevonden:

xlobj.Application.Visible = True
Pagina: 1