Ander Excel bestand op de achtergrond openen middels VBA

  • Onderwerp starter Onderwerp starter dprod
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

dprod

Gebruiker
Lid geworden
2 jun 2010
Berichten
80
Beste mede Forum leden,

Na heel wat zoeken op internet toch besloten deze topic te starten, ik kom er nog niet helemaal uit...

Wat ik wil is het volgende:
Bij het openen van mijn Excel bestand moet er op de achtergrond een ander (database) Excel bestand geopend worden.
Ook moet dit (database) bestand uiteraard weer gesloten worden wanneer ik mijn Excel bestand sluit!
Hieruit wil ik vervolgens informatie halen middels zoek functies e.d. voor in mijn userform.
In het algemene bestand wil ik xlapp, xlbook & xlsheet declareren zodat deze door heel het bestand bruikbaar zijn.

Wat me tot nu toe wel lukt is het volgende:
Elke keer bij het gebruiken van de OK knop van mijn userform het (database) bestand laten openen d.m.v.
Declaraties in de userform code plaatsen & dan...
Application.ScreenUpdating = False
Workbooks.Open("Link.xls")
macro... code...
Workbooks("Link.xls").Close
Application.ScreenUpdating = True

Nadeel hiervan is dat hij elke keer het bestand moet openen en sluiten wat tijd kost!
+ Ik kan zo geen directe informatie laden in mijn userform uit het database bestand (bv project status van een ingevoerd project in TextBox1).

Graag zou ik een code willen, die een Excel.Application start in de achtergrond bij het opstarten van mijn bestand.
Deze code het juiste bestand laat openen (de database), en dit bestand dus open houd tot ik mijn Excel bestand weer afsluit.
Daarnaast moet het mogelijk zijn informatie uit deze database te zoeken EN te importeren in mijn userform!

Ik hoop dat het een beetje duidelijk is,
Alvast vriendelijk bedankt voor alle moeite...

Gr,
dprod
 
Dan kun je het ook opslaan als 'Werkruimte".
Onder Menu Bestand.
Is een .xlw extensie.
Als je deze opent, opent het alle .xls bestanden zoals opgeslagen.
 
Laatst bewerkt:
Bedankt voor je reactie,

Deze functie kende ik nog niet.
Echter na het proberen is me niet duidelijk hoe ik dan mijn (database) bestand op de achtergrond (niet zichtbaar) laat draaien.
Hij opent wel gewoon beide bestanden, maar dit is dus niet precies wat ik wil.
Mocht het toch kunnen middels deze functie, kan iemand mij dit dan uitleggen?
Alvast bedankt...

Gr,
dprod
 
Ik worstel met het zelfde probleem. Ik wil in een ander excelbestand data zoeken zonder dat deze 'zichtbaar' opent.

het openen en sluiten is geen probleem alleen zou ik dus willen dat Excel het werkboek niet op het scherm toont.
 
Kijk of jullie hier wat mee kunt.

Om uit een gesloten file een gegeven op te halen.
Zet de code in een module en een knop op het blad.
verbind de macro daar aan.
Code:
Sub test()				
 [A1] = "='[Afspraken.xls]Afspraken-An'!A1"				
End Sub
Range("A1")= "='[Filenaam.xls]Bladnaam'!Range("A1")"

Dit komt van Helpmij
 
Laatst bewerkt:
Het kan ook met Inputboxen.
Zo plaatst hij het in de activecel.

Code:
Sub test()
  A = InputBox("Welke file?", "Naam van een file")
  B = InputBox("Welblad?", "Geef de bladnaam")
  C = InputBox("Welke cel?", "Geef de cel die u zoekt")
  ActiveCell= "='[" & A & "]" & B & "'!" & C
End Sub
 
Laatst bewerkt:
Het is me gelukt d.m.v. deze (ingekorte) code...

Code:
Public Sub OpenDatabase()

    Dim active As String
    Dim wb As Workbook

Application.ScreenUpdating = False
active = ActiveWorkbook.Name

    On Error Resume Next:
    Set wb = Workbooks("database.xls")
    On Error GoTo 0

If wb Is Nothing Then
    On Error GoTo ErrMsg
    Set wb = Workbooks.Open("C:\test\database.xls")

    wb.Activate
    ActiveWindow.Visible = False
    Workbooks(active).Activate
Else
    wb.Activate
    ActiveWindow.Visible = False
    Workbooks(active).Activate
End If

Application.Screenupdating = True

ErrMsg:
    MsgBox "Kan het database bestand niet openen"
    On Error GoTo 0
    Exit Sub

End Sub

Gr,
dprod
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan