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

Forumthread: VBA - Aufruf beim Verlassen eines Feldes

VBA - Aufruf beim Verlassen eines Feldes
23.08.2004 16:58:33
Markus
Hallo,
Folgende Aufgabe
in einem Feld (A) können über eine Gültigkeitsregel bestimmte Eingaben ausgewählt werden.
Beim Verlassen möchte ich nun in einer der daneben liegenden Feld (B) dann entsprechend die dazu passenden Werte anzeigen lassen:
Bsp:
(A) (B)
Cola 2,40
Bier 3,00
SVerweis kenne ich, möcht es aber mit VBA und Case...Select machen
Wie rufe ich das auf, damit jeweils beim Verlassen des Feldes (A) das Feld (B) aktualisiert wird?
Für Hilfe Danke im voraus,
Gruß
Markus
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Aufruf beim Verlassen eines Feldes
23.08.2004 17:02:05
Wolfgang

Private Sub NameDeinesFeldes_Exit(ByVal Cancel As MSForms.ReturnBoolean)
.....Dein Code.....
End Sub

AW: VBA - Aufruf beim Verlassen eines Feldes
23.08.2004 17:49:18
Markus
Hallo Wolfgang,
ich habe das jetzt so übernommen:

Private Sub Fahrtkosten_1_Exit()
Fahrtkosten = Range("B30").Value
Select Case Fahrtkosten
Case "Bahn"
Range("H30") = "46,60"
Case "Tankbeleg"
Range("H30") = "45,30"
Case Default
Range("H30") = ""
Case "Taxi"
Range("H30") = "45,30"
End Select
End Sub

... im Einzelschritt funktionierts, aber wo muß das Makro im VB Editor stehen damit es automatisch läuft?
Unter "Diese Arbeitsmappe" oder innerhalb der Tabelle?
Anzeige
AW: VBA - Aufruf beim Verlassen eines Feldes
23.08.2004 18:15:29
Wolfgang
Hi,
Das Makro ....EXIT.... muss beim entsprechenden Formular (UserForm) stehen, falls es sich um ein Formularfeld handelt. Einfach einen Doppelklick auf das entsprechende Feld machen
Das Makro ....CHANGE.... muss im VBA-Editor beim entsprechenden Tabellenblatt eingefügt werden....
Mir ist immer noch nicht ganz klar, ob du auf einem UserForm oder einem Tabellenblatt mit Zellen arbeitest....
Anzeige
AW: VBA - Aufruf beim Verlassen eines Feldes
24.08.2004 08:40:25
MArkus
Hallo Wolfgang,
sorry für die fehlende Information:
Das Makro soll innerhalb einer Tebelle eingesetzt werden.
Das entsprechend Feld habe ich mit Namen Fahrtkosten_1 definiert.
Ich habe den "Kot" jetzt mal in das betreffende Blatt kopiert, funktionieren wills aber trotzdem nicht...
Noch ne Idee?
Gruß
Markus
Anzeige
AW: VBA - Aufruf beim Verlassen eines Feldes
23.08.2004 17:05:50
Wolfgang
Falls du mit Feld eine Zelle meinst, würde ich nicht beim Verlassen sondern beim Ändern aktualisieren:

Private Sub Worksheet_Change(ByVal Target As Range)
....DeinCode....
End Sub

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA - Aufruf beim Verlassen eines Feldes in Excel


Schritt-für-Schritt-Anleitung

Um ein VBA-Makro zu erstellen, das beim Verlassen eines Feldes ausgeführt wird, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Wähle das Arbeitsblatt aus: Navigiere im Projektfenster zu dem Arbeitsblatt, in dem du das Makro hinzufügen möchtest.

  3. Füge das Makro hinzu: Kopiere den folgenden Code in das Codefenster des Arbeitsblatts:

    Private Sub Fahrtkosten_1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       Dim Fahrtkosten As String
       Fahrtkosten = Range("A1").Value ' Beispiel: Zelle A1 als Eingabefeld
       Select Case Fahrtkosten
           Case "Cola"
               Range("B1").Value = 2.4 ' Beispiel: Zelle B1 für den Preis
           Case "Bier"
               Range("B1").Value = 3.0
           Case Else
               Range("B1").Value = ""
       End Select
    End Sub
  4. Speichere die Änderungen und schließe den VBA-Editor.

  5. Teste das Makro: Gib in das Feld (A) einen Wert ein und verlasse das Feld, um den Preis in Feld (B) zu sehen.


Häufige Fehler und Lösungen

  • Makro funktioniert nicht: Stelle sicher, dass das Makro im richtigen Arbeitsblatt eingefügt wurde.
  • Variablenfehler: Vergewissere dich, dass alle verwendeten Variablen korrekt deklariert sind.
  • Falsche Zellbezüge: Achte darauf, dass die Zellreferenzen im Code korrekt sind.

Alternative Methoden

Wenn du nicht mit dem Exit-Ereignis arbeiten möchtest, kannst du das Change-Ereignis verwenden. Hier ist der entsprechende Code:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Dim Fahrtkosten As String
        Fahrtkosten = Target.Value
        Select Case Fahrtkosten
            Case "Cola"
                Range("B1").Value = 2.4
            Case "Bier"
                Range("B1").Value = 3.0
            Case Else
                Range("B1").Value = ""
        End Select
    End If
End Sub

Diese Methode aktualisiert das Feld (B) sofort beim Ändern des Feldes (A).


Praktische Beispiele

Hier sind einige Beispiele, wie du den Code anpassen kannst:

  1. Preise für weitere Getränke hinzufügen:

    Case "Wasser"
       Range("B1").Value = 1.0
    Case "Saft"
       Range("B1").Value = 2.0
  2. Verwendung in einem UserForm: Wenn du ein Formular verwendest, achte darauf, dass das Makro im entsprechenden UserForm-Code platziert ist.


Tipps für Profis

  • Fehlerbehandlung einfügen: Verwende On Error Resume Next, um Fehler abzufangen.
  • Datenvalidierung: Implementiere Datenvalidierung in Excel, um sicherzustellen, dass die Eingaben korrekt sind.
  • Modularisierung: Lagere komplexe Logik in separate Funktionen aus, um den Code übersichtlicher zu gestalten.

FAQ: Häufige Fragen

1. Wo sollte ich den Code einfügen?
Der Code sollte im VBA-Editor im entsprechenden Arbeitsblatt eingefügt werden, wenn du direkt mit Zellen arbeitest.

2. Kann ich das Makro auch in einem UserForm verwenden?
Ja, in diesem Fall musst du das Makro im Code des UserForms einfügen, nicht im Arbeitsblatt.

3. Wie kann ich die Zellreferenzen anpassen?
Ändere einfach die Zellbezüge im Code, um sie an deine spezifischen Anforderungen anzupassen.

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