von Karolus » Do, 06.07.2006 12:27
Hallo Hermann
Nein übersetzen kann ich dir das nicht, aber statt nach Excel-VBA zu recherieren, hättest du genausogut diesen Thread suchen und finden können :
viewtopic.php?t=7819
dort reinschauen können:
http://www.dannenhoefer.de/faqstarbasic ... uegen.html
und mit etwas "trial and Error" folgenden funktionierenden Code zu erhalten :
Code: Alles auswählen
Sub Wochenspalteeinfuegen
oSheet = ThisComponent.CurrentController.getActiveSheet()
oCellCursor = oSheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
letzte_Spalte = oCellCursor.getRangeAddress.EndColumn
For i = 0 To letzte_Spalte
'Doppelabfrage um Wiederholung der Schleife zu verhindern :
If oSheet.GetCellByPosition(i, 0).String = "So" AND _
oSheet.GetCellByPosition(i+1, 0).String = "Mo" Then
oSheet.Columns.insertByIndex(i+1,1)
letzte_Spalte = letzte_Spalte + 1
End If
Next i
'Falls der Monat mit "Mo" beginnt :
If oSheet.GetCellByPosition(0, 0).String = "Mo" Then
oSheet.Columns.insertByIndex(0,1)
End if
End Sub
Das funktioniert sowohl mit einer Textfolge (Mo,Di,Mi....), als auch mit 'TTT'-formatierten Datumswerten in Zeile 1.
Gruß Karo
Hallo Hermann
Nein übersetzen kann ich dir das nicht, aber statt nach Excel-VBA zu recherieren, hättest du genausogut diesen Thread suchen und finden können :
[url]http://de.openoffice.info/viewtopic.php?t=7819[/url]
dort reinschauen können:
[url]http://www.dannenhoefer.de/faqstarbasic/zeileneinfuegen.html[/url]
und mit etwas "trial and Error" folgenden funktionierenden Code zu erhalten :
[code]Sub Wochenspalteeinfuegen
oSheet = ThisComponent.CurrentController.getActiveSheet()
oCellCursor = oSheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
letzte_Spalte = oCellCursor.getRangeAddress.EndColumn
For i = 0 To letzte_Spalte
'Doppelabfrage um Wiederholung der Schleife zu verhindern :
If oSheet.GetCellByPosition(i, 0).String = "So" AND _
oSheet.GetCellByPosition(i+1, 0).String = "Mo" Then
oSheet.Columns.insertByIndex(i+1,1)
letzte_Spalte = letzte_Spalte + 1
End If
Next i
'Falls der Monat mit "Mo" beginnt :
If oSheet.GetCellByPosition(0, 0).String = "Mo" Then
oSheet.Columns.insertByIndex(0,1)
End if
End Sub[/code]
Das funktioniert sowohl mit einer Textfolge (Mo,Di,Mi....), als auch mit 'TTT'-formatierten Datumswerten in Zeile 1.
Gruß Karo