Spalte neben Datum einfügen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

janher62
Beiträge: 9
Registriert: Mi, 21.06.2006 20:13

Spalte neben Datum einfügen

Beitrag von janher62 »

Hallo
Ich benutze oo 1.1 und habe bei Calc ein kl. Problem:

In der Zeile A1 bis AE 1 eines Tabellenblattes stehen als Wochentage aufgelistet (mo., di. mi., etc..) die einzelnen Tage eines Monats( 1. bis 31.)

Wie gelingt es mir, per makro links neben jedem Montag eine Leerspalte einzufügen?

Danke im voraus für Hilfe.


Hermann
janher62
Beiträge: 9
Registriert: Mi, 21.06.2006 20:13

Noch ein nachtrag zu spalteneinfügen

Beitrag von janher62 »

Also in Excel VBA sieht das makro für spalteneinfügen neben einem montag als datum folgendermaßen aus:


Code: Alles auswählen

Sub Einfuegen()															
    Dim I As Integer															
    For I = 31 To 1 Step -1															
        If Weekday(Cells(1, InI), 2) = 1 And Cells(1, InI) <> "" Then															
            Columns(InI).Insert Shift:=xlToRight															
        End If															
    Next InI															
    Columns(1).Insert Shift:=xlToRight															
End Sub			
Könnte mir das jemand übersetzen?


Hermann
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

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
janher62
Beiträge: 9
Registriert: Mi, 21.06.2006 20:13

Re: Spalteneinfügen

Beitrag von janher62 »

Wow

Dieses makro funktioniert perfekt.

Genau das ist es was ich lange gesucht habe. Hatte zwar schon die Seite über eine spalte in oo einfügen gelesen, kam aber mit der abfrage über die wochentage nicht so richtig zurecht.

vielen dank.

Gruß Hermann
Antworten