dank googel und vorallem diesem Forum ist es mir als Anfänger nun gelungen mein erstes Makro mit Schleifen zu programmieren was mich rechts stolz macht.
Allerdings bin ich zwischendurch auf ein Problem gestossen, aus dem ich nicht so ganz schlau werden, weil es für mich der Lösungsansatz im Prinzip logisch richtig aussieht. Dennoch entsteht dabei aber eine Endlosschleife. Der Code dazu:
Code: Alles auswählen
Sub LeereZeilen
dim PTab as object
dim ETab as object
dim i as Integer
PTab = thisComponent.Sheets().getByName( "Punkte Startsystem" ) 'Punkttabelle auslesen
ETab = thisComponent.Sheets().getByName( "Export" ) 'Exporttabelle auslesen
EZImp = PTab.getCellRangeByName("H8").value 'Punktanzahl (=Zeilen und damit lezte Zeile) abfragen
EZeile = EZImp - 1 'Punktanzahl für byPosition aufbereiten
SZeile = 1 'Startzeile definieren
For i = SZeile to EZeile 'Schleife um leere Zeilen zu löschen
If ETab.getcellbyPosition(1,i).string = "" Then
ETab.removeRange( ETab.getcellbyPosition(1,i).getrangeaddress,_
com.sun.star.sheet.CellDeleteMode.ROWS)
If i = EZeile Then
Exit Sub
End If
i = i - 1
End if
Next
End Sub
Code: Alles auswählen
Sub LeereZeilen
dim PTab as object
dim ETab as object
dim i as Integer
PTab = thisComponent.Sheets().getByName( "Punkte Startsystem" ) 'Punkttabelle auslesen
ETab = thisComponent.Sheets().getByName( "Export" ) 'Exporttabelle auslesen
EZImp = PTab.getCellRangeByName("H8").value 'Punktanzahl (=Zeilen und damit lezte Zeile) abfragen
EZeile = EZImp - 1 'Punktanzahl für byPosition aufbereiten
LZeile = 0 'Anzahl gelöschte Zeilen zählen
SZeile = 1 'Startzeile definieren
For i = SZeile to EZeile 'Schleife um Leere Zeilen zu löschen
If ETab.getcellbyPosition(1,i).string = "" Then
ETab.removeRange( ETab.getcellbyPosition(1,i).getrangeaddress,_
com.sun.star.sheet.CellDeleteMode.ROWS)
LZeile = LZeile + 1
If LZeile = 40 Then
Exit Sub
End If
i = i - 1
End if
Next
End Sub