Print side | Luk vindue

Gem & Luk

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=4408
Udskrevet den: 02.Maj.2024 kl. 20:53


Emne: Gem & Luk
Besked fra: prefalch
Emne: Gem & Luk
Posteringsdato: 23.Nov.2020 kl. 14:11
Jeg har leget lidt med denne

If Application.Workbooks.Count = 1 Then
Application.DisplayAlerts = False
Application.Quit
Else
ThisWorkbook.Close False
End If

Vil gerne kombinere med at det aktuelle ark gemmes først og at der kommer en kontrolboks op og spørger om det er rigtigt at der skal gemmes inden der lukkes.

Som jeg forstår ovennævnte kode så lukker den kun det aktuelle ark, hvis der er flere åbne.

Med venlig hilsen
Preben



Svar:
Besked fra: Bjarnehansen
Posteringsdato: 23.Nov.2020 kl. 16:10
prøv at se på denne

'------------'
' Gem og luk '
'------------'
        
'Slår fra så der ikke spørges om "Er du sikker?"
    'Application.DisplayAlerts = False

'Gemmer og lukker
    
    ActiveWorkbook.Save
    ThisWorkbook.Close False



-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: Ib Hansen
Posteringsdato: 24.Nov.2020 kl. 01:42
Jeg har de tre almindelige jeg bruger.

Gemmer og lukker - Uden at spørge.
'------------'
' Gem og luk '
'------------'
'Lukker alle popup vinduer
    Dim objLoop As Object
    
    For Each objLoop In VBA.UserForms
        If TypeOf objLoop Is UserForm Then Unload objLoop
    Next objLoop
    
'Slår fra så der ikke spørges om "Er du sikker?"
    Application.DisplayAlerts = False

'Gemmer og lukker Excel
    ActiveWorkbook.Save
    Excel.Application.Quit

Gem som - Vil gemme i formatet *.xlsm som standard - (Excel m. makro).
Tjekker også om filen er åben i et andet vindue.
'------------------'
' Gem som nyt navn '
'------------------'
'Lukker alle popup vinduer
    Dim objLoop As Object
    
    For Each objLoop In VBA.UserForms
    If TypeOf objLoop Is UserForm Then Unload objLoop
    Next objLoop

    Dim varWorkbookName As String
    Dim sFileExtension As String
    Dim ans As VbMsgBoxResult
    
    Application.EnableEvents = False
     
    varWorkbookName = Application.GetSaveAsFilename(InitialFileName:="", _
    filefilter:="Excel Macro Enabled Workbook (*.xlsm), *.xlsm)", _
    FilterIndex:=1)
     
    If varWorkbookName <> "False" Then
        sFileExtension = CreateObject("Scripting.FileSystemObject").GetExtensionName(varWorkbookName)
        sFileExtension = CreateObject("Scripting.FileSystemObject").GetExtensionName(varWorkbookName)
        varWorkbookName = Left(varWorkbookName, Len(varWorkbookName) - Len(sFileExtension)) & "xlsm"
         
        If Dir(varWorkbookName) <> "" Then
            ans = MsgBox("   " & Mid$(varWorkbookName, InStrRev(varWorkbookName, "\") + 1) _
            & vbCrLf & "   findes allerede." _
            & vbCrLf & vbCrLf & "   Skal den eksisterende fil erstattes ?", _
            vbYesNo + vbInformation, "Bekræft Gem som")
            If ans = vbYes Then
                 
                Application.DisplayAlerts = False
                On Error GoTo FileOpen
                ActiveWorkbook.SaveAs Filename:=varWorkbookName, _
                FileFormat:=xlOpenXMLWorkbookMacroEnabled
                Application.DisplayAlerts = True
            End If
        Else
             
            ActiveWorkbook.SaveAs Filename:=varWorkbookName, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled
        End If
    End If

    Application.EnableEvents = True
    Exit Sub
    
FileOpen:
    MsgBox "   Filen er åben i et andet vindue." _
            & vbNewLine & vbNewLine & "   Luk filen og gem igen.", _
            vbExclamation, "Fil åben"

Bare Gem.
'-----'
' Gem '
'-----'
    ThisWorkbook.Save


-------------
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)


Besked fra: prefalch
Posteringsdato: 24.Nov.2020 kl. 07:44
Den midterste ser spændende ud.
Hvordan får du lagt filen i den samme mappe som den er åbnet fra, når jeg prøver din kode lægger den den nye fil i dokument mappen.


Besked fra: Ib Hansen
Posteringsdato: 24.Nov.2020 kl. 09:41
Den midterste kode virker nøjagtig som "Gem som" i ethvert program.

Der sker det samme, hvis:
- Du laver en knap (button) med koden...
- Eller hvis du åbner Filer i Excels menulinje og klikker på "Gem som"...

Lad os forudsætte du har lavet dit Excel Regneark og du har navngivet det.

Gem:
Bruges hvis dokumentet bare skal gemmes.

Gem som:
Bruges hvis dokumentet skal "gemmes som" et andet navn.
- Det gemmes i den mappe, det er åbnet fra.
- Hvis mappen ikke eksisterer, åbnes et dialog vindue, hvor du kan klikke dig frem til den mappe, det skal gemmes i.

Gem og luk.
Bruges hvis dokumentet bare ska gemmes og Excel herefter skal lukkes.

Åben et nyt frisk Excel ark.
- Lav 3 CommandButtons.
- Kopier hver enkelt af ovenstående koder ind i hver af de 3 CommandButtons.
- Gem arket og navngiv det f.eks. "Test" i en mappe på dit skrivebord.
- Luk Excel helt ned.
- Åben herefter arket fra mappen på dit skrivebord og test hvordan de forskellige knapper/koder virker.

Se også, hvordan det virker her...
- Download og gem det vedhæftede ark.
- Accepter redigering og makro'er, når arket (Blodtryksskemaet) åbnes.
- De 3 knapper er i øverste venstre hjørne af menulinjen (Ribbon).

uploads/1125/Blodtryksskema.xlsm" rel="nofollow - Download mit ark ved at klikke her.
Ps - Klik ikke på det store blodtryksapparat, når du åbner arket Wink



-------------
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)


Besked fra: Ib Hansen
Posteringsdato: 24.Nov.2020 kl. 09:42
Citat: Ib Hansen Ib Hansen skrev:

Den midterste kode virker nøjagtig som "Gem som" i ethvert program.

Der sker det samme, hvis:
- Du laver en knap (button) med koden...
- Eller hvis du åbner Filer i Excels menulinje og klikker på "Gem som"...

Lad os forudsætte du har lavet dit Excel Regneark og du har navngivet det.

Gem:
Bruges hvis dokumentet bare skal gemmes.

Gem som:
Bruges hvis dokumentet skal "gemmes som" et andet navn.
- Det gemmes i den mappe, det er åbnet fra.
- Hvis mappen ikke eksisterer, åbnes et dialog vindue, hvor du kan klikke dig frem til den mappe, det skal gemmes i.

Gem og luk.
Bruges hvis dokumentet bare skal gemmes med de ændringer du har foretaget og Excel herefter skal lukkes.

Åben et nyt frisk Excel ark.
- Lav 3 CommandButtons.
- Kopier hver enkelt af ovenstående koder ind i hver af de 3 CommandButtons.
- Gem arket og navngiv det f.eks. "Test" i en mappe på dit skrivebord - Husk at gemme arket som "Test.xlsm".
- Luk Excel helt ned.
- Åben herefter arket fra mappen på dit skrivebord og test hvordan de forskellige knapper/koder virker.

Se også, hvordan det virker her...
- Download og gem det vedhæftede ark.
- Accepter redigering og makro'er, når arket (Blodtryksskemaet) åbnes.
- De 3 knapper er i øverste venstre hjørne af menulinjen (Ribbon).

uploads/1125/Blodtryksskema.xlsm" rel="nofollow - Download mit ark ved at klikke her.
Ps - Klik ikke på det store blodtryksapparat, når du åbner arket Wink



-------------
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)


Besked fra: prefalch
Posteringsdato: 24.Nov.2020 kl. 10:14
Takker



Print side | Luk vindue