• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Knop afsluiten met VBA

Status
Niet open voor verdere reacties.

keesantens

Gebruiker
Lid geworden
29 sep 2012
Berichten
17
Beste lezers,

Het volgende probleem, ik heb het volgende vba code gebruikt:
Code:
Sub Diagram29_Klikken()
ActiveWorkbook.Save
Application.Quit
End Sub

Als ik op de zelf gemaakt knop druk om af te sluiten, sluit alle andere openstaand Excel-sheets ook af.:confused:

Is hier een oplossing voor?
 
Laatst bewerkt door een moderator:
Application.Quit sluit inderdaad Excel helemaal af.
Als je alleen het open werkboek wilt sluiten gebruik je ActiveWorkbook.Close
 
Hier alles in een regelcode.
Je werkboek sluit nu en wordt opgeslagen.
Code:
Sub Diagram29_Klikken()
 thisworkbook.close true
End Sub
 
Hallo edmoor & HSV,

Nu blijft de werkbalk en menubalk open staat, bij het toepassen van ActiveWorkbook.Close of thisworkbook.close true!
Hoe loos je dat dan op??

groetjes,
Kees
 
Dat klopt. Dat is Excel wat open blijft. Dat wilde je toch?
Je kunt dan een ander document openen of activeren.
 
Nee, wat ik wil is als er een twee Excel sheets open staat en ik sluit af via knop die ik heb gemaakt dat die andere open blijft staan.

Wat gebeurd er nu als ik de codes ActiveWorkbook.Close of thisworkbook.close true gebruik, en afsluit via knop:
- als ik één sheet open heb staan, en ik sluit deze af via knop, dan sluit alleen het venster, en niet de menubalk, titelbalk en werkbalk die blijft openstaan.

Groetjes,
Kees
 
Als je 1 of meerdere Excel sheets open hebt staan is er nog steeds maar 1 Excel instance actief. Als je die instance afsluit gaan alle documenten dicht. Je wilt kennelijk Excel open houden. Dat kan, zoals aangetoond. Er is dus een verschil tussen een open Excel en een open document. Dat zijn 2 verschillende dingen. Met de acties zoals getoond wordt het actieve document gesloten en Excel blijft open.

Kijk dus eerst eens wat je precies wilt.
 
Laatst bewerkt:
s6(2).webp

Dit wordt niet afgesloten, maar moet ook afgesloten worden.
Als ik het x rechtsboven gebruik wordt het geheel afgesloten.

Groetje,
Kees
 
Wat daar nog open staat is Excel zelf en niet een Excel document. Heb je mijn vorige reactie gelezen en is je het verschil tussen het programma Excel en een Excel document duidelijk? Je wilde alleen het document sluiten en niet Excel. Dat is precies wat er gebeurd en wat je dan overhoud is een kale Excel zoals in je plaatje.
 
Zoals je eerder al deed, met Application.Quit, maar dat wilde je niet omdat andere open documenten dan ook gesloten worden.
Als je Excel open wilt houden kan dat prima en dan kun je vanuit diezelfde VBA code een ander open document activeren, een ander document openen of een nieuw document aanmaken.
 
Dan zal ik die knop maar weg halen, en via het X rechtsboven in titelbalk af gaan sluiten, dan werkt het wel.

In ieder geval bedankt voor de moeite, en zou je toch een oplossing hiervoor hebben, hoor ik het graag!

groetjes,
Kees
 
Met de X rechtsboven sluit je ook Excel, en dus eventuele open documenten af. Misschien dat we langs elkaar heen praten.
 
@edmoor;
Dat dacht ik ook al en hield me maar op de achtergrond. :)

Misschien hier een voorstel.
Staat er maar één workbook open sluit excel geheel af.
Bij meerdere sluit alleen het bestand.
Code:
Sub Diagram29_Klikken()
Dim w As Workbook, y As Long
For Each w In Workbooks
  y = y + 1
 Next
   If y = 1 Then
     ThisWorkbook.Save
  Application.Quit
 Else
   ThisWorkbook.Close True
 End If
End Sub
 
Het zou maarzo kunnen dat hij dat bedoeld ;)
 
Hoi HVS,

Als er meerdere sheets open staan dan worden die ook mee afgesloten, dus het werkt nog niet!
Je bedoeling is goed.

groetjes,
Kees
 
Kees,

Ik begrijp helaas dan niet wat je precies wil.
Je wil een bestand opslaan en dat blad wil je niet meer zichtbaar?
Als alle bladen niet meer zichtbaar zijn op één na, dan bij de volgende klik Excel sluiten?

We vernemen het wel.
Hopelijk haal je de woorden en letters niet door elkaar zoals je met mijn gebruikersnaam doet.
 
Hoi HVS en edoor,

Misschien heeft het wel hier mee te maken, zie hieronder komende code uit formulier (VBA):

Private Sub Workbook_Open()
Sheets("6S Scherm").Select
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayFullScreen = True
Application.Caption = "Application 2013 Created by Kees Antens"
Application.DisplayAlerts = False

iTijd = Hour(Time)
If iTijd >= 0 And iTijd < 6 Then sGroet = "Goedenacht"
If iTijd >= 6 And iTijd < 12 Then sGroet = "Goedemorgen"
If iTijd >= 12 And iTijd < 18 Then sGroet = "Goedemiddag"
If iTijd >= 18 And iTijd <= 23 Then sGroet = "Goedenavond"
MsgBox sGroet & " Auditeur & Operator veel succes!", vbInformation, "Hallo gebruiker! " & Format(Date, "dddd d mmmm yyyy") & " " & Format(Time, "hh:mm:ss")
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)

ActiveWorkbook.Save

MsgBox sGroet & "Houdoe & bedankt Auditeur & Operator!", vbInformation, "Houdoe & bedankt! " & Format(Date, "dddd d mmmm yyyy") & " " & Format(Time, "hh:mm:ss")
Application.DisplayAlerts = True
Application.Quit
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
ActiveWindow.DisplayWorkbookTabs = True
End Sub



Als ik alle codes uit het formulier haal werkt het wel, jouw code:

Sub Diagram29_Klikken()
Dim w As Workbook, y As Long
For Each w In Workbooks
y = y + 1
Next
If y = 1 Then
ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close True
End If
End Sub


Zit er een fout in de code van het formulier????

Groetjes,
Kees
 
Deze code staat in Thisworkbook
Code:
Private Sub Workbook_Open()
Sheets("6S Scherm").Select
ActiveWindow.DisplayWorkbookTabs = False
Application.DisplayFullScreen = True
Application.Caption = "Application 2013 Created by Kees Antens"
Application.DisplayAlerts = False

iTijd = Hour(Time)
If iTijd >= 0 And iTijd < 6 Then sGroet = "Goedenacht"
If iTijd >= 6 And iTijd < 12 Then sGroet = "Goedemorgen"
If iTijd >= 12 And iTijd < 18 Then sGroet = "Goedemiddag"
If iTijd >= 18 And iTijd <= 23 Then sGroet = "Goedenavond"
MsgBox sGroet & " Auditeur & Operator veel succes!", vbInformation, "Hallo gebruiker! " & Format(Date, "dddd d mmmm yyyy") & " " & Format(Time, "hh:mm:ss")
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)

ActiveWorkbook.Save

MsgBox sGroet & "Houdoe & bedankt Auditeur & Operator!", vbInformation, "Houdoe & bedankt! " & Format(Date, "dddd d mmmm yyyy") & " " & Format(Time, "hh:mm:ss")
Application.DisplayAlerts = True
Application.Quit
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
ActiveWindow.DisplayWorkbookTabs = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan