Makro funktioniert nur bis zu einer bestimmten Z.

Bild

Betrifft: Makro funktioniert nur bis zu einer bestimmten Z.
von: Jenny
Geschrieben am: 15.09.2015 11:30:08

Hallo an alle,
habe ein Problem mit diesem Makro hier:

Sub Makro1()
'
' Makro1 Makro
'
' Tastenkombination: Strg+i
'
         Dim i, zt1&, von&, bis As Long
         Dim Grafiken As Shape
         Dim c As Range, a As Variant
         Application.ScreenUpdating = False
         With Sheets("Tabelle1")
             zt1 = .Cells(.Rows.Count, 1).End(xlUp).Row
             von = 1
             With Sheets("Tabelle2")
                 bis = .Cells(.Rows.Count, 2).End(xlUp).Row
                 .Range(.Cells(von, 2), .Cells(bis, 2)).Copy Sheets("Tabelle1").Cells(zt1, 6)
             End With
             With Sheets("Tabelle3")
                 .Range(.Cells(von, 5), .Cells(bis, 5)).Copy
             End With
             .Cells(zt1, 7).PasteSpecial Paste:=xlPasteValues
             Application.CutCopyMode = False
            If bis > 1 Then
                 .Range(.Cells(zt1, 1), .Cells(zt1, 4)).Copy _
                  Destination:=.Range(.Cells(zt1 + 1, 1), .Cells(zt1 + bis - von, 1))
            End If
             Application.CutCopyMode = False
             
             For Each c In Range(.Cells(zt1, 6), .Cells(zt1 + bis - von + 1, 6))
               If c.Hyperlinks.Count > 0 Then
                  a = Split(c.Hyperlinks(1).Address, "/")
                  c.Offset(0, -1).Value = a(UBound(a) - 1)
               End If
             Next
            '.Range(.Cells(1, 1), .Cells(zt1 + 1 + bis - von, 15)).Sort _
             'key1:=.Range("C1"), Order1:=xlAscending, _
            'key2:=.Range("G1"), Order2:=xlDescending, Header:=xlNo
         End With
         With Sheets("Tabelle2")
             .Range(.Cells(1, 1), .Cells(bis, 3)).Clear
         End With
         With Sheets("Tabelle3")
          .Range(.Cells(1, 1), .Cells(bis, 4)).Clear
           For Each Grafiken In .Shapes
                 Grafiken.Delete
           Next
         End With
    'Sheets("Tabelle1").Activate
    'Application.ScreenUpdating = True
    'If Application.CountA(Columns(8)) > 0 Then
       'If IsEmpty(Cells(1, 8)) Then
          'With Cells(1, 8).End(xlDown)
            '.Resize(1, 8).Copy
            '.Activate
          'End With
       'Else
        '  For i = 1 To Cells(Rows.Count, 8).End(xlUp).Offset(1).Row
         '   If IsEmpty(Cells(i, 8)) Then
          '      With Cells(i, 8).Offset(-1, 0)
           '         .Resize(1, 8).Copy
            '        .Activate
               ' End With
               ' Exit Sub
            'End If
         '   Next i
      ' End If
  '  End If
End Sub
genau genommen mit dem Teil
For Each c In Range(.Cells(zt1, 6), .Cells(zt1 + bis - von + 1, 6))
               If c.Hyperlinks.Count > 0 Then
                  a = Split(c.Hyperlinks(1).Address, "/")
                  c.Offset(0, -1).Value = a(UBound(a) - 1)
               End If
ab Zeile 65531 bleibt die Spalte E leer.
Hat da jemand einen Rat?
Danke und Gruß
Jenny

Bild

Betrifft: AW: Makro funktioniert nur bis zu einer bestimmten Z.
von: Rudi Maintaire
Geschrieben am: 15.09.2015 12:10:39
Hallo,
im Moment keine Idee.
Du solltest aber auf jeden Fall einen . vor Range(...) machen.

For Each c In .Range(.Cells(zt1, 6), .Cells(zt1 + bis - von + 1, 6))
Gruß
Rudi

Bild

Betrifft: AW: Makro funktioniert nur bis zu einer bestimmten Z.
von: Jenny
Geschrieben am: 15.09.2015 12:45:36
Hallo Rudi,
das Makro hatte immer schon so funktioniert, wie ich es gepostet habe also auch ohne den Punkt.
Aber hab das Ganze ein wenig eingrenzen können, bevor das Makro den Text mit den Hyperlinks aus Tabelle2 kopiert sind die Hyperlinks noch vorhanden, nach dem kopieren nicht mehr, in F65531 steht also bereits kein Hyperlink, aus dem das Makro dann E65531 machen könnte.
Hab mal was von Obergrenzen von Hyperlinks in einer Tabelle gelesen, meine ich zumindest, kann es sein dass das Problem daran liegt? Das dadurch dass F1:F65530 komplett mit Hyperlinks zugepflastert ist da eine Grenze erreicht ist?
Wenn ja, was hab ich für Möglichkeiten? in 2 Tabellen aufteilen geht nicht da es in der Tabelle RANG Formeln gibt, die verfälscht würden, wenn plötzlich die Hälfte der Zeilen fehlen.
LG
Jenny

Bild

Betrifft: AW: Makro funktioniert nur bis zu einer bestimmten Z.
von: ChrisL
Geschrieben am: 15.09.2015 15:22:17
Hi Jenny
Let me google this for you...
https://support.office.com/en-MY/article/Excel-specifications-and-limits-16c69c74-3d6a-4aaf-ba35-e6eb276e8eaa
Ja, 65530 = Limit für Hyperlinks.
Den Hinweis wegen dem Punkt würde ich an deiner Stelle aufnehmen.
Idee: statt Hyperlink z.B. mittels Doppelklick-Ereignis und VBA FollowHyperlink. Allerdings habe ich nicht nachvollzogen was dein Makro macht oder wie deine Datei wohl genau aussehen könnte, was deine Anforderungen sind usw.
cu
Chris

Bild

Betrifft: AW: Makro funktioniert nur bis zu einer bestimmten Z.
von: Jenny
Geschrieben am: 15.09.2015 20:42:26
Hallo Chris,
mir fällt es leider schwer, eine Nachvollziehbaere Beispieldatei zu schicken, da Formelergebnisse abhängig sind von der Sortierung, mit anderen Worten wenn ich nur Teile der Tabelle schicke, sind die Formelergebnisse nicht mehr nachvollziehbar.
Aber habe es jetzt einfach so gelöst dass ich die Hyperlinks entfernt habe, jetzt geht das Makro wieder

Bild

Betrifft: AW: Makro funktioniert nur bis zu einer bestimmten Z.
von: Jenny
Geschrieben am: 15.09.2015 20:43:53
nochmal zu dem Punkt,
habe ihn inzwischen eingefügt, es kommt jetzt weder ein Fehler noch hat sich etwas am Ergebnis was nach dem Ausführen des Makros vorliegt geändert also scheints sowohl mit als auch ohne zu gehen.
Gruß
Jenny

Bild

Betrifft: AW: Makro funktioniert nur bis zu einer bestimmten Z.
von: ChrisL
Geschrieben am: 16.09.2015 11:03:52
Hi Jenny
Punkt oder nicht Punkt...
Solange Tabelle 1 aktiv ist, macht es keinen Unterschied. Wenn aber mal eine andere Tabelle aktiv ist, macht der Punkt den kleinen Unterschied.
cu
Chris

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro funktioniert nur bis zu einer bestimmten Z."