Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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
Inhaltsverzeichnis

Fehler im VBA bei Neubefüllung einer Spa

Fehler im VBA bei Neubefüllung einer Spa
01.03.2023 11:44:09
Bernie
Hallo miteinander!
Ich habe ein Problem mit meinem Makro.
Das Ergebnis sollte so sein:
In einer Spalte im Blatt (hier die Spalte D3 in Blatt "Navigation") soll zunächst nur der Inhalt (nicht die Formatierung) gelöscht werden.
Anschließend werden alle Blätter mit ihrer Bezeichnung ausgelesen und im Blatt "Navigation" als Inhaltsverzeichnis mit Hyperlinks eingefügt.
Ich habs so probiert:
Sub Navigation()
'updateby Extendoffice 20180413
Dim xAlerts As Boolean
Dim I As Long
Dim Navigation As Worksheet
Dim xSht As Variant
xAlerts = Application.DisplayAlerts
Application.DisplayAlerts = False
On Error Resume Next
On Error GoTo 0
Range("d13:d50").Select
Selection.ClearContents
I = 12
'Cells(10, 3).Value = "Inhaltsverzeichnis"
For Each xSht In ThisWorkbook.Sheets
If xSht.Name > "Navigation" Then
I = I + 1
Navigation.Hyperlinks.Add Cells(I, 13), "", "'" & xSht.Name & "'!a1", , xSht.Name
End If
Next
Application.DisplayAlerts = xAlerts
End Sub
Zunächst wird alles wie gewünscht gelöscht.
Beim neu befüllen bekomme ich in der Zeile:
Navigation.Hyperlinks.Add Cells(I, 13), "", "'" & xSht.Name & "'!a1", , xSht.Name
die Fehlermeldung:
"Objektvariable oder With-Blockvariable nicht festgelegt"
Kann mir bitte jemand weiterhelfen?
Besten Dank
Bernie

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler im VBA bei Neubefüllung einer Spa
01.03.2023 11:57:57
GerdL
Moin Bernie,
benenne zuerst das Blatt, das Mako u. die Variable Navigation unterschiedlich.
Gruß Gerd
AW: Fehler im VBA bei Neubefüllung einer Spa
01.03.2023 12:25:19
Bernie
Hallo Gerd,
da ich Anfänger bin, mache ich wohl weiterhin Fehler. Also, es funktioniert immer noch nicht.
Wäre toll, wenn Du mir evtl. die Fehler kurz ausmisten könntest.
Also am Schluss soll halt das Blatt mit dem Inhaltsverzeichnis im Reiter "Navigation" heißen.
Und eben dort sämtliche Blätter der Arbeitsmappe mit Hyperlink aufzeigen.
Ich würde DIr sehr dankbar sein.
Bernie
AW: Fehler im VBA bei Neubefüllung einer Spa
01.03.2023 12:38:25
Rudi
Hallo,
"Objektvariable oder With-Blockvariable nicht festgelegt"
logisch.
du hast zwar eine Variable Navigation deklariert, ihr aber nichts zugewiesen.
Set Navigation=Worksheets("Navigation")
fehlt.
Gruß
Rudi
Anzeige
AW: Fehler im VBA bei Neubefüllung einer Spa
01.03.2023 12:49:06
Bernie
Hallo Rudi,
also ich bin wie es aussieht noch zu viel Anfänger.
Es klappt einfach nicht. Wo muss ich diese Zeile einfügen?
Wenn ichs direkt über der Fehlerzeile einfüge, kommt wieder beim Debuggen der Fehler.
Wäre es zu unverschämt, wenn ich drum bitte, ob Du mir mal das Makro durchgehen könntest und die Fehler korrigierst?
Dann bleibt mir wohl wirklich nur, meinen "Projektversuch" in die Tonne zu werfen.
Gruß vom VBA Säugling
Bernie
_____________________________________________________________________
Hallo,
"Objektvariable oder With-Blockvariable nicht festgelegt"
logisch.
du hast zwar eine Variable Navigation deklariert, ihr aber nichts zugewiesen.
Set Navigation=Worksheets("Navigation")
fehlt.
Gruß
Rudi
_____________________________________________________________________
Anzeige
AW: Fehler im VBA bei Neubefüllung einer Spa
01.03.2023 13:02:33
Rudi
Sub Navigation()
  'update by Rudi Maintaire 20230301
  Dim lngRow As Long
  Dim wksNavigation As Worksheet
  Dim wks As Worksheet
  
  Set wksNavigation = Worksheets("Navigation")
  
  lngRow = 12
  With wksNavigation
    .Range("d13:d50").ClearContents
    For Each wks In Worksheets
      If Not wks Is wksNavigation Then
        lngRow = lngRow + 1
        .Hyperlinks.Add .Cells(lngRow, 4), "", "'" & wks.Name & "'!A1", , wks.Name
      End If
    Next
  End With
End Sub
Gruß
Rudi
AW: Fehler im VBA bei Neubefüllung einer Spa
01.03.2023 13:14:25
Bernie
Hallo Rudi,
wie kann ich Dir evtl. die gesamte Arbeitsmappe mal schicken?
Es kalppt einfach nicht.
Bernie
Anzeige
was klappt nicht? Und ...
01.03.2023 13:28:37
Rudi
wie kann ich Dir evtl. die gesamte Arbeitsmappe mal schicken?
Button: Zum File-Upload
AW: was klappt nicht? Und ...
01.03.2023 14:13:41
Bernie
Das VBA hält immer wieder an der gleichen Stelle an.
Jetzt ist die ganze Mappe drin.
Es geht nur um das Modul 1 und die Tabelle5 (Navigation), das im Blatt NAVIGATION ablaufen soll.
du hast ein leerzeichen ....
01.03.2023 14:21:26
Rudi
vor dem Blattnamen. " Navigation"
AW: du hast ein leerzeichen ....
01.03.2023 14:27:58
Bernie
Aha. An welcher Stelle?
Sub Navigation()
  'update by Rudi Maintaire 20230301
  Dim lngRow As Long
  Dim wksNavigation As Worksheet
  Dim wks As Worksheet
'Hier hält der Debugger jetzt an:  
  Set wksNavigation = Worksheets("Navigation")
  
  lngRow = 12
  With wksNavigation
    .Range("d13:d50").ClearContents
    For Each wks In Worksheets
      If Not wks Is wksNavigation Then
        lngRow = lngRow + 1
        .Hyperlinks.Add .Cells(lngRow, 4), "", "'" & wks.Name & "'!A1", , wks.Name
      End If
    Next
  End With
End Sub

Anzeige
AW: du hast ein leerzeichen ....
01.03.2023 16:33:11
Yal
Hallo Bernie,
wenn man schon mit "With" arbeitet, kann man ich die Variable mit dem elendlangen Namen "wksNavigation" sparen. Vergleich Objekt zu Objekt is nicht gewöhnlich. Bei Blätter, deren Namen eindeutig sein müssen, kann man den Namen vergleichen:
Sub Navigation()
'update by Rudi Maintaire 20230301
Dim lngRow As Long
Dim wks As Worksheet
    lngRow = 12
    With Worksheets("Navigation")
        .Range("d13:d50").ClearContents
        For Each wks In Worksheets
            If wks.Name > .Name Then
                lngRow = lngRow + 1
                .Hyperlinks.Add .Cells(lngRow, 4), "", "'" & wks.Name & "'!A1", , wks.Name
            End If
        Next
    End With
End Sub
VG
Yal
Anzeige
Augen auf - nicht nur im Straßenverkehr
01.03.2023 14:25:19
Daniel
Du musst bei
  Set wksNavigation = Worksheets("...")
innerhalb der Anführungszeichen den genau gleichen Namen verwenden, den du auch im Tabellenblattreiter verwendest.
Beachte, dass es auch Zeichen gibt, die man nicht so direkt sieht wie das Leerzeichen, das man aber auch berücksichtigen muss.
Schau auch mal im VBA-Edtitor auf Baum des Projektexplorers. Da stehen vor der Klammer der Objektname (Tabelle5) und in der Klammer der Name, den du dem Tabellenblatt im Reiter vergeben hast (Navigation), vielleicht fällt dir da was auf.
alternativ kannst du auch über den Objektnamen zuweisen:
Set wksNavigation = Tabelle5
Gruß Daniel
Anzeige
AW: Augen auf - nicht nur im Straßenverkehr
01.03.2023 14:31:48
Bernie
Daaaaaaanke vielmals. Jetzt klappts.
Muss nur noch herausfinden, wie die eingefügten Blattnamen die ursprüngliche Formatierung behalten (Comic Sans MS Schriftsgröße 11).
Du hast mir unwahrscheinlich geholfen.
Nochmals tausend Dank
Gruß aus der Holledau
Bernie

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige