Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

If Anweisung

If Anweisung
08.12.2004 11:06:52
Roger
Hallo zusammen
Ich habe in einem UserForm eine If Anweisung die so halbwegs funktioniert fürs Suchen geschrieben.
If ActiveCell.Offset(0, 4).Value = "1" _
Then .CheckBox2.Value = True
Exit Sub
If ActiveCell.Offset(0, 3).Value = "1" _
Then .CheckBox1.Value = True
Exit Sub
Der Fehler ist nur das wenn ich nun suche in Checkbox2 etwas eingetragen wird wenn es eine 1 hat aber in Checkbox1 nicht. Wenn ich die Anweisunge umkehre dann ist es genau umgekehrt. Ich hoffe ich habe das Verständlich ausgedrückt.
Wie muss ich die beiden If Anweisungen verknüpfen damit es geht?
Besten Dank für eure Hilfe
Gruss Roger

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Anweisung
Ingo
Ungetestet:
If ActiveCell.Offset(0, 4).Value = "1" _
Then .CheckBox2.Value = True
ElseIf ActiveCell.Offset(0, 3).Value = "1" _
Then .CheckBox1.Value = True
End if
mfG
Ingo Christiansen
Fehler beim Kompilieren
08.12.2004 11:28:51
Roger
Hallo Ingo
Habs mal ausprobiert. Es kommt dann aber eine Fehlermeldung:
Fehler beim Kompilieren und Else ohne If
dazu wird folgende Zeile markiert:
ElseIf ActiveCell.Offset(0, 3).Value = "1" _
Then
Das verstehe ich nun nicht ganz Else und If steht ja da?
Gruss Roger
AW: Fehler beim Kompilieren
Ingo
Versteh ich auch nicht,probier mal:
If ActiveCell.Offset(0, 4).Value = "1" _
Then .CheckBox2.Value = True
If ActiveCell.Offset(0, 3).Value = "1" _
Then .CheckBox1.Value = True
End if
mfG
Ingo Christiansen
Anzeige
AW: Fehler beim Kompilieren
Chris
Hi,
End If weglassen, mit ... _ steht then in der selben Zeile somit End If nicht notwendig
MFG Chris
Super! Danke!
08.12.2004 11:46:33
Roger
Hallo Chris und Ingo
So klappts wunderbar. Danke vielmals!!
Gruss Roger
AW: Fehler beim Kompilieren
08.12.2004 11:42:44
Roger
Hallo Ingo
leider auch nicht nun kommt End if ohne If Block eine Fehlermeldung.
Ich stell mal den ganzen Code hier rein, vielleicht hilft das dann weiter.
Gruss Roger

Private Sub CommandButton6_Click()
Set frm5 = UserForm5
With frm5
Sheets("Intcontrolling").Select
Range("A:A").Select
On Error GoTo fehler
Selection.Find(What:=.TextBox1.Value, _
After:=ActiveCell, _
LookIn:=xlValues, LookAt:=xlPart).Activate
.TextBox2.Value = ActiveCell.Offset(0, 1).Value
.TextBox3.Value = ActiveCell.Offset(0, 2).Value
If ActiveCell.Offset(0, 4).Value = "1" _
Then .CheckBox2.Value = True
Exit Sub
If ActiveCell.Offset(0, 3).Value = "1" _
Then .CheckBox1.Value = True
Exit Sub
fehler:
MsgBox "Ein Dossier mit der Nummer : " & _
.TextBox1.Value & " konnte nicht gefunden werden!"
End With
End Sub

Anzeige
AW: Fehler beim Kompilieren
Ingolf
Hallo Roger, hallo Ingo,
die Fehlermeldung erscheint, weil sowohl die If-Anweisung als auch die Elseif-Anweisung jeweils komplett in einer Zeile stehen. Die Zeilen werden ja durch den Unterstrich miteinander verbunden. Solche einzeiligen If-Anweisungen müssen nicht mit EndIf abgeschlossen werden, denn sie sind in sich geschlossen. Daher findet er auch keine "offene" If-Anweisung zur ElseIf-Anweisung. Das ganze müsste daher so aussehen:

Sub Test()
If ActiveCell.Offset(0, 4).Value = "1" Then
.CheckBox2.Value = True
ElseIf ActiveCell.Offset(0, 3).Value = "1" Then
.CheckBox1.Value = True
End if
End Sub

Allerdings würde auch dieser Code bei dem Problem nicht funktionieren, denn wenn die erste Bedingung wahr ist, wird die CheckBox2 auf True gesetzt und die zweite Bedingung anschließend gar nicht mehr geprüft. Schau mal was passiert, wenn du in deinem Code die Exit Sub-Anweisung nach der ersten If-Anweisung weglässt.
Gruß Ingolf
Anzeige
Super! Danke!
08.12.2004 11:51:50
Roger
Hallo Ingolf
Danke es klappt einwandfrei mit folgendem Code
If ActiveCell.Offset(0, 4).Value = "1" _
Then .CheckBox2.Value = True
If ActiveCell.Offset(0, 3).Value = "1" _
Then .CheckBox1.Value = True
Exit Sub
Dann wird genau das angezeigt was ich brauche.
Ich muss euch allen mal ein riesen Lob aussprechen. Immer wenn ich Hilfe brauche krieg ich sie hier. Besten Dank
Gruss Roger

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige