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

Makro ausführen wenn Werte in Zelle geschrieben

Forumthread: Makro ausführen wenn Werte in Zelle geschrieben

Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 08:59:05
Hansueli
Hallo VBA- Spezalisten
Ich habe nochmals ein Problem mit einem Makro ausführen wenn Zellen belegt ist.
Problem:
Wir haben ein Programm das auf Excel zugreift und in zugewiesen Felder Einträge macht. In einem Feld wird auch Null oder 1 eingetragen.
Wenn jetzt in diesem Feld 1 steht soll er ein Makro ausführen.
Wenn dort Null steht natürlich nicht.
Vorgang:
1. Man fühlt im externen Programm die diversen Abfragen aus.
2. Jetzt wird über einen Doppelklick Excel aufgerufen.
3. Im gleichen Zuge weden die Werte in die Tabelle der Arbeitsmappe übergeben.
4. Nun soll das Makro aufgerufen werden, wenn in dieser Zelle 1 steht.
(Das Makro stellt Sfr auf Euro um)
Für eure Hilfe bin ich sehr Dankbar
Hansueli
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 09:28:39
harry
hi Hansueli, etwas spärliche angaben. das makro, das die werte ins excel kopiert müsstest du erweitern, etwa so:
for each acell in range(weiss nicht, wo die daten stehen)
if acell.value = 1 then
call (das makro, dass sfr auf euro umstellt)
end if
next
genauer gehts mit deinen angaben leider nicht.
lebe grüße,
harry
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 09:43:37
Hansueli
Hallo harry
Dank mal für deine Antwort.
Es ist folgendermassen. Wir haben ein Programm für den ganzen Arbeitsprozess unserer Firma. Inbegriffen sind Angbote, Auftragsbestätigungen, Rechnungen usw.
Das Problem liegt da drin, dass wir in diesem Programm was in diesem Moment noch nichts mit Excel zu tun hat Eingabemasken generieren können.
Unteranderem auch Kontrollkästchen genau so wie bei Excel.
Der Wert der dort möglich ist (Wenn ja = 1, Wenn nein = 0).
Diese Werte werden in eine Blindzelle von Excel übergeben.
Nun soll ein Makro ausgeführt werden. Im Bezug auf diese Excel- Zelle.
Wenn z.b Zelle H1 = 1 ist setze mir in einigen Zellen die Währung auf Euro.
Wenn Zelle H1 = 0 ist setze mir in einigen Zelleb die Währung auf Schweizerfranken.
Zusammenfassend:
Die Miterbeiter können Eingaben in unserem Programm vornehmen (Consolidate).
Dann per Doppelcklick das Excelblatt (.xlt) öffnen.
Jetzt werden die Daten zum teil direkt in die Zellen geschrieben. Andere werden in Blindzellen geschrieben. Jetzt soll das Makro in Erscheinung tretten und je nach dem was in Zelle H1 steht umsetzten.
Ich hoffe das ist jetzt besser erklärt. Ist auch nicht so ganz einfach "Sorry"
Besten Dank für deine Hilfe
Grüsse vom Bodensee
Hansueli
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 09:30:58
AndreasS
Hi,

Sub test()
wert = Sheets(1).Range("a1").Value
If wert=1 Then
'DeinMakro
End If
End Sub

Gruß Andreas
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 10:00:51
Hansueli
Hallo Andi
Danke für deine Antwort.
Ich habe noch ein Problem. Die Daten werden ja zuerst eingelesen und dann soll das MAkro ausgeführt werden. Wie kann ich das automatisch erreichen?. Ohne Zusatzbutton.
Dank für deine Mithilfe
Grüsse vom Bodensee
Hansueil
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 10:07:50
AndreasS
Hi,
wie wärs denn mit auto_open oder worksheet_change, wenn die Excelmappe geöffnet wird?
Gruß Andreas
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 11:08:30
Hansueli
Hallo Andreas
Das Problem ist, dass zuerst die Werte eingetragen werden müssen in die Arbeitsmappe und erst dann, das Makro ausgeführt werden darf. Sonst sind die Bezugszellen noch leer.
Hast du mir da einen Vorschlag.
Gruss
Hansueli
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 11:18:36
AndreasS
Hi,
diesen Code auf das entsprechende Tabellenblatt:
Die Eingabezelle ist hier: A1. Nach Werteingabe von 1 wird dein Formatierungsmakro ausgeführt. Bei 0 das gleiche.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$1" And Target.Value = 1 Then
Call Währungsumwandler
End If
If Target.Address = "$A$1" And Target.Value = o Then
Call  Währungsumwandler2
End If
'usw.; ggf. mit Select Case arbeiten
End Sub

Gruß Andreas
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 12:44:11
Hansueli
Hallo Andreas
Besten Dank für deine grosse Hilfe. Ich werde das austesten.
Eine Frage habe ich noch zum Begriff Target. Wie ist der Zusammenhang im Excel im Bezug auf den Begriff. Kenn Ihn nur aus dem Wehrdienst bei meiner Waffeneinheit.
Was bewirkt er hier in Excel.
Nochmals besten Dank für deine Mithilfe. Das ist echt Klasse wenn solche Personen wie
du uns Anfänger zur Seite stehen
Gruss
Hansueli
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 13:14:47
Hansueli
Hallo Andreas
Ich schaffe es einfach nicht das es so läuft wie ich es will.
Bitte schaust du mir das mal an.
Ich habe die Mappe raufgeladen.
https://www.herber.de/bbs/user/3975.xlt
Ich danke die für dein Geduld ich bin halt Anfänger im VBA
Gruss
Hansueli
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 14:11:12
AndreasS
Hi,
bei mir läufts. Wenn in Angebot Range ("A1") eine 1 oder eine 0, dann kommen deine msgboxen. Was willst du machen?
Gruß Andreas
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 15:03:34
AndreasS
Hi, hier noch eine Beschreibung:
Change-Ereignis:

Tritt ein, wenn Zellen des Tabellenblattes durch den Benutzer oder durch eine externe Verknüpfung geändert werden.
Syntax
Private Sub Worksheet_Change(ByVal Target As Range)
Target: Der geänderte Bereich. Er kann mehr als eine Zelle umfassen.
Anmerkungen
Dieses Ereignis tritt nicht ein, wenn sich Zellen während einer Neuberechnung verändern. Verwenden Sie das Calculate-Ereignis, um eine Neuberechnung des Blattes aufzufangen.
Durch das Löschen von Zellen wird dieses Ereignis nicht ausgelöst.
Gruß Andreas
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 15:22:34
Hansueli
Hallo Andreas
Ich habe den Fehler gefunden. Ich habe das Makro im falschen Arbeitsblatt eingefügt
Au das tuttttt aber sehr wehhhh. Sorrry
Ich möchte mich für die gute und sehr lehrreiche Hilfe bedanken.
Ich würde mich freuen wieder mal ein Problem an Sie heran zu tragen.
Wie gesagt bin noch "anfänger". Möchte mich aber schon steigern.
Ein schönenes Wochenende
Viele Dankensgrüsse aus der Schweiz
Hansueli
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 15:55:10
Hansueli
Hallo ich bins nochmal
Das externe Programm hat die Daten noch gar nicht in die entsprechenden Zellen reingeschrieben. Deshalb funktioniert das Makro auch nicht. Nur wenn ich nachträglich
von Hand die Werte ändere dann klappst.
Das erwähte Calculate- Ereignis hilft mir da weiter ?
Wenn ja wie setzte ich das ein?
Danke für Ihre Mithilfe
Hansueli
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
27.02.2004 15:14:54
Hansueli
Hallo Andreas
Danke für die Geduld
Aber ich verstehe die Welt nicht mehr. Ich kann eine 1 oder 0 eintragen soviel ich will
die Msgboxen kommen nicht automatisch auf den Bildschirm.
Wenn ich über den Pfeil die Makros auslöse kommen sie natürlich je nach Wert in Zelle A1
richtig. Aber das will ich ja nicht. Sie sollen ja automatisch kommen. Was kann das noch sein wo ich falsch mache.
Ich habe keine Ahnung.
Zu Übersicht habe ich die Msgboxen einfach eingefügt damit ich die Reaktion des Makros testen kann. Danach werde ich die Währungsumrechner einsetzen.
Hast du mir noch einen Typ. Wie gesagt Automatisch muss es gehen. Ich weiss das durch den Befehl Woorksheet change das erreicht werden kann. Aber es geht nicht.
Sorry wenn ich das nicht schaffe aber ich habs versucht
Gruss
Hansueli
Anzeige
AW: Makro ausführen wenn Werte in Zelle geschrieben
29.02.2004 12:11:34
AndreasS
Morgen,
auf welchem Blatt sollen denn die Eintragungen erfolgen?
Ich schaus mir dann nochmal an, dass alles läuft...
Gruß Andreas
AW: Makro ausführen wenn Werte in Zelle geschrieben
01.03.2004 07:42:54
hansueli
Guten Morgen Andreas
Ich habe es so geschafft das es in Excel funktioniert. Aber das Problem ist dass das externe Programm die Eintragungen noch nicht gemacht hat und das Makro schon abgelaufen ist. Kann ich das Makro zeitlich steueren ( ca. 5 Sekunden später oder so?).
Dann hätte ich die Gewissheit das es funktioniert. Oder gibt's noch andere Möglichkeiten.
Besten Dank für deine weitere Hilfe.
Noch eine Frage zu Calculate. Wie wird das angewendet?
Gruss
Hansueli
Anzeige
;
Anzeige

Infobox / Tutorial

Makro ausführen bei bestimmten Zellwerten in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro auszuführen, wenn ein bestimmter Wert in einer Zelle geschrieben wird, kannst Du den Worksheet_Change-Ereignis verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Deine Excel-Arbeitsmappe und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Doppelklicke auf das Arbeitsblatt, in dem Du das Makro ausführen möchtest.
  3. Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$H$1" Then
        If Target.Value = 1 Then
            Call Währungsumwandler
        ElseIf Target.Value = 0 Then
            Call Währungsumwandler2
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und teste die Funktion, indem Du Werte in die Zelle H1 eingibst.

Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die Du möglicherweise beim Ausführen von Makros in Excel erlebst, sowie deren Lösungen:

  • Problem: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass Du den Code im richtigen Arbeitsblatt eingefügt hast. Das Worksheet_Change-Ereignis muss im Code des spezifischen Arbeitsblatts sein, in dem die Änderungen erfolgen.
  • Problem: Das Makro wird bei der Eingabe von 0 nicht ausgeführt.

    • Lösung: Überprüfe, ob die Bedingung für den Wert 0 korrekt im Code implementiert ist.
  • Problem: Die Werte werden nicht sofort erkannt.

    • Lösung: Wenn Werte von einem externen Programm übernommen werden, stelle sicher, dass das Programm die Zellen vollständig aktualisiert, bevor das Makro ausgeführt wird.

Alternative Methoden

Wenn Du das Makro nicht direkt beim Ändern der Zelle ausführen möchtest, kannst Du auch folgende Alternativen in Betracht ziehen:

  • Auto_Open-Makro: Füge den Code in ein Auto_Open-Makro ein, um es beim Öffnen der Arbeitsmappe auszuführen.
Sub Auto_Open()
    If Sheets(1).Range("H1").Value = 1 Then
        Call Währungsumwandler
    ElseIf Sheets(1).Range("H1").Value = 0 Then
        Call Währungsumwandler2
    End If
End Sub
  • Timer: Verwende einen Timer, um das Makro verzögert auszuführen. Dies kann nützlich sein, wenn Du sicherstellen möchtest, dass die Daten vollständig geladen sind.
Sub StartTimer()
    Application.OnTime Now + TimeValue("00:00:05"), "DeinMakro"
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von Makros in Excel:

  • Währungsumwandler: Angenommen, Du möchtest die Währung von SFr auf Euro umstellen, wenn in Zelle H1 der Wert 1 steht. Dein Währungsumwandler-Makro könnte folgendermaßen aussehen:
Sub Währungsumwandler()
    ' Code zum Umstellen der Währung auf Euro
    Sheets(1).Range("A1").Value = Sheets(1).Range("A1").Value * 0.85 ' Beispiel für Umrechnung
End Sub
  • Zellen formatieren: Du könntest auch die Zellen formatieren, je nachdem, welcher Wert in H1 steht:
Sub FormatCells()
    If Sheets(1).Range("H1").Value = 1 Then
        Sheets(1).Range("A1:A10").NumberFormat = "€ #,##0.00"
    Else
        Sheets(1).Range("A1:A10").NumberFormat = "SFr #,##0.00"
    End If
End Sub

Tipps für Profis

  • Verwende Select Case: Anstatt mehrere If-Bedingungen zu verwenden, kannst Du Select Case verwenden, um den Code übersichtlicher zu gestalten.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung in Deinen Makros, um unerwartete Fehler zu vermeiden.

On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
  • Makros dokumentieren: Halte Deine Makros gut dokumentiert, damit Du und andere Nutzer leicht verstehen, was der Code macht.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Makro automatisch ausgeführt wird?
Du kannst das Worksheet_Change-Ereignis verwenden, um sicherzustellen, dass das Makro ausgeführt wird, wenn ein Wert in der Zelle geändert wird.

2. Was ist der Target-Parameter im Worksheet_Change-Ereignis?
Der Target-Parameter ist der Bereich, der geändert wurde. Er ermöglicht es Dir, auf spezifische Zellen zu reagieren, die geändert wurden.

3. Wie kann ich ein Makro verzögern?
Du kannst den Application.OnTime-Befehl verwenden, um ein Makro nach einer bestimmten Zeit zu planen.

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