"Argumenttyp ByRef unverträglich"/Loop
Sven
ich habe folgendes Problem.
Ich frage über eine Inputbox einen Begriff ab. Der Begriff bildet den Namen eines neuen Arbeitsblattes. Dann wird das Katalogblatt gestaltet......
**************************************************************************************************************
Public Sub blattanlegen(strSuchtext As String, strErsteFundstelle As String, objBlatt As Worksheet, objZelle As Range)
Dim objSuchKatalogblatt As Variant
'Prüfen, ob SuchKatalogblatt bereits existiert
Set objSuchKatalogblatt = GetWorksheet(strSuchtext)
'Wenn SuchKatalogblatt nicht existiert, dann...
If objSuchKatalogblatt Is Nothing Then
'Neues Katalogblatt anlegen
Set objSuchKatalogblatt = Worksheets.Add(After:=Worksheets(Worksheets.Count))
'Suchtext bildet Namen des SuchKatalogblattes
objSuchKatalogblatt.Name = strSuchtext
'********************************
'***SuchKatalogblatt gestalten***
'********************************
'SuchKatalogblatt gestalten
With objSuchKatalogblatt
'Spaltenformatierungen festlegen
.......
Call Suchroutine(strSuchtext, strErsteFundstelle, objBlatt, objZelle, objSuchKatalogblatt)
End Sub
**************************************************************************************************************
Die "Suchroutine" (Code ist untenstehend) wird aufgerufen. Es wird nach dem eingegebenen Begriff gesucht, der ja auch gleichzeitig der Name des neuen Katalogblattes ist. Wenn die Frage nach der Suche nach einem weiteren Treffer verneint wird und die darauffolgende Frage, ob das neue Arbeitblatt geöffnet werden soll, gibt es folgenede Fehlermledung:
"Argumenttyp ByRef unverträglich" und "objSuchKatalogblatt" in "Call Suchroutine(strSuchtext, strErsteFundstelle, objBlatt, objZelle, objSuchKatalogblatt)" ist markiert.
Wenn die Frage, ob weiter gesucht werden soll behjat wird, kommt der Fehler, dass es Loop ohne do gibt.
Würde mich freuen, wenn jemandem was auffällt, auch wenn es hier vielleicht ein wenig durcheinander ist.
Vielen Dank
***********************************************************************************************************************
Private Sub Suchroutine(strSuchtext As String, strErsteFundstelle As String, objBlatt As Worksheet, objZelle As Range, objSuchKatalogblatt As Worksheet)
'Dim objBlatt As Worksheet
'Dim objSuchKatalogblatt As Worksheet
'Dim objZelle As Range
'Dim objZeile As Range
'Dim strErsteFundstelle As String
Dim intButton As Integer
Dim objForm As UserForm
'Verwendeten Bereich jedes Blatts durchsuchen
With objBlatt.UsedRange
'Blatt mit erster Fundstelle aktivieren
objBlatt.Activate
'Fundstelle markieren
objZelle.Select
''End Sub
'Anwender fragen, ob Suche fortgesetzt werden soll
intButton = MsgBox("Weiter suchen?", vbQuestion + vbYesNo, APP_NAME)
'Wenn Antwort nicht 'Ja' (NEIN) lautet, dann...
If intButton vbYes Then
'Fragen, ob das Suchkatalogblatt geöffnet werden soll
intButton = MsgBox("Das Suchkatalogblatt öffnen?22", vbQuestion + vbYesNo, APP_NAME)
'Wenn die Antwort nicht 'Ja' (NEIN) lautet, dann...
If intButton vbYes Then
'Infofenster mit "Suche beendet!" öffnen und...
MsgBox "Suche beendet3!", vbInformation, APP_NAME
'...Makro beenden
Exit Sub
Else
'Suchkatalogblatt aktivieren
objSuchKatalogblatt.Activate
'Makro beenden
Exit Sub
End If
End If
'Nach nächstem Vorkommen suchen
''Set objZelle = .FindNext(objZelle)
'Schleife wiederholen solange weitere Fundstellen auftauchen und erste Fundstelle noch nicht erreicht
''Loop While Not objZelle Is Nothing And objBlatt.Name & "!" & objZelle.Address strErsteFundstelle
End With
End Sub
***********************************************************************************************************************