Seite 1 von 3
[GELÖST] Eingabemaske für Calc-Tabelle
Verfasst: So 25. Aug 2024, 17:46
von minbari
Siehe unten, suche Hilfe bei einer Eingabemaske für Calc-Tabelle.
Re: Eingabe-Maske für eine Tabelle unter Libre-Office / Calc
Verfasst: So 25. Aug 2024, 19:04
von karolus
minbari hat geschrieben:Screens füge ich bei. Der erste übernommene Code funktioniert nicht wirklich.
»
funktioniert nicht wirklich« ist für andere keine brauchbare Beschreibung!
ebensowenig kann man »
Screens« von Dialogen debuggen
Poste bitte vernünftige Fehlerbeschreibungen und hänge eine komplette Datei an (ohne vertrauliche Daten ) inklusive Dialog die man dann testen kann!
Re: Eingabe-Maske für eine Tabelle unter Libre-Office / Calc
Verfasst: So 25. Aug 2024, 21:17
von minbari
Moin,
hier mal eine Musterdatei.
minbari
Re: Eingabe-Maske für eine Tabelle unter Libre-Office / Calc
Verfasst: Mo 26. Aug 2024, 00:08
von karolus
Hallo
"Listbox2" ⇒ "ListBox2"
oTab.getcellbyposition(2,n).string=octrkat.text
⇒ oTab.getcellbyposition(2,n).string=octrkat.SelectedItem
oTab.getcellbyposition(3,n).string=octrkat.text
⇒ oTab.getcellbyposition(3,n).string=octrkat.SelectedItem
Re: Eingabe-Maske für eine Tabelle unter Libre-Office / Calc
Verfasst: Mo 26. Aug 2024, 21:45
von minbari
Das hat was gebracht! Dankeschön!
Jetzt habe ich noch 2 Probleme / Fragen.
Ist es möglich, dass die eingefügten Eintragungen automatisch nach Datum sortiert werden?
Es handelt sich um eine Jahresliste, daher hatte ich es bei Excel so, dass ich nicht schon 3000-4000 Zellen gerahmt hatte,
sondern, ich hatte es so gelöst, dass die neuen Eintragungen (Zeilen) erst mit der Eintragung gerahmt wurden.
Gibt es hier bei Libre auch eine möglichkeit?
Vielen Dank für die Hilfe!!!!
minbari
Re: Eingabe-Maske für eine Tabelle unter Libre-Office / Calc
Verfasst: Fr 30. Aug 2024, 08:32
von minbari
Ich möchte die Eintragungen über die Dialogbox automatisch nach Datum sortieren lassen.
Ich habe es damit probiert:
Sub SortiereBereich
Dim SortProps(2) As new com.sun.star.beans.PropertyValue
Dim SortFeld(0) As new com.sun.star.table.TableSortField
oDatei = ThisComponent
oSheet = oDatei.Sheets(0)
oBereich = oSheet.getCellRangeByName("B7:F4000")
SortFeld(0).Field = 0
SortFeld(0).IsAscending = True
SortFeld(0).FieldType = com.sun.star.util.SortFieldType.AUTOMATIC
SortProps(0).Name = "SortFields"
SortProps(0).Value = SortFeld()
SortProps(1).Name = "SortColumns"
SortProps(1).Value = False
SortProps(2).Name = "ContainsHeader"
SortProps(2).Value = true
oBereich.Sort(SortProps())
End Sub
Funktioniert leider nicht, Wo ist der Fehler?
Re: Eingabe-Maske für eine Tabelle unter Libre-Office / Calc
Verfasst: So 1. Sep 2024, 13:59
von minbari
Hmm, das ist ja umwerfend...
Re: Eingabe-Maske für eine Tabelle unter Libre-Office / Calc
Verfasst: So 15. Sep 2024, 11:17
von minbari
Mir ist aufgefallen, dass Makros bei älteren Excel-Versionen (Excel 97-03) mit dem alten Dateiformat oft besser unter Libre funktionieren, als die neueren bzw. jetzigen Versionen.
So habe ich eine alte Version meiner Datei gefunden, wo auch die "automatisches-Sortieren-nach-Datum-Funktion" unter Libre funktioniert.
Aber wenn ich den entsprechenden Code kopiere und in meine neue Datei einfüge, kommt wieder eine Fehlermeldung.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaBereich As Range, RaZelle As Range
Set RaBereich = Range("B6:F4000")
For Each RaZelle In Range(Target.Address)
If Not Intersect(Target, RaBereich) Is Nothing Then
Range("B6:F4000").Sort Key1:=Range("B7"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Exit For
End If
Next RaZelle
Set RaBereich = Nothing
End Sub
Fehlermeldung: BASIC-Syntaxfehler.
Unbekannter Datentyp Range.
Nächste Frage: Offensichtlich komme ich hier nicht weiter. Die Communitiy ist ein wenig anders als in den bekannten Excel-Foren. Während man dort mit Lösungsvorschlägen quasi überhäuft wird, herrscht hier gähnende Leere.
Vermutlich liegt es auch an der geringen Verbreitung von Libre.
Kann mir jemand Bücher / Kurse empfehlen, oder muss ich hierfür tatsächlich Informatik studieren?
MfG
minbari
Re: Bitte löschen!
Verfasst: So 15. Sep 2024, 19:29
von RPP63
Moin!
Das macht ja keinen Sinn.
Mir ist aufgefallen, dass Makros bei älteren Excel-Versionen (Excel 97-03) mit dem alten Dateiformat oft besser unter Libre funktionieren, als die neueren bzw. jetzigen Versionen.
Es sind halt unterschiedliche Sprachen.
Um es mit Zeugnissprache auszudrücken:
Libre Office bemüht sich stets, VBA-Code rudimentär zu übersetzen.
Spätestens bei Ereignismakros (siehe Deinen letzten Post) trifft der Chinese auf den Texaner.
Wenn Du Open Source korrekt anwenden willst, bleibt Dir nichts anderes übrig, als die neue Sprache zu lernen.
(schreibt jemand, der erweiterte VBA-Kenntnisse besitzt, sich aber immer noch nicht dazu durchdringen konnte, den hiesigen Dialekt zu erlernen)
Gruß Ralf
Re: Bitte löschen!
Verfasst: So 15. Sep 2024, 19:57
von mikele
Hallo,
also bei mir funktioniert deine Sub SortiereBereich (läuft fehlerfrei durch und sortiert den Bereich korrekt).
Was funktioniert bei dir nicht?
ich hatte es so gelöst, dass die neuen Eintragungen (Zeilen) erst mit der Eintragung gerahmt wurden.
Gibt es hier bei Libre auch eine möglichkeit?
Sicher, entweder man formatiert die Zellen mit der Eintragung zusammen hart (Umrandung, ...) oder man weist ihnen eine angelegte Zellvorlage zu (würde ich bevorzugen). Man könnte auch die Formatierung der darüber liegenden Zeile kopieren ...
Kann mir jemand Bücher / Kurse empfehlen
Das
https://de.openoffice.info/viewtopic.php?t=1553
kennst du alles schon?