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

Case - was mache ich falsch?

Case - was mache ich falsch?
MichiM
Hallo,
habe ein Problem mit der Eingabe von einem Makro.
Folgenden Code möchte ich schreiben:
If Not (Worksheets("Suche").Cells(2, 5).Value) = "" Then
Suchort = Worksheets("Suche").Cells(2, 5).Value
Auswahlsumme = Auswahlsumme + 16
End If

Select Case Auswahlsumme
Case 1
Suche1 (Suchname)

Case 2
Suche2 (Suchvorname)

Case 19
Suche19 (Suchname, Suchvorname)

Immer wenn ich das (hier letzte) Klammer-zu-Zeichen gesetzt habe und mit Enter in die nächste Zeile will, kommt die Fehlermeldung:
Fehler beim Kompilieren.
Erwartet: =
Was mache ich verkehrt?
Gruss
MichiM

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Case - was mache ich falsch?
Ramses
Hallo
deine Funktion oder das Makro "Suche19" erwartet wahrscheinlich nur einen Parameter, oder kann nur einen verarbeiten.
Gruss Rainer
AW: Case - was mache ich falsch?
MichiM
Hallo Ramses,
das Makro habe ich von Worti und wollte es jetzt meinen Bedürfnissen anpassen.

Sub SuchDatenUndKopiere()
Dim Suchname As String
Dim Suchvorname As String
Dim Suchstrasse As String
Dim Suchplz As String
Dim Suchort As String
Dim Auswahlsumme As Integer
Worksheets("Ergebnis").Cells.ClearContents
Suchname = ""
Suchvorname = ""
Suchstrasse = ""
Suchplz = ""
Suchort = ""
If Not (Worksheets("Suche").Cells(2, 1).Value) = "" Then
Suchname = Worksheets("Suche").Cells(2, 1).Value
Auswahlsumme = Auswahlsumme + 1
End If
If Not (Worksheets("Suche").Cells(2, 2).Value) = "" Then
Suchvorname = Worksheets("Suche").Cells(2, 2).Value
Auswahlsumme = Auswahlsumme + 2
End If
If Not (Worksheets("Suche").Cells(2, 3).Value) = "" Then
Suchstrasse = Worksheets("Suche").Cells(2, 3).Value
Auswahlsumme = Auswahlsumme + 4
End If
If Not (Worksheets("Suche").Cells(2, 4).Value) = "" Then
Suchplz = Worksheets("Suche").Cells(2, 4).Value
Auswahlsumme = Auswahlsumme + 8
End If
If Not (Worksheets("Suche").Cells(2, 5).Value) = "" Then
Suchort = Worksheets("Suche").Cells(2, 5).Value
Auswahlsumme = Auswahlsumme + 16
End If
Select Case Auswahlsumme
Case 1
Suche1 (Suchname)
Case 2
Suche2 (Suchvorname)
Case 19
Suche19 (Suchname, Suchvorname)
End Select
End Sub


Gruss
MichiM
Anzeige
AW: Case - was mache ich falsch?
Ramses
Hallo
dann würde ich mal Worti fragen ;-)
Ohne die anderen Makros oder Funktionen ( Suche1, Suche2 und Suche19 )kann ich dir leider nicht helfen.
Gruss Rainer
AW: Case - was mache ich falsch?
MichiM
Hier mal alles, was ich bekommen habe.
'Hallo michi,
'kurze Erklärung des Makros:

Sub SuchDatenUndKopiere()
Dim Suchname As String
Dim Suchvorname As String
Dim Suchstrasse As String
Dim Suchplz As String
Dim Suchort As String
Dim Auswahlsumme As Integer
'Löschen der Inhalte aus dem Blatt Ergebnis
Worksheets("Ergebnis").Cells.ClearContents
'Initialisieren der Suchkriterien
Suchname = ""
Suchvorname = ""
Suchstrasse = ""
Suchplz = ""
Suchort = ""
'Wenn Suchkriterium Name auf Blatt SUCHE gefüllt ist, ins Suchkriterium übertragen
If Not (Worksheets("Suche").Cells(2, 1).Value) = "" Then
Suchname = Worksheets("Suche").Cells(2, 1).Value
'Summe bilden, um festzustellen, was an Suchkriterien vorgegeben ist
Auswahlsumme = Auswahlsumme + 1
End If
If Not (Worksheets("Suche").Cells(2, 2).Value) = "" Then
Suchvorname = Worksheets("Suche").Cells(2, 2).Value
Auswahlsumme = Auswahlsumme + 2
End If
If Not (Worksheets("Suche").Cells(2, 3).Value) = "" Then
Suchstrasse = Worksheets("Suche").Cells(2, 3).Value
Auswahlsumme = Auswahlsumme + 4
End If
If Not (Worksheets("Suche").Cells(2, 4).Value) = "" Then
Suchplz = Worksheets("Suche").Cells(2, 4).Value
Auswahlsumme = Auswahlsumme + 8
End If
If Not (Worksheets("Suche").Cells(2, 5).Value) = "" Then
Suchort = Worksheets("Suche").Cells(2, 5).Value
Auswahlsumme = Auswahlsumme + 16
End If
'Anhand von Auswahlsumme wird erkannt, welche Suchkriterien gefüllt sind
'Beispiel: Wenn Suchkriterien Name, Vorname und Ort gefüllt sind, müßte
'dieAuswahlsumme auf 19 =  1 für Name
'                       +  2 für Vorname
+ 16 für Ort stehen
Select Case Auswahlsumme
Case 1
Suche1 (Suchname)
'           Case 2
'              Suche2
'... je nach Summe (die ist eindeutig) die Felder abgleichen
Case 19
Suche19 (Suchname, Suchvorname, Suchort)
End Select
End Sub


Sub Suche1(Name As String)
Dim I As Integer
'Nur Name als Suchkriterium
For I = 2 To Worksheets("Daten").Cells(Rows.Count, 1).End(xlUp).Row
If Name = Worksheets("Daten").Cells(I, 1).Value Then
Kopieren (I)
End If
Next
End Sub


Sub Suche19(Name As String, Vorname As String, Ort As String)
Dim I As Integer
'Suchkriterien = Name, Vorname, Ort
'Schleife bis zur letzten Zeile in Blatt DATEN
For I = 2 To Worksheets("Daten").Cells(Rows.Count, 1).End(xlUp).Row
'Abgleichen der Zeileninhalte mit Suchkriterien
If Name = Worksheets("Daten").Cells(I, 1).Value and _
Vorname = Worksheets("Daten").Cells(I, 2).Value and
Ort = Worksheets("Daten").Cells(I, 6).Value and  Then
'Aufruf der 

Sub fürs Kopieren der entsprechenden Zeile
Kopieren (I)
End If
Next
End Sub


Sub Kopieren(Zeile As Long)
'Übnertragen der Werte aus DATEN in ERGEBNIS
Dim NextRow As Long
NextRow = Worksheets("Ergebnis").Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets("Ergebnis").Cells(NextRow, 1) = _
Worksheets("Daten").Cells(Zeile, 1)
Worksheets("Ergebnis").Cells(NextRow, 2) = _
Worksheets("Daten").Cells(Zeile, 2)
Worksheets("Ergebnis").Cells(NextRow, 3) = _
Worksheets("Daten").Cells(Zeile, 4)
Worksheets("Ergebnis").Cells(NextRow, 4) = _
Worksheets("Daten").Cells(Zeile, 5)
Worksheets("Ergebnis").Cells(NextRow, 5) = _
Worksheets("Daten").Cells(Zeile, 6)
End 

Sub
Danke
Michi

Anzeige
AW: Case - was mache ich falsch?
Bjoern
Hallo Michi,
Rainer lag gar nicht so verkehrt, nur scheinst Du nicht einen Parameter zu viel, sondern einen Parameter zu wenig bei Suche19 angegeben zu haben.
In Deinem Code jedenfalls heißt es:
Sub Suche19(Name As String, Vorname As String, Ort As String)
es wird also neben dem Namen und dem Vornamen also auch der Ort erwartet.
Gruß
Björn
AW: Case - was mache ich falsch?
MichiM
Auch wenn ich den Ort As String rausnehme geht es nicht :(
Was ich nicht verstehe:
Wenn ich ein Makro schreibe - also noch entwickel - ist doch nach garnicht bekannt, was weiter unten stehen wird, oder?
Dann dürfte der Fehler zwar beim ausführen bemängelt - aber doch nicht beim schreiben.
Gruss
MichiM
Anzeige
AW: Case - was mache ich falsch?
09.04.2004 15:21:49
Bjoern
Hallo Michi,
woran es denn nun genau liegt, kann ich Dir leider auch nicht sagen.
Aber schreib doch mal vor den Aufruf von Suche19 das Wort "Call", dann sollte es klappen.
Gruß
Björn
So sollte es gehen ...
Ramses
Hallo
ändere die Zeile
Suche19 (Suchname, Suchvorname, Suchort)
in
Suche19 Suchname, Suchvorname, Suchort
Dann sollte es tun
Excel überprüft übrigens IMMER während der Eingabe die Syntax einer bereits bestehenden Funktion oder Sub
Gruss Rainer
Danke...
09.04.2004 23:23:51
MichiM
und sorry wegen des neuen Threads...
Gruss
MichiM

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige