Toon posts:

[EXCEL 2000] VBA ander werkbook openen

Pagina: 1
Acties:
  • 842 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik probeer een een macro een ander werkbook te openen en dan het huidige werkbook te sluiten.

Excel springt iedere keer terug naar het huidige werkbook en geeft een foutmelding op de regels
code:
1
2
3
4
[*]WorkBook.Close
[*]Workbooks.Close
[*]Workbook("Huidige.xls").Close
[*]Workbooks("Huidige.xls").Close
]

Ook de toevoeging SaveChanges = False helpt niet

Komt het omdat de Macro onderdeel is van Huidige.xls?? |:( (8>

Wie kan mij helpen ???? 8)7

[ Voor 5% gewijzigd door Lustucru op 22-12-2005 11:34 ]


  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Workbooks.Add om een nieuwe workbook te openen
Workbooks("naam.xls").activate om de juiste workbook te selecteren
Workbooks.Close om de geactiveerde/geselecteerde workbook te sluiten

Application.displayalerts = false
Application.displayalerts = true om ervoor te zorgen dat je geen prompt krijgt of je wilt opslaan of niet.

Hier zou je wat verder mee moeten kunnen !
Succes

iets met foto's...


Verwijderd

Topicstarter
Dit is de Macro waar het over gaat,....

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Uw_Keuze()
    Sheets("Sheet1").Select
    Range("A1").Select
    If ActiveCell.Value = 1 Then
        Workbooks.Open Filename:="Proforma berekening 2005.xls"
        Workbooks("Proforma berekening 2005.xls").Activate
        Else
        Workbooks.Open Filename:="Proforma berekening 2006.xls"
        Workbooks("Proforma berekening 2006.xls").Activate
    End If
    Workbooks.Close   
    Application.DisplayAlerts = False
End Sub


Helaas hij loopt nog steeds vast op Workbooks.Close

[ Voor 9% gewijzigd door Lustucru op 22-12-2005 11:33 ]


  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Wat is je foutmelding ?

Bovendien moet je de regel application.displayalerts=false bovenaan je code zetten, en dan onderaan je code weer application.displayalerts=true neerzetten. Anders blijft in Excel displayalerts uitgeschakeld.

voorbeeldje van hoe je het zou kunnen oplossen: iig moet je activeworkbook.close gebruiken (met ACTIVE ervoor dus.. :))
let ook op de positionering van de displayalerts...

code:
1
2
3
4
5
6
7
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= "c:\blaat"
Application.DisplayAlerts = True


ActiveWorkbook.Saved = True
ActiveWorkbook.Close

iets met foto's...


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

lees je even Officesuites en -software - Beleid en Policy: Alle regels die op het forum gelden door? Als VBA een foutmelding geeft vermeld je die natuurlijk er even bij ;) Verder hoeft de code echt niet in vet. Staat nogal schreeuwerig. Gebruik ipv daarvan de [code=vb][/code] tags.

[ Voor 8% gewijzigd door Lustucru op 22-12-2005 12:05 . Reden: I:( ]

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


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:54
Dit is wel een charmante oplossing.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Uw_Keuze()
Dim ditwerkboek as Workbook
Set ditwerkboek = activeworkbook
    Sheets("Sheet1").Select
    Range("A1").Select
    If ActiveCell.Value = 1 Then
        Workbooks.Open Filename:="Proforma berekening 2005.xls"
        Workbooks("Proforma berekening 2005.xls").Activate
        Else
        Workbooks.Open Filename:="Proforma berekening 2006.xls"
        Workbooks("Proforma berekening 2006.xls").Activate
    End If
ditwerkboek.saved = true 'hierdoor vraagt excel niet meer of je iets wil saven, omdat'ie denkt dat dat al gebeurt is.
ditwerkboek.Close
End Sub

@Gulf_5: Ik denk dat zijn net geopende werkboek activated is, dus weet niet zeker of jou idee werkt.

[ Voor 14% gewijzigd door onkl op 22-12-2005 11:54 ]


  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Verwijderd schreef op vrijdag 02 december 2005 @ 08:39:
Dit is de Macro waar het over gaat,....

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Uw_Keuze()
    Sheets("Sheet1").Select
    Range("A1").Select
    If ActiveCell.Value = 1 Then
        Workbooks.Open Filename:="Proforma berekening 2005.xls"
        Workbooks("Proforma berekening 2005.xls").Activate
        Else
        Workbooks.Open Filename:="Proforma berekening 2006.xls"
        Workbooks("Proforma berekening 2006.xls").Activate
    End If
    Workbooks.Close   
    Application.DisplayAlerts = False
End Sub


Helaas hij loopt nog steeds vast op Workbooks.Close
Het probleem wat je hebt is dat je de gehele "Workbooks"-collectie probeert af te sluiten. onkl heeft al een oplossing voor je gevonden, maar ik wilde even aangeven waarom VBA/Excel je de error melding geeft.

Volgende keer moet je dus iets gebruiken als:
(als je weet dat je het actieve workbook wilt afsluiten)
Visual Basic:
1
ActiveWorkbook.Close
of (als je weet welke index het workbook heeft wat je dicht wilt maken)
Visual Basic:
1
Workbooks(1).Close
of
Visual Basic:
1
Workbooks("naamworkbook.xls").Close

-- == Alta Alatis Patent == --

Pagina: 1