Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: erst Abfrage dann Makro starten

erst Abfrage dann Makro starten
20.02.2009 08:40:00
Eby
Hallo!
Mein Druckmakro funktioniert... aber ich möchte vor dem drucken eine Abfrage machen. Und wenn der User auf ok clickt, soll mein Makro starten. Clickt er auf NEIN soll es abrechen.
Dazu habe ich die Datei auf den Server geladen:
https://www.herber.de/bbs/user/59612.xls
Wie geht das bloß?
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erst Abfrage dann Makro starten
20.02.2009 08:52:00
Renee
Hi Eby,
so:

Sub Info()
Dim lngZ As Long
If vbOK = MsgBox("Sind alle Kundenblätter eingeblendet?", _
vbOKCancel + vbQuestion, "Wichtig!") Then
With Worksheets("Startseite")
For lngZ = 6 To .Cells(.Rows.Count, 1).End(xlUp).Row
If Cells(lngZ, 1) > 0 Then _
Worksheets(Cells(lngZ, 2) & "").PrintOut Copies:=Cells(lngZ, 1).Value
Next lngZ
End With
End If
End Sub


...und BITTE ändere deine Angaben zum Level!
GreetZ Renée

Anzeige
AW: erst Abfrage dann Makro starten
20.02.2009 08:58:00
Eby
Vielen Dank Renée!
Das klappt!
VBA gut war ein versehen :-) Denn ich kanns ja nicht :-)
Aber jeden Tag ein bißchen mehr!
Viele Grüße und einen ganz schöne Tag!
AW: Starkes Stück!
20.02.2009 11:37:00
Erich
Hallo Eby,
auf meine gestrige Anmerkuing
"warum bleibst du nicht im alten Thread - und machst hier einen neuen auf zum selben Thema?
Wenn du im alten Thread eine Frage beantwortet haben möchtest, solltest du einen Haken in das Kästchen
vor "Frage noch offen" setzen. Damit entfällt dann auch die unnötige Sucherei nach dem Vor-Thread."
hast du geantwortet:
"Das nächste mal probiere ich das mit "Beitrag noch offen" aus. 'Versprochen'"
Hast du dich da vielleicht versprochen?
Wenn du schon unbeding einen neuen Thread beginnen musst,
dann weise doch wenigstens mit einem Link auf den schon bestehenden Thread hin.
(Genau das hatte ich gestern für dich getan - und hier tue ich es noch einmal...)
Und zu "Mein Druckmakro funktioniert": Na ja, hier hab ichs dir "geschenkt":
https://www.herber.de/forum/archiv/1048to1052/t1051989.htm
Grüße von Erich aus Kamp-Lintfort - Allen ein schönes Wochenende!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Abfrage vor Makro-Ausführung in Excel


Schritt-für-Schritt-Anleitung

Um eine Abfrage vor der Ausführung eines Makros in Excel zu integrieren, kannst du folgenden VBA-Code verwenden. Dieser Code fragt den Benutzer, ob er fortfahren möchte, und führt dann das Druckmakro aus, wenn der Benutzer auf "OK" klickt. Wenn der Benutzer auf "NEIN" klickt, wird das Makro abgebrochen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deineDatei.xls)" klickst und "Einfügen" > "Modul" auswählst.
  3. Füge den folgenden Code in das Modul ein:
Sub Info()
    Dim lngZ As Long
    If vbOK = MsgBox("Sind alle Kundenblätter eingeblendet?", _
    vbOKCancel + vbQuestion, "Wichtig!") Then
        With Worksheets("Startseite")
            For lngZ = 6 To .Cells(.Rows.Count, 1).End(xlUp).Row
                If Cells(lngZ, 1) > 0 Then _
                Worksheets(Cells(lngZ, 2) & "").PrintOut Copies:=Cells(lngZ, 1).Value
            Next lngZ
        End With
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Teste dein Makro, indem du es über das Menü "Entwicklertools" oder mit einer Tastenkombination ausführst.

Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden"

    • Lösung: Stelle sicher, dass alle verwendeten Arbeitsblätter vorhanden sind und der Name korrekt geschrieben ist.
  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Überprüfe, ob Makros in deinen Excel-Sicherheitseinstellungen aktiviert sind.
  • Fehler: Die MsgBox wird nicht angezeigt.

    • Lösung: Stelle sicher, dass die Bedingung vbOK korrekt gesetzt ist. Nutze If MsgBox(...) = vbOK Then anstelle von If vbOK = MsgBox(...).

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die Funktion "Datenüberprüfung" verwenden, um Benutzerabfragen zu gestalten. Hierbei wird der Benutzer aufgefordert, eine Auswahl zu treffen, bevor das Makro ausgeführt wird. Du kannst dies mit einer Dropdown-Liste in einer Zelle kombinieren.

  1. Wähle die Zelle aus, in der die Abfrage erscheinen soll.
  2. Gehe zu "Daten" > "Datenüberprüfung".
  3. Wähle "Liste" und gebe die Optionen "OK, NEIN" ein.
  4. Verlinke diese Zelle in deinem Makro, um die Benutzerentscheidung zu überprüfen.

Praktische Beispiele

Ein Beispiel für die Verwendung des obigen Codes wäre ein Druckmakro, das mehrere Kundenblätter druckt. Wenn du die Abfrage vor dem Drucken einfügst, kannst du sicherstellen, dass alle notwendigen Daten bereit sind.

Hier ist ein einfaches Beispiel, das zeigt, wie das Makro im Kontext verwendet wird:

  1. Du hast eine Excel-Datei mit mehreren Blättern für verschiedene Kunden.
  2. Vor dem Drucken aller Kundenblätter fragt das Makro den Benutzer, ob er sicher ist, dass alle Blätter sichtbar sind.

Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Makroausführung zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.
  • Nutze die On Error Resume Next-Anweisung, um Fehler zu ignorieren und den Code weiterhin auszuführen, wenn du sicher bist, dass bestimmte Fehler akzeptabel sind.
  • Dokumentiere deinen Code mit Kommentaren, um den Überblick zu behalten und anderen die Nutzung zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich das Makro nach dem Drucken automatisch schließen?
Du kannst am Ende deines Makros Application.Quit hinzufügen, um Excel nach dem Drucken zu schließen.

2. Was mache ich, wenn ich mehrere Abfragen benötige?
Du kannst mehrere MsgBox-Befehle hintereinander verwenden und die Ausführung des Makros basierend auf den Antworten steuern.

3. Kann ich das Makro auch in Excel für Mac verwenden?
Ja, die meisten VBA-Funktionen sind auch in der Mac-Version von Excel verfügbar, allerdings können einige spezifische Funktionen variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige