Hallo Leute ich habe 2 Makros die in Libre Calc nicht richtig funktionieren.
Kann jemand von euch sie zum richtigen laufen bringen?
Mein Dank würde euch Tag und Nacht verfolgen
Sub Makro1()
'
' Makro1 Makro
'
'
Range("B8:B37").Select
ActiveWorkbook.Worksheets("Station 3A").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Station 3A").Sort.SortFields.Add Key:=Range( _
"B8:B37"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Station 3A").Sort
.SetRange Range("B8:AB37")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
End Sub
Dieses Makro sollte einen definierten Zellbereich über einen Button alphabetisch sortieren.
Option Explicit ' Variablendefinition erforderlich
Public DaEt As Date ' nächste Starzeit des Makros
Public Const DaZeit As Date = "00:03:00" ' Zeitabstand prüfen
Sub Zeitmakro()
' Zeit in Zelle um 1 Sekunde runtersetzen
ThisWorkbook.Worksheets("Timer").Range("A1") = _
ThisWorkbook.Worksheets("Timer").Range("A1") - CDate("00:00:01")
' Falls Restzeit > 0 dann Makro wiederholen,
' ansonsten Datei schließen mit speichern
If ThisWorkbook.Worksheets("Timer").Range("A1") <> 0 Then
DaEt = Now + TimeValue("00:00:01")
Application.OnTime DaEt, "Zeitmakro"
Else
' Datei schließen mit speichern, Fals nicht speichern
ThisWorkbook.Close True 'speichern
End If
End Sub
Dieses Makro soll einen Timer runterzählen und nach Ablauf der Zeit die Arbeitsmappe schließen und speichern.
Wer kann helfen?
Vielen Dank im Voraus
Lothar
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Makros von MS Excel zu Libre Calc konvertieren
-
- Beiträge: 1
- Registriert: Mi 13. Mär 2019, 06:59
Re: Makros von MS Excel zu Libre Calc konvertieren
Hallo Lothar,
konvertieren tu ich nicht.
Da ich nicht weiss welche LO Version Du hast, und ich nicht die 6.x.x.xer installieren kann, habe ich jetzt einfach mal ein Sortiermakro aus OO.o 3.2.1 genommen. Das müsste eigentlich auch in LO 6.x.x.x funzen.
Das ist alles was man für das "Alfabetische Sortieren eines Zellbereichs" braucht. Siehe auch die angehängte Beispieldatei.
Was das hier
in Excel bewirkt weiss ich nicht.
Da nicht nur ich, sondern auch andere Helfer hier kein Excel haben und deshalb auch kein VBA können, war es ja schon mal von dir nicht verkehrt wenigstens eine grobe Beschreibung der Makro Funktionen abzugeben.
Jedoch sehe ich zumindest bei deinem "Zeitmakro" ein Problem.
Ist denn während des laufs dieses Makro überhaupt noch ein vernünftiges arbeiten mit Calc gegeben? Mit solchen Zeitmakros habe ich nämlich überhaupt keine Erfahrung. Vielleicht kann da jemand anderer diesbezüglich helfen.
Gruß
balu
konvertieren tu ich nicht.
Da ich nicht weiss welche LO Version Du hast, und ich nicht die 6.x.x.xer installieren kann, habe ich jetzt einfach mal ein Sortiermakro aus OO.o 3.2.1 genommen. Das müsste eigentlich auch in LO 6.x.x.x funzen.
So ein Makro hatte ich in meiner Grabbelkiste.Dieses Makro sollte einen definierten Zellbereich über einen Button alphabetisch sortieren.
Code: Alles auswählen
Sub NamenSortieren
Dim oDok as Object
Dim oSheetStation3A as Object
'
Dim SortProps(2) As new com.sun.star.beans.PropertyValue
Dim SortFeld(0) As new com.sun.star.table.TableSortField
Dim A As Variant
'
oDok = thisComponent
oSheetStation3A = oDok.sheets.getByName("Station_3A")
'
oBereich = oSheetStation3A.getCellRangeByName("B8:B37")
SortFeld(0).Field = 0
SortFeld(0).IsAscending = True
SortFeld(0).FieldType = com.sun.star.util.SortFieldType.ALPHANUMERIC
SortProps(0).Name = "SortFields"
SortProps(0).Value = SortFeld()
SortProps(1).Name = "SortColumns"
SortProps(1).Value = True
SortProps(2).Name = "ContainsHeader"
SortProps(2).Value = FALSE
oBereich.Sort(SortProps())
End Sub
Was das hier
Code: Alles auswählen
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Da nicht nur ich, sondern auch andere Helfer hier kein Excel haben und deshalb auch kein VBA können, war es ja schon mal von dir nicht verkehrt wenigstens eine grobe Beschreibung der Makro Funktionen abzugeben.
Jedoch sehe ich zumindest bei deinem "Zeitmakro" ein Problem.
Ist denn während des laufs dieses Makro überhaupt noch ein vernünftiges arbeiten mit Calc gegeben? Mit solchen Zeitmakros habe ich nämlich überhaupt keine Erfahrung. Vielleicht kann da jemand anderer diesbezüglich helfen.
Gruß
balu
- Dateianhänge
-
- Sortiermakro.ods
- (16.17 KiB) 163-mal heruntergeladen
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️