Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Variablen-namen,Laufzeitfehler 1004

    Betrifft: Variablen-namen,Laufzeitfehler 1004 von: Peppi
    Geschrieben am: 07.10.2003 14:38:36




    Hallo,


    ich frage über eine Inputbox einen Text ab, anch dem eine Arbeitsmappe durchsucht werden soll. Wenn eine Übereinstimmung gefunden wurde, soll ein Arbeitblatt erstellt werden, welches den gleichen Namen wie der suchbegrifft hat. Dann soll gefragt werden, ob weiter gesucht werden soll. Bis zur Ersellung des Arbeitsblattes läuft es auch, nur dann bekomme ich die Fehler meldung:

    Laufzeitfehler 1004

    Kann einem Blatt nicht den Gleichen Namen geben wie einem anderen Blatt, einer Objektbibliothek oder einer Arbeitsmnappe, auf die Visual Basic bezug nimmt.

    Den Quelltext, wie ich ihn bisher habe, habe ich unten mal angehängt. Würde mich freuen, wenn jemand Rat weiß.

    Vielen Dank, Gruß
    Peppi




    Private Sub Suche(strSuchtext As String)
    
        Dim SuchKatalogblattName As String
        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
        Dim strSuchtext2 As String
        
                        'wir kommen hier von der Public Sub Suchen() aus hin
                        'Prüfen, ob SuchKatalogblatt bereits existiert
                        Set objSuchKatalogblatt = GetWorksheet(strSuchtext)
                        'Wenn SuchKatalogblatt nicht existiert, dann...
                        'If 1
                        If objSuchKatalogblatt Is Nothing Then
                        '******
                        '******
                            'Alle Blätter durchlaufen
                            For Each objBlatt In ActiveWorkbook.Worksheets
                                'Verwendeten Bereich jedes Blatts durchsuchen
                                With objBlatt.UsedRange
                                    'Suchfunktion aufrufen
                                    Set objZelle = .Find(What:=strSuchtext, LookIn:=xlValues)
                                    'Wenn erster Treffer, dann...
                                    'If 2
                                    If Not objZelle Is Nothing Then
                                        '... Fundstelle merken
                                        strErsteFundstelle = objBlatt.Name & "!" & objZelle.Address
                                        'Neues Katalogblatt anlegen
                                        Set objSuchKatalogblatt = Worksheets.Add(After:=Worksheets(Worksheets.Count))
                                        'Suchtext bildet Namen des SuchKatalogblattes
                                      
                                        objSuchKatalogblatt.Name = strSuchtext
                                       
                                        Do
                                        'Blatt mit Fundstelle aktivieren
                                        objBlatt.Activate
                                        'Fundstelle markieren
                                        objZelle.Select
                                        'Anwender fragen, ob Suche fortgesetzt werden soll
                                        intButton = MsgBox("Weiter suchen?", vbQuestion + vbYesNo, APP_NAME)
                                        'Wenn Antwort nicht 'Ja' lautet, dann...
                                        'If 010
                                        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' lautet, dann...
                                            'If 016
                                            If intButton <> vbYes Then
                                                'Infofenster mit "Suche beendet!" öffnen und...
                                                MsgBox "Suche beendet3!", vbInformation, APP_NAME
                                                '...Makro beenden
                                                Exit Sub
                                            'If 016
                                            Else
                                            'Suchkatalogblatt aktivieren
                                            objSuchKatalogblatt.Activate
                                            'Makro beenden
                                            Exit Sub
                                        'If 010
                                        End If
                                            'If 016
                                            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
                                           'If 2
                                        End If
                                End With
                            Next
            MsgBox "Keine weiteren Fundstellen.", vbInformation, APP_NAME
            'Fragen, ob das Suchkatalogblatt geöffnet werden soll
            intButton = MsgBox("Das Suchkatalogblatt öffnen?33", vbQuestion + vbYesNo, APP_NAME)
            'Wenn die Antwort nicht 'Ja' lautet, dann...
            'If 015
            If intButton <> vbYes Then
                'Infofenster mit "Suche beendet!" öffnen und...
                MsgBox "Suche beendet3!", vbInformation, APP_NAME
                '...Makro beenden
                Exit Sub
             'If 015
             Else
                 'Suchkatalogblatt aktivieren
                 objSuchKatalogblatt.Activate
                 Exit Sub
             'If 015
             End If
        'If 1
        End If
    
    End Sub
    

      


    Betrifft: AW: Variablen-namen,Laufzeitfehler 1004 von: OliveR
    Geschrieben am: 11.10.2003 01:53:29

    Hallo Peppi,

    könnte es sein, dass das Macro folgendes versucht?
    1. Es findet einen Eintrag
    2. Es legt einen neuen Sheet an
    3. Es sucht dann weiter
    4. Es versucht einen neuen Sheet anzulegen (aber mit dem selben Namen wie in 2.)
    5. bricht ab

    Denke es wäre einfacher, den Fehler zu finden, wenn man den Excelfile hätte.

    Gruß
    OliveR


      


    Betrifft: AW: Variablen-namen,Laufzeitfehler 1004 von: Peppi
    Geschrieben am: 11.10.2003 16:54:56

    Hallo,

    vielen Dank erst mal. Ist schon richtig wie du vermutet hast. Ich habe es jetzt bereits anders gelöst. Habe ein paar andere Dinge anders gelöst, als ich erst angedacht hatte und dadurch hat sich dieses Problem erstmal erübrigt.

    Trotzdem vielen Dank.
    Gruß
    Sven