[gelöst] Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

Re: Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

von MavMan » Mi, 23.10.2019 14:37

Ihr seid die besten! Vielen Dank - jetzt funktioniert es einwandfrei.

Dieser Beitrag kann als gelöst markiert werden (weiss nicht wie es geht).
Viele Grüsse
MavMan

Re: Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

von mikeleb » Di, 22.10.2019 18:46

Hallo,
(mit Punkt)
natürlich - :oops:

Re: Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

von Stephan » Di, 22.10.2019 16:32

die Zeile:

Code: Alles auswählen

If  aktuelles_Blatt.getCellByPosition(5, i).Value < "0,002083" Then
muss lauten:

Code: Alles auswählen

If  aktuelles_Blatt.getCellByPosition(5, i).Value < 0.002083 Then
(mit Punkt)


Gruß
Stephan

Re: Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

von mikeleb » Di, 22.10.2019 14:52

Hallo,

Code: Alles auswählen

"0,002083"
ist ein String.
Den Wert vergleichst du mit

Code: Alles auswählen

0,002083

Re: Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

von MavMan » Di, 22.10.2019 12:20

vielen Dank für die schnelle Antwort. Deine Erklärung habe ich verstanden und wollte es so jetzt lösen - aber es klappt nicht :-(

Liegt es am Format in der Zelle oder ist mein Vergleich auf den Value falsch?
So habe ich es probiert....(im Anhang ist auch ein MRI-Export der Zelle)

Code: Alles auswählen

Sub ONLINE
	'Mit der Hilfe aus de.openoffice.info Community 
	'20191021 - Initiale Erstellung
	blattanzahl = ThisComponent.Sheets.Count
	For j = 0 To blattanzahl-1
		aktuelles_Blatt = ThisComponent.Sheets.getByIndex(j)
		
			'Start Schleifencode ueber alle Arbeitsblaetter	
			Dim LocalSettings As New com.sun.star.lang.Locale
	
			cur = aktuelles_Blatt.createCursor()
			cur.GotoEndOfUsedArea(True)
			letzte_zeile = cur.RangeAddress.EndRow
	
			'unterhalb Tabellenkopf ab Zeile 5 und Spalte F - Zeile loeschen, wenn Wert <= 3 min
			For i = 4 To letzte_zeile
				If  aktuelles_Blatt.getCellByPosition(5, i).Value < "0,002083" Then
					aktuelles_Blatt.rows.removeByIndex(i, 1)
				End if
			Next i 
	
	Next j 'Ende Schleifencode ueber alle Arbeitsblaetter
	MsgBox "Programmcode durchgelaufen."
End Sub

Re: Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

von mikeleb » Mo, 21.10.2019 15:57

Hallo,
worin besteht jetzt die Frage?
1:06:38 bedeutet 1 h, 6 min , 38 s. Das sind also 1+6/60+38/3600=1,1105556 h oder in Tagen: 1,1105556/24=0,0462731.
Kurz: der Zellwert ist die Zeit in Tagen.
Bei 3 min muss also auf einen Wert von 3/60/24=0,002083 (Periode 3!) getestet werden.

[gelöst] Makro - Wenn in Zelle Zeit kleiner als dann Zeile löschen

von MavMan » Mo, 21.10.2019 14:43

Hallo zusammen,

habe noch ein Problemchen und mit Zeitformat kenn ich mich leider (noch nicht) aus.
Ich habe eine Tabelle und gehe da über die Zeilen in einer Spalte drüber.....

In der Spalte sind Zeiten enthalten. Nun möchte ich alle Zeilen löschen, wenn der Wert kleiner 3 Minuten ist.
In der Beispielzelle sehe ich zum Beispiel: 01:06:38

Im Anhang habe ich für Euch die Daten der Zelle aus MRI exportiert.
Meine Libre Version ist: 6.0.7.3

Vielen Dank für Eure Hilfe im voraus...

Grüsse
MavMan
Dateianhänge
MRI-Feldinformationen.pdf
(25.05 KiB) 151-mal heruntergeladen

Nach oben