06.01.2021, 09:28
Hallo, liebe Excel-Freunde
Ich wäre euch unheimlich dankbar, wenn ihr mir bei einem Problem helfen könntet...
Mit einem Konverter lese ich diverse PDF-Tabellen in eine Excel-Tabelle ein. Leider übernimmt mir der Konverter NICHT die Seitenumbrüche, weshalb ich diese Umbrüche durch die immer wiederkehrenden Kopfzeile per Makro automatisch erstelle. Soweit, so gut!
Nun kommt es oft vor, dass das ursprüngliche Seitenlayout durch unterschiedliche Zeilenhöhen nicht übereinstimmt und oft 4-5 Zeilen auf der nächsten Page landen...
Da gewisse Zeilenhöhen überdurchschnittlich hoch sind, habe ich ein Drehfeld, dass mir diese überdurchschnittlichen Zeilenhöhen reduziert.
Mit folgendem Code passe ich diese Zeilienhöhen an.
Das Problem ist jedoch, dass bei 2-3000 Zeilen diese Schleifenlösung unheimlich langsam ist!
Habt ihr eine Idee, wie man diese effezienter lösen kann?
Vielen lieben Dank für eure Hilfe!
Christian
Ich wäre euch unheimlich dankbar, wenn ihr mir bei einem Problem helfen könntet...
Mit einem Konverter lese ich diverse PDF-Tabellen in eine Excel-Tabelle ein. Leider übernimmt mir der Konverter NICHT die Seitenumbrüche, weshalb ich diese Umbrüche durch die immer wiederkehrenden Kopfzeile per Makro automatisch erstelle. Soweit, so gut!
Nun kommt es oft vor, dass das ursprüngliche Seitenlayout durch unterschiedliche Zeilenhöhen nicht übereinstimmt und oft 4-5 Zeilen auf der nächsten Page landen...
Da gewisse Zeilenhöhen überdurchschnittlich hoch sind, habe ich ein Drehfeld, dass mir diese überdurchschnittlichen Zeilenhöhen reduziert.
Mit folgendem Code passe ich diese Zeilienhöhen an.
Das Problem ist jedoch, dass bei 2-3000 Zeilen diese Schleifenlösung unheimlich langsam ist!
Habt ihr eine Idee, wie man diese effezienter lösen kann?
Vielen lieben Dank für eure Hilfe!
Christian
Code:
'Zeilenabstand
Private Sub SpinButton_Zeilenabstand_Change()
Dim lnglastrow As Long
Dim lngI As Integer
Dim lngZeilenhöhe As Integer
If SheetExists("LV_Import") = False Then MsgBox "Kein Leistungsverzeichnis vorhanden", , "Fehler": Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
lnglastrow = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row + 10
'Grössere Zeilenabstände bei Haupt- und Nebenpositionen
With Sheets("LV_Import").Range("D2:D" & lnglastrow)
For lngI = 1 To lnglastrow
If .Rows(lngI).RowHeight > 15 Then
lngZeilenhöhe = .Rows(lngI).RowHeight
.Cells(lngI, 1).RowHeight = lngZeilenhöhe + SpinButton_Zeilenabstand.Value
End If
Next lngI
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub