Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1564to1568
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MSGBox Speichern einpflegen?

MSGBox Speichern einpflegen?
02.07.2017 10:31:58
Andreas

Hallo,
nun habe ich das Makro lauffähig- macht alles wie es soll.
Könnte man aber am Ende der Prozedur noch eine MSG Box einpflegen, die mich fragt, ob die Änderungen in der Mappe Filename:="D:\ProtokollnR1.xlsm" auch gespeichert werden sollen, ja? Nein?
Nein würde bedeuten: Änderungen in ProtokollnR1.xlsm nicht speichern, Datei ProtokollnR1.xlsm schließen, und zurück zum Blatt Windows("Vorlage ortsveraenderliche .xlsm")- diese Änderungen dort können bestehen bleiben.
Zur Zeit läuft es ohne Nachfrage- es wird gespeichert und geschlossen.
Ist dies möglich und wo müsste was im Code eingeplegt werden?

  • Option Explicit
    Sub Auto_Nr_Verg()
    Workbooks.Open Filename:="D:\ProtokollnR1.xlsm"
    ' Nr und Ort automatisch in Protokollliste
    Application.CutCopyMode = False         'Zwischenspeicher löschen
    Dim Zeile As Long
    Zeile = Range("O65536").End(xlUp).Row
    MsgBox "Letzter  Eintrag ist in Zeile Nr. " & Zeile
    Windows("Vorlage ortsveraenderliche .xlsm").Activate
    Range("AC28").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("ProtokollnR1.xlsm").Activate
    Application.GoTo Range("O65536").End(xlUp).Offset(1, 0)
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.GoTo Range("O65536").End(xlUp).Offset(0, -1)
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Vorlage ortsveraenderliche .xlsm").Activate
    Range("Y35").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("W35:Z35").Select
    Application.CutCopyMode = False
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = 0
    .TintAndShade = 0
    .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Windows("ProtokollnR1.xlsm").Activate
    Application.GoTo Range("O65536").End(xlUp).Offset(1, -1)
    Application.CutCopyMode = False         'Zwischenspeicher löschen
    ActiveWorkbook.Close True
    End Sub
    


  • LG Andreas

    6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: MSGBox Speichern einpflegen?
    02.07.2017 10:47:34
    Hajo_Zi
    Hallo Andreas,
    in dieser Art.
        If MsgBox("Wollen Sie den Auftrag wirklich löschen.", vbYesNo + vbQuestion, "Löschabfrage ?" _
    ) = vbYes Then
    MsgBox "Ja"
    Else
    MsgBox "Nein"
    End If
    


    Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
    Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
    AW: MSGBox Speichern einpflegen?
    02.07.2017 11:40:33
    Matthias
    Hallo Andreas! Hier mal noch der Code zum Unterdrücken des Speicherns. Habe da mal im Code von Hajo die MsgBoxen ersetzt. Die.saved Eigenschaft auf true gesetzt bedeutet, dass sich nichts zum letzten Speichern geändert hat. Dadurch wird die Mappe beim Schließen nicht gespeichert. VG
    
    If MsgBox("Wollen Sie den Auftrag wirklich löschen.", vbYesNo + vbQuestion, "Löschabfrage ?" _
    ) = vbYes Then
    ActiveWorkbook.Close True
    Else
    ActiveWorkbook.Saved = True
    ActiveWorkbook.Close True
    End If
    

    Anzeige
    AW: MSGBox Speichern einpflegen?
    02.07.2017 14:15:32
    Andreas
    Danke Euch zweien,
    ist es möglichr- das bei der Anweisung Löschabfrage " JA " angeklickt - die Mappe "ProtokollnR1.xlsm" geschlossen wird- ohne die Änderungen in dieser Mappe zu übernehmen? Evtl. Schließen ohne Nachfrage und ohne Speichern?
    Habe die MSG Löschabfrage am Schluss eingefügt.
    LG Andreas
    AW: MSGBox Speichern einpflegen?
    02.07.2017 16:20:25
    Matthias
    Hallo! ICh glaube da war dann vorhin die ZUordnung für die MsgbOx-Ergebnisse falsch. Probiere es mal so. VG
    
    If MsgBox("Wollen Sie den Auftrag wirklich löschen.", vbYesNo + vbQuestion, "Löschabfrage ?" _
    ) = vbYes Then
    'löschen also ohne speichern
    Application.DisplayAlerts = False
    ActiveWorkbook.Saved = True
    ActiveWorkbook.Close True
    Application.DisplayAlerts = True
    Else
    'nein angekikct. speichern und schließen
    Application.DisplayAlerts = False
    ActiveWorkbook.Close SaveChanges:=True
    Application.DisplayAlerts = True
    End If
    

    Anzeige
    AW: MSGBox Speichern einpflegen?
    02.07.2017 16:56:49
    Andreas
    Hallo Matthias, danke für die Hilfe... jetzt geht es schon besser.
    Leider werden bei dem Ausführen beide Mappen (ProtokollnR1.xlsm und Vorlage ortsveraenderliche .xlsm)
    über die MsgBox bedient. Vor der MSG Abfrage habe ich zwar noch mal
    Windows("ProtokollnR1.xlsm").Activate gesetzt. Leider ohne Erfolg.
    Würde es auch eine Lösung geben- die hier nur das Abbrechen der Speicherung der Mappe ("ProtokollnR1.xlsm"). zur Folge hat? Die zweite Mappe (Vorlage ortsveraenderliche .xlsm)
    Wenn nicht- kann ich auch so damit leben.
    LG Andreas
    AW: MSGBox Speichern einpflegen?
    02.07.2017 22:14:57
    Matthias
    Hallo! Kann grad keinen großen Code posten / schreiben. Normalerweise könntest du an Stelle des ActiveWorkbook im Code auch explizit das betroffene Workbook angeben. Bspw.
    Workbooks("ProtokollnR1.xlsm")
    Das einfach im Code ersetzen dann sollte es gezielt nur das gewünschte Book schließen bzw. nicht speichern. Kann erst morgen wieder richtigen Code posten. Hoffe das hilft soweit.
    VG
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige