Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro anhalten um Tabelle zu bearbeiten

Makro anhalten um Tabelle zu bearbeiten
12.02.2013 12:43:09
Werner
Hallo Excelfreunde,
ich möchte ein Makro, dass durch einen Button ausgelöst wird an einer bestimmten Stelle anhalten, um evt. Korrekturen in die Tabelle vornehmen zu können.
Danach soll es durch einen Button fortgesetzt werden.
Vorab schon mal Danke!
Werner F.

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro anhalten um Tabelle zu bearbeiten
12.02.2013 12:46:43
Katrin
Du musst an den Punkt, an dem du selber bearbeiten möchtest, einen Haltepunkt setzen - dann führt er das Makro bis zum Haltepunkt durch. Danach könntest du etwas in der tabelle ändern und das Makro weiterlaufen lassen.

Mach zwei Makros!
12.02.2013 13:02:01
Klaus
Hallo Werner,
statt Haltepunkten, wenn es jedesmal angehalten werden muss:
Mache zwei Makros. Makro 1 läuft bis zu dem bestimmten Punkt, dann änderst du was geändert werden muss, dann starte Makro 2.
Grüße,
Klaus M.vdT.

Anzeige
AW: Makro anhalten um Tabelle zu bearbeiten
12.02.2013 13:52:01
Werner
Danke für die schnellen Antworten!
Mein Problem ist damit leider nicht gelöst. Gibt es keine keine Möglichkeit, innerhalb eines Makros eine Bearbeitung des Tabellenblattes durchzuführen ohne das Makro aufzuteilen oder über einen Haltepunkt zu stoppen? Das Makro enthält viele Variablen deshalb ist ein Aufteilen nicht möglich. Danke für jeden weiteren Tipp.
Herzlicher Gruß
Werner F.

Anzeige
AW: Makro anhalten um Tabelle zu bearbeiten
12.02.2013 13:58:16
Klaus
Gibt es keine keine Möglichkeit, innerhalb eines Makros eine Bearbeitung des Tabellenblattes durchzuführen
Was spricht denn gegen den Haltepunkt? Genau dafür ist der nämlich da.
Das Makro enthält viele Variablen deshalb ist ein Aufteilen nicht möglich.
Quatsch.
Nur mal ein Beispiel, wie das geht:
Option Explicit
Public wert As String
Sub test1()
wert = InputBox("eingeben!")
End Sub
Sub test2()
MsgBox wert
End Sub
Oder die Variablen mit CALLS übergeben, oder in ein extra Tabellenblatt schreiben.
Grüße,
Klaus M.vdT.

Anzeige
AW: Makro anhalten um Tabelle zu bearbeiten
12.02.2013 14:02:17
Werner
Hallo Klaus M.vdT.,
das mit der Inputbox geht nicht, da die Bearbeitung über die verschiedensten Bereiche in den Datensätzen der Tabelle erfolgen können. Wie ist das mit den Calls zu verstehen?
Herzlicher Gruß
Werner F.

AW: Makro anhalten um Tabelle zu bearbeiten
12.02.2013 14:11:48
Klaus
das mit der Inputbox geht nicht,
Werner, du hast nicht verstanden was ich dir zeigen wollte!
Starte mal TEST2.
Es wird eine Message Box kommen, in der nichts oder 0 steht.
Jetzt Starte TEST1
in der Inputbox schreibst du "Hallo Welt"
jetzt änderst du irgendwas in deiner Tabelle
starte TEST2
in der Messagebox steht "Hallo Welt"
Damit wollte ich dir beweisen, dass eine variable sehr wohl über zwei Makros hinweg funktioniert - wenn sie denn Public definiert wurde.
Statt der Inputbox kannst du in TEST1 auch schreiben wert = 5 oder wert = range("A2").value oder sonstwas, die variablen-Füllung wird in TEST2 übernommen.
Grüße,
Klaus M.vdT.

Anzeige
Aufruf des 2.Makros mit Parametern, ...
12.02.2013 14:28:34
Luc:-?
…Werner,
mit oder ohne Call (nicht Calls).
Sub Test1()
Dim TWert
TWert = …
Call Test2(TWert) 'oder Test2 TWert
End Sub
Sub Test2(twt)
MsgBox CStr(twt)
End Sub
Allerdings hättest du hierbei wieder das gleiche Problem, denn es erfolgt keine Unterbrechung. Die Programme müssen schon separat aufgerufen wdn. Es könen auch 2 einfache Rufpgmm sein, die dein HptPgm unterschiedl parametriert aufrufen und so dafür sorgen, dass einmal an der bewussten Stelle beendet und beim anderen Mal danach fortgesetzt wird. Das kennt man in der Pgmierung schon seit ewigen Zeiten → defacto ein Pgm mit 2 Eingängen („Hintertür“).
Die bewussten Variablen müssen dann allerdings entweder global (wie bei Klaus) oder als Static (statt Dim) deklariert wdn, damit ihr Wert zwischen 2 Aufrufen erhalten bleibt. Falls sie auch irgendwann mal gelöscht wdn müssen (bzw für die Erstbelegung), sollte man sich was Intelligentes einfallen lassen.
Gruß Luc :-?

Anzeige
Danke
12.02.2013 16:27:41
Werner
Danke für die Hilfe.
Ich werde das mal testen.
Herzlicher Gruß
Werner
;
Anzeige
Anzeige

Infobox / Tutorial

Makro anhalten und fortsetzen in Excel


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu starten.

  2. Neues Modul hinzufügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. VBA-Code einfügen: Füge den folgenden VBA-Code ein, um ein einfaches Makro zu erstellen, das du anhalten und fortsetzen kannst:

    Option Explicit
    Public wert As String
    
    Sub MakroStart()
       wert = InputBox("Gib deinen Wert ein:")
       MsgBox "Makro wird angehalten. Bitte bearbeite die Tabelle."
       ' Hier kannst du deine Tabelle bearbeiten
       MsgBox "Makro wird fortgesetzt."
    End Sub
  4. Makro ausführen: Starte das Makro über einen Button oder direkt im VBA-Editor. Das Makro wird an der Stelle angehalten, wo die erste MessageBox erscheint.

  5. Tabelle bearbeiten: Nimm die notwendigen Änderungen in deiner Excel-Tabelle vor.

  6. Makro fortsetzen: Klicke auf "OK" in der zweiten MessageBox, um das Makro fortzusetzen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro stoppt nicht: Stelle sicher, dass du die MessageBox verwendest, um das Makro an der gewünschten Stelle anzuhalten.
  • Fehler: Wert wird nicht übernommen: Achte darauf, dass die Variable wert als Public deklariert ist, damit sie zwischen den Makros erhalten bleibt.

Alternative Methoden

  • Zwei separate Makros: Du kannst zwei Makros verwenden, wobei das erste bis zu einem bestimmten Punkt läuft und das zweite die Bearbeitung fortsetzt. Beispiel:

    Sub Makro1()
       ' Code bis zu dem Punkt, an dem du anhalten möchtest
       MsgBox "Makro 1 wird angehalten. Bearbeite die Tabelle."
       ' Hier kannst du deine Tabelle bearbeiten
    End Sub
    
    Sub Makro2()
       ' Fortsetzung des Codes
       MsgBox "Makro 2 wird ausgeführt."
    End Sub
  • Haltepunkte im VBA-Editor: Du kannst Haltepunkte im VBA-Editor setzen, um das Makro an bestimmten Stellen zu stoppen, wenn du den Code debuggen möchtest.


Praktische Beispiele

Ein Beispiel eines Makros, das eine Bearbeitung der Tabelle ermöglicht, könnte wie folgt aussehen:

Sub BeispielMakro()
    Dim wert As String
    wert = InputBox("Gib einen neuen Wert für A1 ein:")
    Range("A1").Value = wert
    MsgBox "Wert in A1 wurde geändert."
End Sub

Hier wird der Benutzer aufgefordert, einen neuen Wert einzugeben, und dieser wird in Zelle A1 der Tabelle gesetzt.


Tipps für Profis

  • Verwendung von Call: Du kannst Call verwenden, um eines Makro aus einem anderen aufzurufen und Parameter zu übergeben. Dies ermöglicht mehr Flexibilität beim Arbeiten mit Variablen.
  • Globale Variablen: Deklariere Variablen als global, um sie zwischen verschiedenen Makros zu verwenden. Dies ist besonders nützlich, wenn du mit komplexen Daten arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich ein Makro anhalten und fortsetzen?
Durch die Verwendung von MessageBoxen oder InputBoxen kannst du das Makro anhalten und dem Benutzer die Möglichkeit geben, Änderungen an der Tabelle vorzunehmen.

2. Was ist der Unterschied zwischen Haltepunkten und MessageBoxen?
Haltepunkte sind nützlich für das Debuggen von Code, während MessageBoxen eine benutzerfreundliche Möglichkeit bieten, um den Benutzer zur Interaktion aufzufordern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige