[gelöst] VBA in Starbasic umwandeln

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

Moderator: Moderatoren

mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

[gelöst] VBA in Starbasic umwandeln

Beitrag von mumpel »

Hallo!

Ich möchte Zeiten berechnen, welche innerhalb einer Periode liegen.

Beispiel:

Beginn Arbeitszeit 13:00
Ende Arbeitszeit: 00:39
Beginn Pause: 21:50
Ende Pause: 22:10

Es sollen aber nur die Zeiten berechnet werden, welche zwischen 22:00 und 6:00 liegen. Das Ergebnis des Beispiels muss also lauten: 02:29 (2:39 Stunden minus 10 Minuten Pause). Mit Formel kann ich das nicht machen, da die Formel 1449 Zeichen lang wäre. Bei 3660 solcher Formeln könnte die Arbeitsmappe sehr schnell instabil werden.
In Excel benutze ich daher folgende benutzerdefinierte Funktion (UDF).

Code: Alles auswählen

Rem Privates Modul. Makros in diesem Modul dürfen nicht über
Rem den Makrodialog ausführbar und die UDF nicht im
Rem Funktionsassistenten sichtbar sein.
Option Private Module
Rem Variablendeklaration erzwingen
Option Explicit
Rem Öffentlichen Typ erstellen
 Type PeriodStartStop
      Start As Double
      Stop_ As Double
 End Type
  
Rem *************************************************************************
Rem Beginn UDF "ZeitR"

Rem Erklärung Klammereinträge:

Rem Art: Schichtart, als Text ausgeben
Rem (as String). Angabe erforderlich

Rem BeginnArbeit: Beginn der Schicht, als Datum
Rem ausgeben (as Date). Angabe erforderlich

Rem EndeArbeit: Ende der Schicht, als Datum ausgeben
Rem (as Date). Angabe erforderlich

Rem ShiftStart: Beginn der zu berechnenden Periode,
Rem als Datum ausgeben (as Date). Angabe erforderlich

Rem ShiftEnd: Ende zu berechnenden Periode, als Datum
Rem ausgeben (as Date). Angabe erforderlich

Rem BeginnPauseEins: Beginn der 1. Pause, als Datum
Rem ausgeben (as Date). Angabe optional

Rem EndePauseEins: Ende der 1. Pause, als Datum ausgeben
Rem (as Date). Angabe optional

Rem BeginnPauseZwei, EndePauseZwei, BeginnPauseDrei
Rem und EndePauseDrei: wie PauseEins

Rem Beispiel Berechnung Nachtarbeit:
Rem Art = S (in A1)
Rem Beginn der Schicht 13:00 (in B1), Ende 00:39 (in C1).
Rem Beginn der zu berechnenden Zeit: 22:00 (in J1), Ende 06:00 (in K1)

Rem Beginn Pause: 21:50 (in D1), Ende 22:10 (in E1)
Rem Es soll nur Pausenzeit innerhalb der Periode berücksichtigt
Rem werden, also hier von 22:00 bis 22:10,

Rem die Pausezeit vor 22:00 soll hier nicht berücksichtigt werden.
Rem Das Ergebnis muss lauten: 02:29 (2 Stunden 29 Minuten Nachtarbeitszeit)

Rem Die notwendige Formel bei 1 Pause:
Rem =ZeitR(A1;B1;C1;J1;K1;D1;E1)
Rem oder Alternative Formel: =ZeitR(A1;B1;C1;"22:00";"06:00";D1;E1)

Rem Bei 3 Pausen lautet die Formel zum Beispiel:
Rem =ZeitR(A1;B1;C1;J1;K1;D1;E1;F1;G1;H1;I1)
Rem oder die alternative Formel:
Rem =ZeitR(A1;B1;C1;"22:00";"06:00";D1;E1;F1;G1;H1;I1)

Function ZeitR(Art As String, BeginnArbeit As Date, _
EndeArbeit As Date, ShiftStart As Date, ShiftEnd As Date, _
Optional BeginnPauseEins As Date, Optional EndePauseEins As Date, _
Optional BeginnPauseZwei As Date, Optional EndePauseZwei As Date, _
Optional BeginnPauseDrei As Date, Optional EndePauseDrei As Date) As Double

Rem Ende Einleitung
Rem **************************************************************************

Rem **************************************************************************
Rem Beginn Deklaration
On Error Resume Next
Dim i As Long
Dim j As Long
Dim Arbeit As Double
Dim PauseEins As Double
Dim PauseZwei As Double
Dim PauseDrei As Double
Dim Shift() As PeriodStartStop
Dim WorkedArbeit() As PeriodStartStop
Dim WorkedPauseEins() As PeriodStartStop
Dim WorkedPauseZwei() As PeriodStartStop
Dim WorkedPauseDrei() As PeriodStartStop
Rem Ende Deklaration
Rem ***************************************************************************

Rem ***************************************************************************
Rem Beginn Berechnung
Rem Kommen und Gehen
GetPeriods CDbl(BeginnArbeit), CDbl(EndeArbeit), WorkedArbeit()
GetPeriods CDbl(ShiftStart), CDbl(ShiftEnd), Shift()
    Arbeit = 0
    For i = 0 To UBound(WorkedArbeit())
      For j = 0 To UBound(Shift())
        Arbeit = Arbeit + GetOverlap(WorkedArbeit(i), Shift(j))
      Next j
    Next i

Rem Gehen und Kommen Pause 1
GetPeriods CDbl(BeginnPauseEins), CDbl(EndePauseEins), WorkedPauseEins()
GetPeriods CDbl(ShiftStart), CDbl(ShiftEnd), Shift()
    PauseEins = 0
    For i = 0 To UBound(WorkedPauseEins())
      For j = 0 To UBound(Shift())
       PauseEins = PauseEins + GetOverlap(WorkedPauseEins(i), Shift(j))
      Next j
    Next i

Rem Gehen und Kommen Pause 2
GetPeriods CDbl(BeginnPauseZwei), CDbl(EndePauseZwei), WorkedPauseZwei()
GetPeriods CDbl(ShiftStart), CDbl(ShiftEnd), Shift()
    PauseZwei = 0
    For i = 0 To UBound(WorkedPauseZwei())
      For j = 0 To UBound(Shift())
        PauseZwei = PauseZwei + GetOverlap(WorkedPauseZwei(i), Shift(j))
      Next j
    Next i

Rem Gehen und Kommen Pause 3
GetPeriods CDbl(BeginnPauseDrei), CDbl(EndePauseDrei), WorkedPauseDrei()
GetPeriods CDbl(ShiftStart), CDbl(ShiftEnd), Shift()
   PauseDrei = 0
    For i = 0 To UBound(WorkedPauseDrei())
      For j = 0 To UBound(Shift())
        PauseDrei = PauseDrei + GetOverlap(WorkedPauseDrei(i), Shift(j))
      Next j
    Next i
Rem Ende Berechnung

Rem Endberechnung
Rem Art (Spalte Art) = M, U oder K dann 0
If Art = "M" Or Art = "U" Or Art = "K" Then
ZeitR = 0
Else

Rem Zuerst wird die errechnete Arbeitszeit in das Dezimalformat
Rem konvertiert und gerundet. Danach werden die Pausenzeiten
Rem in das Dezimalformat konvertiert, gerunden und miteinander
Rem addiert. Das Ergebnis wird dann von der errechneten Arbeitszeit abgezogen.
Rem Zum Schluß wird das Gesamtergebnis wieder in das Zeitformat konvertiert.

ZeitR = (Round(Arbeit * 24, 5) - (Round(PauseEins * 24, 5) + _
Round(PauseZwei * 24, 5) + Round(PauseDrei * 24, 5))) / 24
End If
Rem Ende Endberechnung
End Function
Rem Ende UDF "ZeitR"
Rem ***************************************************************************

Rem Beginn Routine "GetPeriods"
Private Sub GetPeriods(ByVal t1 As Double, ByVal t2 As Double, _
Period() As PeriodStartStop)
    t1 = t1 - Int(t1)
    t2 = t2 - Int(t2)
    If t1 <= t2 Then
      ReDim Period(0 To 0)
      Period(0).Start = t1
      Period(0).Stop_ = t2
    Else
      ReDim Period(0 To 1)
      Period(0).Start = t1
      Period(0).Stop_ = 1
      Period(1).Start = 0
      Period(1).Stop_ = t2
    End If
  End Sub
Rem Ende Routine "GetPeriods"
  
Rem Beginn UDF "GetOverlap"
Private Function GetOverlap(Period1 As PeriodStartStop, _
Period2 As PeriodStartStop) As Double
    Dim t1 As Double
    Dim t2 As Double
    If Period1.Start >= Period2.Start Then
      t1 = Period1.Start
    Else
      t1 = Period2.Start
    End If
    If Period1.Stop_ <= Period2.Stop_ Then
      t2 = Period1.Stop_
    Else
      t2 = Period2.Stop_
    End If
    t2 = t2 - t1
    If t2 < 0 Then t2 = 0
    GetOverlap = t2
  End Function
Rem Ende UDf "GetOverlap"
Leider verstehe ich von Starbasic überhaupt nichts. Kann hier jemand helfen?
Kennt jemand eine vernünftige deutschsprachige Starbasic-Dokumentation? Englisch kann ich nicht, sonst wäre es einfach. Danke!

Gruß, René
Zuletzt geändert von mumpel am Do, 31.07.2008 20:20, insgesamt 1-mal geändert.

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VBA in Starbasic umwandeln

Beitrag von Stephan »

auch wenns Dich nicht freuen wird - das Problem steckt in Deinem benutzerdefinierten Typ:

Code: Alles auswählen

Type PeriodStartStop
      Start As Double
      Stop_ As Double
End Type
OOo kommt damit offensichtlich nicht so richtig klar, ist zumindest ein Problem möglicherweise ein ein echter Fehler in OOo, ich bin noch nicht völlig sicher.
Hier ists leider so warm (26 Grad Innentemperatur) das ich heute auch nichts Vernünftiges mehr herausfinde :-(
Vielleicht hat jemand anderes hier eine Idee.

In jedem Fall läuft das Ganze wenn Du das auf normale Variablen bzw. Arrays umschreibst, dazu sind dann eigentlich auch keine besonderen StarBasic-Kenntnisse nötig.
Ich bin nicht sicher ob das was ich schnell zusasammengefrickelt habe schon fehlerfrei läuft, aber Datei hängt an.
Kennt jemand eine vernünftige deutschsprachige Starbasic-Dokumentation?
Würde Dir wohl hier für das konkrete Problem wohl nicht helfen, ansonsten bleibts bei meinem Empfehlungen die ich Dir schon an anderer Stelle gab. Der Autor des einen Buches ist hier im Forum übrigens auch Moderator --> nickname: "Toxitom"

Gruß
Stephan
Dateianhänge
zeitfunktion.ods
(11.08 KiB) 294-mal heruntergeladen
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

Danke, es funktioniert problemlos. Die Originalfunktion stammt von Hans W. Herber. Diese berücksichtigt allerdings keine Pausen, sodass ich die 3 Pausenfenster als optionale Angaben eingebaut habe.
Ein kleines Manko hat Starbasic->Es werden keine Umlaute unterstütz. Aber damit kann ich leben. Jetzt muss ich nur noch lernen, wie man eine temporäre Symbolleiste erstellt, welche beim Öffnen der Arbeitsmappe erstellt und beim Schließen der Arbeitsmappe wieder gelöscht wird. Dann kann ich endlich meine Excel-Arbeitsmappe auf Starbasic umbauen. Für alle Kollegen, die kein Excel haben.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VBA in Starbasic umwandeln

Beitrag von Stephan »

Ein kleines Manko hat Starbasic->Es werden keine Umlaute unterstütz.
verstehe ich nicht was konkret gemeint ist
Jetzt muss ich nur noch lernen, wie man eine temporäre Symbolleiste erstellt, welche beim Öffnen der Arbeitsmappe erstellt und beim Schließen der Arbeitsmappe wieder gelöscht wird.
Nein, das übliche Vorgehen ist ein anderes, Symbolleisten werden in solchen Fällen nicht erzeugt und wieder gelöscht, sondern komplett fertig in den Dokumenten gespeichert und weitergegeben. Sie sind dann nur nur beim Öffnen des Dokuments verfügbar und tauchen nur in diesem auf, also auch wenn mehrere Dokumente gleichzeitig offen sind ist die Symbolleiste nur sichbar wenn das betreffende Dokument geradfe den Fokus hat.
Wenn ich hier von "üblich" spreche meine ich genau das, es ist wohl auch möglich Symbolleisten so wie Du es von MSO kennst beim Öffnen per Code zu erzeugen und beim Schliessen per Code zu löschen, nur es ist so unüblich (denn es macht ja unnötig Arbeit) das ich nicht einmal sofort einen Beispielcode parat habe.

In anliegendes Dokument habe ich eine Symbolleiste mit 2 Schaltflächen die im Dokument gespeicherte Makros starten integriert. Öffne das dokument und Du siehst die Leiste.

natürlich könnte die Leiste auch Icons haben, auch selbstdefiniertem, ich habe darauf verzichtet.

Problem:
derzeitig besteht noch das Problem das die Position der Symbolleiste nicht im Dokument gespeichert wird, d.h. sie wird beim erstmaligen Öffnen des Dokumentes auf einem fremden System in Defaultposition auftauchen, das ist integriert/angedockt an eine der Standardsymbolleisten. Das ist teilweise blöd weil so kleine Leisten kaum auffällig sind, das Problem ist aber schon gemeldet.
Sobald Du aber die im Dokument gespeicherte Symbolleiste an einen anderen Platz ziehst, wird dieser gespeichert und wenn Du das Dokument erneut öffnest ist die Leiste wieder dort sichtbar, geht aber nur auf demselben REchner, weil die Speicherung dieser Info derzeitig eben nicht in der Datei erfolgt.
Andererseits hjat wohl nur noch niemand darüber nachgedacht, ich kenne jedenfalls noch kein Makkrobeispiel dafür, denn es sollte wohl möglich sein die Leiste auch beim ersten Öffnen per Autostartmakro 'zurechtzurücken'.



Gruß
Stephan
Dateianhänge
zeitfunktion.ods
mit integrierter Symbolleiste
(12.14 KiB) 274-mal heruntergeladen
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

Das mit dem Manko ist leicht erklärt. In Excel habe ich eine Funktion mit dem Namen PFünf. In Starbasic wird das Ü angemeckert. Nach dem Umbennen in PFuenf funktionieren auch die UDF aus Excel problemlos.

Wenn ich das richtig verstehe, dann verhalten sich die benutzerdefinierten Symbolleisten ähnlich wie die benutzerdefinierten Ribbon in Office 2007? Hört sich gut an.

Allerdings befürchte ich, dass ich es nicht so hinbekomme wie in Excel. Die Excel-Arbeitsmappen sind sehr komplex programmiert. Vor allem die Dialoge (Userformen) werden ein Problem. Das Excel-Projekt (kostenlos), von welchem ich hier spreche, ist sogar offiziell bei Heise.de gelistet. Wäre natürlich schön, wenn ich das selbe auch für OOo/Staroffice anbieten könnte.
Für alle, die Excel haben und es mal testen möchten: Arbeitszeiten berechnen mit Excel. Damit bekommt man eine Vorstellung, was alles passieren soll. Denn Quellcode hänge ich mal an. Damit man sieht, was auf mich zukommt. Sicherheitsrelevante Daten wurden unkenntlich gemacht.

..
Dateianhänge
Quellcode.zip
(35.28 KiB) 272-mal heruntergeladen

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

Noch eine Frage zum Starbasic-Programmierhandbuch Staroffice 8.0. Gibt es dieses Buch irgendwo als Printmedium käuflich zu erwerben? Zumindest bei Amazon finde ich es nicht.

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VBA in Starbasic umwandeln

Beitrag von Stephan »

Das mit dem Manko ist leicht erklärt. In Excel habe ich eine Funktion mit dem Namen PFünf. In Starbasic wird das Ü angemeckert.
Sofern Du es nur für Basic brauchst gehört es in eckige Klammern, also so:

Code: Alles auswählen

Function [PFünf] (x As String)
Msgbox x
End Function
und Aufrufen dann so:

Code: Alles auswählen

Sub Main()
[PFünf] ("BlaBla")
End Sub
Wenn Du hingegen die Funktion in einmer Tabellenzelle aufrufen willst, müßte ich erstmal nachdenken ob es da eine direkte Möglichkeit gäbe.
Wenn ich das richtig verstehe, dann verhalten sich die benutzerdefinierten Symbolleisten ähnlich wie die benutzerdefinierten Ribbon in Office 2007?
Kann ich nicht konkret beantworten da ich zu wenig über Ribbons weiß. Die Symbolleiste im Dokument ist beim ODF technisch letzlich eine XML-Datei.
Allerdings befürchte ich, dass ich es nicht so hinbekomme wie in Excel.
im Detail kann ich das aus dem Handgelenk natürlich nicht sagen, aber ich bin sehr zuversichtlich das das möglich ist.
Vor allem die Dialoge (Userformen) werden ein Problem.
Nee, im Konkreten eher nicht. In OOo 2.4 werden die Userformen aus Deinem Dokument so gut importiert das ich sie aus DEiner Excel-Datei direkt in ein leere Bibliothek ziehen kann, ich muß die also nichtmal neu entwerfen.
(Natürlich muß noch der Code angepasst werden.)
Denn Quellcode hänge ich mal an.
auch das deutete ich Dir im anderen Forum bereits an - der ganze Code Deiner Exceldatei, inklusive Dialoge, geschützter Blätter etc. ist in OOo einsehbar ohne ein Passwort zu kennen.
Sicherheitsrelevante Daten wurden unkenntlich gemacht
nachdem ich kurz den Orginalcode überflogen habe, sehe ich zunächst keine. In jedem Fall gilt das jeder der OOo hat den VBA-Code aus Deiner Exceldatei vollständig einsehen kann, stehen da also Geheimnisse im Code sind diese sichtbar.
Gibt es dieses Buch irgendwo als Printmedium käuflich zu erwerben?
Weiß ich nicht. Früher war wohl für einige der SUN-Materialien von den SUN-Seiten aus direkt ein Anbieter zu erreichen, ich weiß aber nicht ob das noch der Fall ist oder für dieses spezielle material jemals zutraf.


Gruß
Stephan
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

Wenn Du hingegen die Funktion in einer Tabellenzelle aufrufen willst, müßte ich erstmal nachdenken ob es da eine direkte Möglichkeit gäbe.[/qu[te]

Eigentlich muss ich darüber nicht nachdenken, da es ja so funktioniert. Dieses Problem wäre also gelöst.

[qu[te]
Kann ich nicht konkret beantworten da ich zu wenig über Ribbons weiß. Die Symbolleiste im Dokument ist beim ODF technisch letzlich eine XML-Datei.[/[uote]

Ist in Office 2007 genauso. Die benutzerdefinierten Ribbon sind Dokumentgebunden. Nur mit dem Unterschied, dass diese extern über XML programmiert werden.

[[uote]
..auch das deutete ich Dir im anderen Forum bereits an - der ganze Code Deiner Exceldatei, inklusive Dialoge, geschützter Blätter etc. ist in OOo einsehbar ohne ein Passwort zu kennen. [/[uote]
Das ist mir bekannt. "Geheim" sollen eigentlich nur die Kennwörter, Computernamen ( Environ("COMPUTERNAME") ) und Registryschlüssel sein, also alles, was in den Quellcodedateien mit "xxxxxx" geschrieben ist. Damit niemand die Einstellungen ändert (was er nicht soll) und sich hinterher beschwehrt, wenn die Arbeitsmappe nicht mehr funktioniert.

Der Code aus XL2007-Arbeitsmappen kann nicht mehr ausgelesen werden. Hierzu muss man nur die Arbeitsmappe mit einem Kennwort schützen. Und schon verweigern OOo/Staroffice und Winzip dass öffnen der Datei. Somit ist der Code ziemlich sicher. Es sei denn, man speichert die *.xlsm als *.xls. Ohne Arbeitsmappenschutz lässt sich die *.xlsm öffnen. Getestet mit OOo 3.0 Beta

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

So, habe jetzt meinen alten Nickname wieder. Weshalb hat in meinem letzten Beitrag das Zitieren nicht korrekt funktioniert? Eigentlich wollte ich mehrere Zitate anbringen. Irgendwie scheint der Forenparser hier etwas durcheinanderzubringen.

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

So, konnte jetzt zumindest die UDF zum Laufen bringen. Allerdings gibt es noch kleinere Probleme.

1. Problem: Die Funktionen laufen nur, wenn ich sie in ein öffentliches Modul stelle. Stelle ich die Funktionen in eine passwortgeschützte Library, laufen die Funktionen nicht. Woran liegt das? Die Funktionen sollen vor Veränderungen geschützt werden. Wie mache ich das?

2. Problem: Das Öffnen der Arbeitsmappe dauert bis zu 4 Minuten. Kann ich den Start irgendwie beschleunigen?

3. Problem. Beim Kopieren von verbundenen Zellen erhalte ich die Fehlermeldung Zusammenfassen nicht verschachteln. Was hat das zu bedeuten? Wie kann ich doch noch kopieren? 364 Formeln manuell zu schreiben ist sehr mühsam.

Noch eine kleine Frage. Wie kann ich in OOo mit der Maus horizontal scrollen? Meine Maus hat zwar ein horizontales Scrollrad, aber das funktioniert in OOo nicht (in Excel schon)

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von komma4 »

Tipp: stelle Deine Fragen in einzelnen threads, jeweils mit einem aussagekräftigem Betreff und in richtiguen Bereich.

mumpel hat geschrieben: 1. Problem: Die Funktionen laufen nur, wenn ich sie in ein
geht bestimmt

mumpel hat geschrieben:2. Problem: Das Öffnen der Arbeitsmappe dauert bis zu 4 Minuten.
Kann ich den Start irgendwie beschleunigen?[
ja.


mumpel hat geschrieben:3. Problem. Beim Kopieren von verbundenen Zellen erhalte ich die
keine Ahnung.


mumpel hat geschrieben:(in Excel schon)
bei mit auch (2.4.1 Linux).

Noch'n Tipp: immer OOo Version und Betriebssystem angeben.


Viel Erfolg! (zu 1.Problem hätte ich schon 'ne Idee)



P.S. ja, das Forum hat Probleme mit dem Zitieren.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

1. Ich habe weiter oben schon geschrieben, dass ich OOo 3.0 Beta habe. Das ich mit WinXP arbeite, dürfte logisch sein. Wer mich kennt, dürfte wissen, dass ich eigentlich bekennenter OpenSource-Gegner bin.

2. Und wie kann man den Start beschleunigen? Ein simples Ja oder "geht bestimmt" ist nicht aussagekräftig.

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

Da meine Suche im Forum nicht erfolgreich war, frage ich mal direkt.

1. Wie hebt man einen Tabellenschutz temporär auf und setzt ihn zum Schluß wieder? Soll mit UnprotectSheets gehen. Habe hier im Forum etwas von Tools-Bibliothek gelesen, nur finde ich das bei mir nicht.

Code: Alles auswählen

Sub JanuarEin
Rem Schutz aufheben?
ThisComponent.Sheets(0).GetCellRangeByName("A12:A73").getRows.IsVisible = True
ThisComponent.Sheets(0).GetCellRangeByName("A74:A743").getRows.IsVisible = False
Rem Schutz wieder setzen?
End Sub
2. Wie aktiviert man eine Tabelle per Code?

Danke!

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von komma4 »

ich lerme Dich langsam kennen...

Du verlängerst hier mit neuen Fragen :-/
Das hat mit "VBA in Starbasic umwandeln" nichts mehr zu tun.

Deshalb von mir hier keine längeren Antworten.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
mumpel
****
Beiträge: 133
Registriert: So, 22.08.2004 05:27
Wohnort: Lindau (B)
Kontaktdaten:

Re: VBA in Starbasic umwandeln

Beitrag von mumpel »

Ist recht. Neues Thema in Arbeit.

Windows 7 Home Premium (auf Acer Desktop PC)
Windows 8 Professional (auf Microsoft Surface Pro 3).
MSO 365 Home Premium
LibreOffice 4.2.
F-Secure Internet Security
Antworten