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

Forumthread: Zellwert wahr/falsch ändern

Zellwert wahr/falsch ändern
12.07.2004 14:33:49
Cirrus
Hallo,
mit dem Sub ändern möchte ich den Wert der Zelle A1 ändern. Wenn dort FALSCH steht, soll WAHR eingetragen werden, wenn dort WAHR steht, FALSCH. Also immer genau umgekehrt. Das mach mein

Sub auch ganz brav. Aber irgendwie kommt mir das total umständlich vor!!! Wer kann mir eine einfachere Lösung für dieses Problem geben.
Sub ändern
dim zellwert as boolean
Range("a1").Select
zellwert = ActiveCell.Value
ActiveCell.Value = zellwert = False
End Sub
Brauche ich immer zwei Zeilen? Eine zum aktivieren der Zelle und eine um den Wert einzutragen, oder geht das auch in einer Zeile? Geht es auch ohne die Hilfsvariable zellwert?
Ich habe das dazugehörige Programm auch hauptsächlich geschrieben um VBA zu lernen/üben und nicht um es nachher viel anzuwenden (ist ein kleines Spiel). Daher bin ich an besserem Code sehr interessiert.
Danke schon jetzt
Cirrus

		
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
[a1]=not [a1]
IngoG
Hallo Cirrus
oder
Range("a1")=not range("a1")
gruß Ingo
PS eine Rückmeldung wäre nett...
AW: [a1]=not [a1]
12.07.2004 14:44:26
Cirrus
Hallo Ingo,
danke für die schnelle Antwort.
Funktionuckelt hervorragend und sieht sehr elegant aus!
...und so schön kurz...
Cirrus
Danke für die Rückmeldung oT
ingoG
.
Anzeige
AW: Zellwert wahr/falsch ändern
AndreasSt
Hallo,
so geht's einfacher:

Sub ändern()
Range("a1").Value = Not Range("a1").Value
End Sub

Gruß
Andreas
AW: Zellwert wahr/falsch ändern
12.07.2004 14:46:56
Cirrus
Danke auch Dir Andreas,
ist value die default.Einstellung von range? Oder warum furnktioniert die Lösung von Ingo auch? Wann muß ich value schreiben und wann niht. Das ist nämlich so ein Punkt, den ich noch nicht so ganz verstanden habe aus meinen Büchern...
Liebe Grüße
Cirrus
Anzeige
AW: Zellwert wahr/falsch ändern
AndreasSt
Ja, Value ist die Default-Eigenschaft und Range ist auch nicht unbedingt nötig.
Ich finde es so aber üebrsichtlicher.
Am überflüssigsten in deinem Ursprungscode war allerdings das "Select", was ähnlich wie "activate" eingentlich fast nie wirklich gebraucht wird und den Code nur unnötig verlangsamt!
Gruß
Andreas
Anzeige
AW: Zellwert wahr/falsch ändern
12.07.2004 14:58:07
Cirrus
Vielen Dank für die Erklärung.
In den VBA-Skripten und Büchern taucht so oft dieses "select" auf! Daher habe ich es auch brav benutzt. Aber demnächst werde ich es rauslassen,
Liebe Grüße
Cirrus
AW: Zellwert wahr/falsch ändern
Ulf

Sub ändern()
[a1] = Not [a1]
End Sub

Ulf
Anzeige
AW: Zellwert wahr/falsch ändern
12.07.2004 14:49:19
Cirrus
Danke Ulf,
das ist wohl die kürzeste Version, jetzt bin ich ganz verwirrt. Das geht? Noch nicht einmal "Range"?
Beste Grüße
Cirrus
AW: Zellwert wahr/falsch ändern
Ulf
[a1] ist die Kurzschreibweise. Value ist default und muss daher nicht
angegeben werden.
Ulf
AHA! Danke
12.07.2004 14:53:05
Cirrus
-
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zellwert in Excel von wahr auf falsch ändern und umgekehrt


Schritt-für-Schritt-Anleitung

Um den Wert einer Excel-Zelle von Wahr auf Falsch (und umgekehrt) zu ändern, kannst du folgendes VBA-Skript verwenden:

Sub ändern()
    Range("A1").Value = Not Range("A1").Value
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor und gehe zurück zu Excel.
  5. Drücke ALT + F8, wähle ändern aus und klicke auf Ausführen.

Das Skript überprüft den aktuellen Wert in Zelle A1 und ändert ihn entsprechend. Wenn du Wahr hast, wird es zu Falsch, und umgekehrt.


Häufige Fehler und Lösungen

  • Fehler: "Method 'Range' of object '_Global' failed"

    • Lösung: Stelle sicher, dass der Zellbezug korrekt ist. Überprüfe, ob A1 tatsächlich die Zelle ist, die du ändern möchtest.
  • Fehler: Zelle bleibt unverändert

    • Lösung: Stelle sicher, dass der Wert in Zelle A1 tatsächlich Wahr oder Falsch ist. Wenn der Wert als Text eingegeben wurde, funktioniert das Skript nicht.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die folgende Formel in eine andere Zelle eingeben (z.B. B1), um den Wert umzukehren:

=NOT(A1)

Das Ergebnis wird Wahr oder Falsch in Zelle B1 anzeigen, basierend auf dem Wert in Zelle A1.


Praktische Beispiele

Angenommen, du hast in Zelle A1 den Wert Wahr. Mit dem oben genannten VBA-Skript wird der Wert in A1 nach Ausführung des Makros zu Falsch.

Ein weiteres Beispiel für die Verwendung der Formel wäre:

  • Wenn A1 Falsch ist, wird B1 Wahr anzeigen.

Tipps für Profis

  • Verwende die Kurzschreibweise [A1], um den Code noch kompakter zu machen:
Sub ändern()
    [A1] = Not [A1]
End Sub
  • Um den Code weiter zu optimieren, kannst du die Verwendung von .Select und .Activate vermeiden, da sie den Code unnötig verlangsamen und komplexer machen.

  • Es ist empfehlenswert, die Zelle zuerst auf Boolean zu prüfen, um sicherzustellen, dass der Wert in der Zelle tatsächlich Wahr oder Falsch ist, bevor du damit arbeitest.


FAQ: Häufige Fragen

1. Warum funktioniert Value nicht immer?
Der Begriff Value ist die Standard-Eigenschaft für einen Zellbereich in Excel. Wenn du auf den Wert einer Zelle zugreifst, wird Value automatisch verwendet. Manchmal kann es jedoch hilfreich sein, es explizit anzugeben, um den Code verständlicher zu machen.

2. Kann ich das auch für mehrere Zellen gleichzeitig machen?
Ja, du kannst den Code leicht anpassen, um mehrere Zellen zu ändern. Zum Beispiel:

Sub ändern()
    Dim zelle As Range
    For Each zelle In Range("A1:A10")
        zelle.Value = Not zelle.Value
    Next zelle
End Sub

Mit diesem Code wird jeder Wert in den Zellen A1 bis A10 umgekehrt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige