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

Forumthread: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert

VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:23:21
Peer
Hallo Excelfans.

Ich habe eine kurze Verständnisfrage zu oben genannter Problematik.

Ich klicke in einem Blatt in eine Zeile und darauf startet ein UF.
Beim Öffnen (Userform_Initalize) dieses UF soll geprüft werden, ob in der aktiven Zeile in Spalte G (7) der Wert "1" steht. Wenn ja, soll Checkbox chk_FAE aktiviert werden. Wenn nein, deaktiviert.
Nun dachte ich, dass mein bescheidener VBA-Sachverstand reichen würde und ich mit der Codezeile,...


Dim zeile As Long

zeile = ActiveCell.Row
'FAE
If Cells(zeile, 7) = "1" Then
Me.chk_FAE.Value = True
Else: Me.chk_FAE.Value = False
End If
die Lösung ist. Eigentlich würde auch
 If Cells(zeile, 7) = "1" Then Me.chk_FAE.Value = True
reichen. Aber leider ist das Ergebnis immer, das die Checkbox deaktiviert bleibt.

Habe ich einen Denkfehler?
Ich habe schon einiges probiert. Mit .value, ohne .value, mit "1" und nur 1....

Kann eventuell mich jemand auf den Fehler stossen?

Vielen Dank für den Anschubser.

Gruß
Peer
Anzeige
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:30:51
Onur
WAS steht da wirklich?
Der WERT 1 oder der Text "1" ????
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:35:42
daniel
Hi

probiers mal so:

Checkbox chk_FAE.value = (ActiveCell.Offset(0, 7 - ActiveCell.Column).Text = "1")


wenn das nicht tut, lad mal die Datei hoch, dann können wir direkt draufschauen und sehen, was falsch ist.
macht mehr Sinn als lang rum zu raten (außer natürlich, du bezahlst für jeden Tipp 10€)

Gruß Daniel
Anzeige
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:49:03
Peer
Hallo Daniel.

Leider führt dein Vorschlag auch nicht zum erhofften Ergebnis.

Ich habe ein (inzwischen) eine riesige Datei erstellt, die ich leider nicht so hochladen kann.
Da muss ich sehr intensive reduzieren, damit sie die nötige Größe hat. Und ob sie dann noch funktioniert...

Ich werde wohl eine neue Datei erstellen müssen.

Gruß Peer
Anzeige
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:50:22
Onur
Ich habe dir doch die Lösung gepostet!
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 14:04:17
Peer
Hallo zusammen.

Es hat geklappt.
Danke für eure Hilfe.
Ihr habt mir bestätigt, dass ich doch nicht so falsch lag. Die Anführungszeichen waren nicht der Grund, sondern der Umstand, dass ich in einem anderen Sub die Checkbox deaktiviert habe, wenn eine Option gewählt wurde. Diese Zeile habe ich auskommentiert/gelöscht, und schon passt es.

Gruß Peer
Anzeige
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:34:52
Onur
If x=1
prüft, ob x=1 (ZAHL)
If x="1"
überbrüft, ob x ein String (Text) ist und "1" lautet.
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:38:33
Peer
Hallo onur.

Ich habe vergessen, noch hinzuzufügen, das das Zellformat als Zahl ohne Dezimal festgelegt ist.
Über selbige UF setze ich einen Haken, wenn er benötigt wird und schreibe beim Schließen der UF diesen Wert in die entsprechende Zelle.
If Me.chk_FAE.Value = True Then

.Cells(1, 7).Value = "1"
ElseIf Me.chk_FAE.Value = False Then
.Cells(1, 7).Value = ""
End If

Peer
Anzeige
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:39:46
Onur
Dann musst du einfach überall im Code die Gänsefüsschen um die 1 weglassen.
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:44:37
Onur
Also einfach
.Cells(1, 7).Value = 1

bzw
If Cells(zeile, 7) = 1 Then

AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 13:53:55
Peer
Ich habe beide Versionen (mit und ohne "") probiert, trotzdem bekomme ich es nicht hin.

Ich denke, dass Problem liegt irgendwo anders.
Ich habe noch zwei weitere Checkboxes mit fast selbigen Code, nur das die Spalte anders ist.
'PTZ auslesen

Me.chk_PTZ1 = False
Me.chk_PTZ2 = False
If Cells(zeile, 12) = "1" Then
Me.chk_PTZ1.Value = True
ElseIf Cells(zeile, 11) = "1" Then
Me.chk_PTZ2.Value = True
End If
    'PTZ eintragen

If Me.chk_PTZ1.Value = True Then
.Cells(1, 12).Value = "1"
.Cells(1, 11).Value = ""
ElseIf Me.chk_PTZ2.Value = True Then
.Cells(1, 11).Value = "1"
.Cells(1, 12).Value = ""
ElseIf Me.chk_PTZ1 = False And Me.chk_PTZ2 = False Then
.Cells(1, 11).Value = ""
.Cells(1, 12).Value = ""
ElseIf Me.chk_PTZ1 = True And Me.chk_PTZ2 = True Then
MsgBox "Bitte nur eine PTZ eingeben!", vbInformation + vbOKOnly, "Falsche Eingabe der PTZ"
End If
Hier sind die Zellformate auf Zahl ohne Dezimal gestellt.
Und hier funktioniert es. ;-(
Anzeige
AW: VBA: Checkbox aktivieren, wenn in aktiver Zeile Zelle Wert
26.06.2024 14:03:26
Onur
Und auch DA stehen überall um die 1 Gänsefüsschen und somit testest du immer, ob da der TEXT "1" steht und nicht die ZAHL 1.
Wenn du es nicht alleine hinkriegst, all die Fehler zu korrigieren, musst du, wie Daniel bereits schrieb, eine Datei posten, kann auch eine Magerversion deiner Originaldatei sein.
Anzeige
;

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

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