Zahlen auf Checkbox

18/07/2008 - 16:45 von Alex Tuscher | Report spam
Hallo zusammen,

eigentlich wollte ich ein ganz einfaches Platzreservierungsprogramm
schreiben. Doch mit mehr und mehr Quellcode wurde mir erst bewusst, wieviel
ich noch nicht weiß.

Auf Tabellenblatt 1 ist folgender Code hinterlegt:

Private Sub Platz_1_Click()
Call Modul1.auswertung("Platz_1")
End Sub



Im Modul 1:

Sub auswertung(commandbutton)
Dim antwort As Boolean
Dim anzahl As Long
Dim name As String
Dim summe As Long

'Original
anzahl = CLng(Application.InputBox("Bitte Anzahl eingeben", , 0))
If IsNumeric(ActiveSheet.OLEObjects(commandbutton).Object.Caption) Then
summe = CLng(ActiveSheet.OLEObjects(commandbutton).Object.Caption)
If anzahl <> 0 And summe = 0 Then
ActiveSheet.OLEObjects(commandbutton).Object.BackColor = RGB(0, 255, 0)
summe = summe + anzahl
ActiveSheet.OLEObjects(commandbutton).Object.Caption = summe
[f3] = [f3] - anzahl
antwort = MsgBox("Sollen die Namen gleich erfasst werden?", vbYesNo)
If antwort = True Then
name = InputBox("Bitte Namen eingeben")
End If
End Sub


Obwohl hier drei If hinterlegt sind, wird nur ein End If benötigt. Sobald
ich aber
summe = CLng(ActiveSheet eine Zeile nach unten schiebe, meldet Excel:
"If ohne End If".

Warum? Ich dachte mir immer man benötigt soviele End If wie If und, dass es
keine Rolle spielen würde ob ich bei If..Then.. die Anweisung in die gleiche
Zeile oder eine darunter setze.

Mit freundlichen Grüßen

Alexander Tuscher
 

Lesen sie die antworten

#1 Claus Busch
18/07/2008 - 17:02 | Warnen spam
Hallo Alex,

Am Fri, 18 Jul 2008 07:45:01 -0700 schrieb Alex Tuscher:

[Code ausgeschnitten]

Obwohl hier drei If hinterlegt sind, wird nur ein End If benötigt. Sobald
ich aber
summe = CLng(ActiveSheet eine Zeile nach unten schiebe, meldet Excel:
"If ohne End If".

Warum? Ich dachte mir immer man benötigt soviele End If wie If und, dass es
keine Rolle spielen würde ob ich bei If..Then.. die Anweisung in die gleiche
Zeile oder eine darunter setze.



ich denke, beim Posten deines Codes haben sich ein paar Zeilenumbrüche
eingeschlichen.
Wenn du eine If-Anweisung einzeilig schreibst, also z.B.:
If Prüfung Then Anweisung
benötigst du kein End If
Das End If wird nur in der Blockschreibweise benötigt, also z.B.:
If Prüfung Then
Anweisung
End if
oder
If Prüfung then
Anweisung
else
weiter Anweisung
End if


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate

Ähnliche fragen