Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wo liegt der Fehler?

Wo liegt der Fehler?
10.11.2005 13:33:35
Rolf
Hi,
Also, Excel Meint: Else ohne if!
Ich Meine: das stimmt nicht
hier der Code:

Sub STANDARDTDRUCK()
B = InputBox("Welchen Seitlichen Anschluss haben sie?" & vbCr & "P,S oder BA" & vbCr & "Haben sie mehrere Arten, drucken sie Sie mit den separaten Schaltern aus" & vbCr & "und lassen Sie das Feld hier leer!", "Anschluss Seite", "")
Sheets("BESTELLUNG").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("ALFRED").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("OSKAR").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
If B = "P" Then Sheets("KLINKPLAN P").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Else: If B = "S" Then Sheets("KLINKPLAN S").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Else: If B = "BA" Then Sheets("KLINKPLAN BA").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
End If
End If
C = MsgBox("Voravis oder Pulverbeschichtungsauftrag ausgedruckt und gefaxt?", vbYesNo, "Pulverbeschichtung!")
If merke = vbNo Then
Sheets("Beschichtungsauftrag").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Else: D = MsgBox("Die gewünschten Blätter wurden Gedruckt!", "Ausdruck Abgeschlossen")
End If
End Sub

Und JA, mann kann das ganze auch ohne Select machen!
Danke für die Antworten
Rolf

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wo liegt der Fehler?
10.11.2005 13:46:05
Heinz
Hallo Rolf,
das mit Select, da hast du Recht, denn mit Select ist der Code einfach nur zum Wegschauen (von den nicht vorhandenen Einrückungen mal abgesehen);-)
du solltest dir die Syntax von If Then Else mal anschauen.
Hier (d)ein Code:

Sub STANDARDDRUCK()
B = InputBox("Welchen Seitlichen Anschluss haben sie?" & vbCr & "P,S oder BA" & vbCr & "Haben sie mehrere Arten, drucken sie Sie mit den separaten Schaltern aus" & vbCr & "und lassen Sie das Feld hier leer!", "Anschluss Seite", "")
Sheets("BESTELLUNG").PrintOut Copies:=2, Collate:=True
Sheets("ALFRED").PrintOut Copies:=2, Collate:=True
Sheets("OSKAR").PrintOut Copies:=1, Collate:=True
If B = "P" Then Sheets("KLINKPLAN P").PrintOut Copies:=1, Collate:=True
ElseIf B = "S" Then Sheets("KLINKPLAN S").PrintOut Copies:=1, Collate:=True
ElseIf B = "BA" Then Sheets("KLINKPLAN BA").PrintOut Copies:=1, Collate:=True
End If
c = MsgBox("Voravis oder Pulverbeschichtungsauftrag ausgedruckt und gefaxt?", vbYesNo, "Pulverbeschichtung!")
If merke = vbNo Then
Sheets("Beschichtungsauftrag").PrintOut Copies:=2, Collate:=True
Else
D = MsgBox("Die gewünschten Blätter wurden gedruckt!", "Ausdruck Abgeschlossen")
End If
End Sub

Dann noch die Variable c, dann eine die merke (denn die kommt davor ja gar nicht vor) heißt. Soll das wohl dieselbe sein?
Gruß
Heinz
Anzeige
AW: Wo liegt der Fehler?
10.11.2005 13:47:39
IngGi
Hallo Rolf,
es gibt zwei Formen von If-Anweisungen, die du durcheinanderbringst
If A=B Then
A=C
Else
A=D
End If
Diese Form muss mit "End If" abgeschlossen werden. Schreibst du dagegen Bedingung und Anweisung komplett auf eine Zeile, muss (besser gesagt darf!) die If-Anweisung nicht mit "End If" abgeschlossen werden. Also
If A=B Then B=C
Gruß Ingolf
AW: Wo liegt der Fehler?
10.11.2005 13:48:00
UweD
Hallo
wenn hinter dem Then direkt in der gleichen Zeile die anweisung steht, braucht kein End if.
Ich vermute du meinst das hier..

Sub STANDARDTDRUCK()
B = InputBox("Welchen Seitlichen Anschluss haben sie?" & vbCr & "P,S oder BA" & vbCr & "Haben sie mehrere Arten, drucken sie Sie mit den separaten Schaltern aus" & vbCr & "und lassen Sie das Feld hier leer!", "Anschluss Seite", "")
Sheets("BESTELLUNG").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("ALFRED").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("OSKAR").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
If B = "P" Then
Sheets("KLINKPLAN P").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Else
If B = "S" Then
Sheets("KLINKPLAN S").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Else
If B = "BA" Then
Sheets("KLINKPLAN BA").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
End If
End If
C = MsgBox("Voravis oder Pulverbeschichtungsauftrag ausgedruckt und gefaxt?", vbYesNo, "Pulverbeschichtung!")
If merke = vbNo Then
Sheets("Beschichtungsauftrag").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Else
D = MsgBox("Die gewünschten Blätter wurden Gedruckt!", "Ausdruck Abgeschlossen")
End If
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Wo liegt der Fehler?
10.11.2005 13:50:12
u_
Hallo,
... und man kann das auch ohne If else else else machen ;-))

Sub STANDARDTDRUCK()
B = InputBox("Welchen Seitlichen Anschluss haben sie?" & vbCr & "P,S oder BA" & vbCr & "Haben sie mehrere Arten, drucken sie Sie mit den separaten Schaltern aus" & vbCr & "und lassen Sie das Feld hier leer!", "Anschluss Seite", "")
Sheets("BESTELLUNG").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("ALFRED").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Sheets("OSKAR").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Select Case B
Case "P"
Sheets("KLINKPLAN P").PrintOut Copies:=1, Collate:=True
Case "S"
Sheets("KLINKPLAN S").PrintOut Copies:=1, Collate:=True
Case "BA"
Sheets("KLINKPLAN BA").PrintOut Copies:=1, Collate:=True
End Select
C = MsgBox("Voravis oder Pulverbeschichtungsauftrag ausgedruckt und gefaxt?", vbYesNo, "Pulverbeschichtung!")
If merke = vbNo Then
Sheets("Beschichtungsauftrag").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
Else: D = MsgBox("Die gewünschten Blätter wurden Gedruckt!", "Ausdruck Abgeschlossen")
End If
End Sub

Gruß
Geist ist geil!
Anzeige
AW: Wo liegt der Fehler?
10.11.2005 14:02:03
Rolf
Hach ja, nach so vielen guten Vorschlägen und erklärungen werde ich in Zukunft die Zeile "Excel gut-VBA keine Anhnung" im Titel ankreuzen... ;)
Ich hab mir zur Gedankenstütze mal die Erklärungen und die Blätter ausgedruckt, dass ich das das nächste mal als Beispiel nehmen kann!
Vielen Dank für alle Antworten!
Rolf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige