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

Forumthread: ActiveCell.Value

ActiveCell.Value
16.08.2006 15:59:22
Jens
Hallo, Excel-Gemeinde
Suche Hilfe zu folgendem Problem:
Bei Eingabe eines Wertes in die ActiveCell und Bestätigung durch "Enter" ändert sich ja sofort die ActiveCell in die nächste Zelle.
Ich möchte aber, dass ich die Zelle in der ich die Eingabe vorgenommen habe, noch als ActiveCell ansprechen kann.
Diese soll ähnlich einer bedingten Formatierung abgefragt werden:
..if ActiveCell.value = "xxx" then ActiveCell.value = "yyy"...
Ich weiß, dass dieses möglich ist, aber wie?
Könnte mir da jemand nen Anstoss geben?
Danke an alle "Not-Ärzte" hier im Forum. ;-)
Gruß
Jens
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveCell.Value
16.08.2006 16:03:49
Kurt
Hi,
Dim rngAC as Range
Set rngAC = ActiveCell
If rngAC.Value = "xxx" Then rngAC.Value = "yyy"
Set rngAC = Nothing
mfg Kurt
AW: ActiveCell.Value
16.08.2006 16:09:06
Dan
Das laesst sich in 'tools/settings/3.tab'(Ich habe leider kein deutsches Excel :-) wo man den check-box 'die selection nach dem enter-druecken veschieben' un-checked. Dann bleibt die aktive zelle auch nach dem Enter-druecken aktiv. . Gruss Dan, cz
Anzeige
AW: ActiveCell.Value
16.08.2006 16:10:08
Jens
Hallo Kurt,
danke für die Antwort.
Hab es mal ausprobiert (Code im Sheet), funzt aber leider nicht.
Kann es sein, dass ich die ActiveCell als Target ansprechen muss?
MfG
Jens
AW: ActiveCell.Value
16.08.2006 16:13:15
Kurt
Hi,
es ist aus deinem Codeschnipsel nicht ersichtlich, ob es ein Ereignismakro ist.
Target gibt es nur bei einigen Ereignismakros.
mfg Kurt
Anzeige
AW: ActiveCell.Value
16.08.2006 16:22:19
Jens
Hallo,
Vielleicht habe ich mich etwas falsch ausgedrückt.
Ich will es mal anders beschreiben:
Ich gebe in irgendeine Zelle einen Wert ein und diese soll im Moment der Enter-Eingabe verglichen werden mit z.B. "xxx". Wenn der eingebene Wert "xxx" ist, soll dieser in dem Moment in "yyy" geändert werden.
Müsste also alles im gleichen Moment geschehen, in der die Enter-Taste betätigt wird.
In dem Moment ist die ActiveCell allerdings schon die nächste Zelle.
Das Ereignis, dass daraufhin die nächste Zelle angesprungen wird (betrifft: Markierung verschieben) soll so erhalten bleiben.
Vielleicht ist es so ersichtlicher geworden?
MfG
Jens
Anzeige
AW: ActiveCell.Value
16.08.2006 16:27:00
Eule
Hi Jens
dann versuch doch mit der Daten-Gültigkeit
Gruss Eule
AW: ActiveCell.Value
16.08.2006 16:08:26
Eule
Hi Jens
vielleicht hilft auch schon:
Haken raus in Optionen/Bearbeiten/Markieren nach dem Drücken....
dann verschiebt sich deine aktive Zelle nicht
Gruss Eule
AW: ActiveCell.Value
16.08.2006 16:25:12
Jens
Hallo Eule
danke für die Antwort.
Doch leider soll das Ereignis, dass die Markierung in die nächste Zelle springt, so bestehen bleiben.
Aber vielen Dank nochmal.
MfG
Jens
Anzeige
AW: ActiveCell.Value
16.08.2006 16:31:56
Kurt

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "xxx" Then Target.Value = "yyy"
End Sub

mfg Kurt
Thx @Kurt & Eule
Jens
Vielen Danke für die Hilfe.
Kurt, das ist es, was ich gesucht hatte.
Hab wohl nen Brett vor'm Kopf gehabt.
Danke nochmal.
MfG
Jens
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ActiveCell.Value in Excel VBA effektiv nutzen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf das Projekt im linken Fenster und wähle Einfügen > Modul.

  3. Code eingeben: Füge den folgenden Code in das Modul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Value = "xxx" Then Target.Value = "yyy"
    End Sub
  4. Speichern: Schließe den VBA-Editor und speichere deine Excel-Datei als Makro-aktivierte Datei (*.xlsm).

  5. Testen: Gib in eine Zelle den Wert "xxx" ein und drücke Enter. Der Wert sollte sich automatisch in "yyy" ändern.


Häufige Fehler und Lösungen

  • Fehler: Die ActiveCell wird nicht erkannt.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblattmodul eingefügt wurde (z.B. Sheet1).
  • Fehler: Der Wert ändert sich nicht.

    • Lösung: Überprüfe, ob die Eingabe des Wertes tatsächlich in der Zelle erfolgt ist, bevor du Enter drückst.

Alternative Methoden

  • Einstellungen ändern: Du kannst die Option in Excel ändern, sodass die Auswahl nach dem Drücken von Enter nicht wechselt. Gehe zu Datei > Optionen > Erweitert und deaktiviere den Haken bei „Markierung nach dem Drücken von Enter verschieben“.

  • Datenvalidierung verwenden: Du kannst auch die Funktion zur Datenvalidierung nutzen, um die Eingabe von bestimmten Werten zu steuern, ohne VBA zu verwenden.


Praktische Beispiele

  1. Einfaches Beispiel: Wenn du in eine Zelle den Wert "Test" eingibst, soll dieser in "Bestätigt" geändert werden.

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Value = "Test" Then Target.Value = "Bestätigt"
    End Sub
  2. Komplexes Beispiel: Verwende mehrere Bedingungen, um verschiedene Werte zu ändern.

    Private Sub Worksheet_Change(ByVal Target As Range)
       Select Case Target.Value
           Case "A"
               Target.Value = "Alpha"
           Case "B"
               Target.Value = "Beta"
       End Select
    End Sub

Tipps für Profis

  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um Fehler in Deinem Code zu finden und zu beheben. Setze Haltepunkte und beobachte Variablenwerte.
  • Code optimieren: Verwende With-Anweisungen, um den Code effizienter und lesbarer zu gestalten.

    With ActiveCell
       If .Value = "xxx" Then .Value = "yyy"
    End With

FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass mein VBA-Code immer ausgeführt wird?
Antwort: Stelle sicher, dass der Code im entsprechenden Arbeitsblattmodul und nicht im allgemeinen Modul platziert ist.

2. Frage
Kann ich mehrere Zellen gleichzeitig prüfen?
Antwort: Ja, du kannst eine Schleife verwenden, um durch mehrere Zellen zu iterieren und deren Werte zu überprüfen.

3. Frage
Was ist der Unterschied zwischen ActiveCell.Value und ActiveCell.Text?
Antwort: ActiveCell.Value gibt den tatsächlichen Wert der Zelle zurück, während ActiveCell.Text den angezeigten Text der Zelle zurückgibt, der von Formatierungen beeinflusst sein kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige