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

Forumthread: Wert per VBA in Zelle schreiben

Wert per VBA in Zelle schreiben
26.01.2006 09:41:32
Jakob
Hallo,
ich habe ein Formular erstellt. Das Feld D25 habe ich als freies Eingabefeld definiert (also so eine Art Kommentarfeld). Jetzt möchte ich aber die Eingabe etwas erleichtern und per VBA einen definierten Text ("Preisüberschneidung") falls im Feld D22 der Wert "104 - Preisdifferenz" steht.
Wie muß der Code aussehen?
Besten Dank für Eure Hilfe.
Gruß
Montoya
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wert per VBA in Zelle schreiben
26.01.2006 11:00:30
ChrisL
Hi
If Range("D22") = "104 - Preisdifferenz" Then Range("D25") = "Preisüberschneidung"
Gruss
Chris
AW: Wert per VBA in Zelle schreiben
26.01.2006 13:58:58
Jakob
Hallo Chris,
vielen Dank das klappt ja wunderbar. Das Problem das ich aber nun habe, ist diesen Schritt manuell anstoßen muß damit es funktioniert. Hast Du eine Idee wie man es verändern müßte, damit sobald in der D22 etwas reingeschrieben wird dieses Makro automatisch ausgeführt wird?
Gruß
J.Freitag
Anzeige
AW: Wert per VBA in Zelle schreiben
27.01.2006 06:30:33
Hajo_Zi
Hallo Jakob,
unter der Tabelle.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$22" Then
Application.EnableEvents = False
If Target = "104 - Preisdifferenz" Then Target = "Preisüberschneidung"
Application.EnableEvents = True
End If
End Sub


Anzeige
AW: Wert per VBA in Zelle schreiben
27.01.2006 07:07:38
WernerB.
Hallo Jakob,
wie gefällt Dir das (das Makro gehört in das Modul des entsprechenden Tabellenblattes)?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$22" Then Exit Sub
Application.EnableEvents = False
If Target.Text = "104 - Preisdifferenz" Then _
Range("D25").Value = "Preisüberschneidung"
Application.EnableEvents = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Wert per VBA in Zelle schreiben
27.01.2006 14:51:14
Jakob
Hallo Werner,
hat wunderbar geklappt.
Vielen Dank für Deine Hilfe.
Gruß
J.Freitag
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Wert per VBA in Zelle schreiben


Schritt-für-Schritt-Anleitung

Um einen definierten Wert per VBA in eine Zelle zu schreiben, kannst du folgenden Code verwenden. Dies wird typischerweise in das Code-Modul des entsprechenden Arbeitsblatts eingefügt:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$D$22" Then Exit Sub
    Application.EnableEvents = False
    If Target.Text = "104 - Preisdifferenz" Then 
        Range("D25").Value = "Preisüberschneidung"
    Application.EnableEvents = True
End Sub
  1. Öffne Excel und gehe zum gewünschten Arbeitsblatt.
  2. Klicke mit der rechten Maustaste auf den Tab des Arbeitsblatts und wähle "Code anzeigen".
  3. Füge den oben stehenden Code in das sich öffnende Fenster ein.
  4. Schließe den VBA-Editor.

Jetzt wird automatisch der Text "Preisüberschneidung" in die Zelle D25 geschrieben, sobald in D22 der Wert "104 - Preisdifferenz" eingegeben wird.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass du den Code im richtigen Arbeitsblatt-Modul eingefügt hast.
  • Fehler: Event-Handling wird nicht deaktiviert.

    • Lösung: Achte darauf, dass Application.EnableEvents vor und nach der Veränderung des Zellwerts korrekt gesetzt ist.

Alternative Methoden

Wenn du den Wert in eine Zelle schreiben möchtest, ohne VBA zu verwenden, kannst du Formeln oder Datenvalidierung nutzen. Ein Beispiel wäre die Verwendung von WENN-Formeln:

=WENN(D22="104 - Preisdifferenz"; "Preisüberschneidung"; "")

Diese Formel kann in Zelle D25 eingegeben werden und gibt den gewünschten Text zurück, wenn der Wert in D22 übereinstimmt.


Praktische Beispiele

  1. Wert in Zelle schreiben mit einer Variable:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim newValue As String
    newValue = "Preisüberschneidung"

    If Target.Address <> "$D$22" Then Exit Sub
    Application.EnableEvents = False
    If Target.Text = "104 - Preisdifferenz" Then 
        Range("D25").Value = newValue
    Application.EnableEvents = True
End Sub
  1. VBA-Wert einer Zelle in eine andere Zelle schreiben:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$D$22" Then Exit Sub
    Application.EnableEvents = False
    Range("D26").Value = Range("D22").Value  ' Wert von D22 in D26 schreiben
    Application.EnableEvents = True
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Experimentiere mit dem Worksheet_Change-Ereignis, um komplexe Bedingungen zu implementieren, die mehrere Zellen und Werte betreffen.
  • Schütze das Arbeitsblatt, um sicherzustellen, dass Nutzer nur die vorgesehenen Eingaben machen können.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehrere Zellen zu überprüfen?
Du kannst weitere Bedingungen innerhalb der If-Anweisung hinzufügen, um unterschiedliche Werte in anderen Zellen zu überprüfen.

2. Funktioniert dieser Code in Excel 2016 und neueren Versionen?
Ja, dieser VBA-Code funktioniert in Excel 2016 und in allen neueren Versionen. Stelle sicher, dass die Makros in deiner Excel-Anwendung aktiviert sind.

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