[gelöst] Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten 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] Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

von little fingers » Di, 23.11.2021 19:56

Super..........!!!!!
Vielen, lieben Dank Stephan!!!
Genauso habe ich es mir vorgestellt!!!
Danke nochmals!!!!

Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

von Stephan » Di, 23.11.2021 19:20

z.B.:

Code: Alles auswählen

Sub Main
	ozeile=ThisComponent.CurrentController.ActiveSheet.Columns(5) 'F
	oleer=ozeile.queryemptycells
	oletzter=oleer(oleer.count-1)
	erg = oletzter.rangeaddress.startrow-1
	
	With ThisComponent.CurrentController.ActiveSheet
		For i = 0 To erg
			k = .getCellByPosition(5, i).String
			For j = i+1 To erg
				If .getCellByPosition(5, j).String = k Then
					For jj = 0 To 6
						.getCellByPosition(jj, j).String = ""
					Next jj
				End If
			Next j
		Next i
	End With
End Sub

Gruß
Stephan
Dateianhänge
doppel_loeschen.ods
(9.8 KiB) 93-mal heruntergeladen

Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

von little fingers » Di, 23.11.2021 15:34

Hallo Stephan!
Ich glaube, dass ich mich hier wohl verkehrt ausgedrückt habe !!!
Sorry!
Ich meinte folgendes:
Alle doppelten Eintrage in der Spalte F sollen, gelöscht werden, damit nur noch der VORHER doppelte Wert, nur noch einmal in der Spalte vorkommt!!

Es gibt mehrere verschiedene Werte in der Spalte, die doppelt vorkommen können.

Ich möchte gerne, dass aus:

11111
22222
22222
33333
44444
11111


11111
22222

33333
44444

wird.

Gruss Ingo

Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

von Stephan » Di, 23.11.2021 12:59

Leider löscht bei mir das Makro alles und ich weiss nicht, welche Stellschrauben dafür gesetzt werden müssen!
das Makro geht davon aus dass in Zelle F1 (genau in Dieser) der Vergleichswert steht. in allen F-Zellen ab F2 wird dann dieer WErt gesucht und in den Zellen wo er gefunden wird, wird die komplette, zugehörige, Zeile gelöscht.



GRuß
Stephan

Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

von little fingers » Di, 23.11.2021 12:06

Vielen Dank Stephan!
Leider löscht bei mir das Makro alles und ich weiss nicht, welche Stellschrauben dafür gesetzt werden müssen!
Es würde mir schon reichen, dass nicht die ganze Zeile, der doppelten Einträge gelöscht wird, sondern auch nur
die doppelten Einträg selbst, bis auf einen!

Wenn Ihr dafür eine Lösung finden könntet, wäre das echt super!

Vielen lieben Dank

Ingo

Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

von Stephan » So, 21.11.2021 12:19

Das kannst Du per Makro-REkorder aufzeichen und mit ein paar händischen Korrekturen anpassen, dann bekommst Du:

Code: Alles auswählen

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = true

dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(17) as new com.sun.star.beans.PropertyValue
args3(0).Name = "SearchItem.StyleFamily"
args3(0).Value = 2
args3(1).Name = "SearchItem.CellType"
args3(1).Value = 1
args3(2).Name = "SearchItem.RowDirection"
args3(2).Value = true
args3(3).Name = "SearchItem.AllTables"
args3(3).Value = false
args3(4).Name = "SearchItem.Backward"
args3(4).Value = false
args3(5).Name = "SearchItem.Pattern"
args3(5).Value = false
args3(6).Name = "SearchItem.Content"
args3(6).Value = false
args3(7).Name = "SearchItem.AsianOptions"
args3(7).Value = false
args3(8).Name = "SearchItem.AlgorithmType"
args3(8).Value = 0
args3(9).Name = "SearchItem.SearchFlags"
args3(9).Value = 71680
args3(10).Name = "SearchItem.SearchString"
args3(10).Value = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("F1").String
args3(11).Name = "SearchItem.ReplaceString"
args3(11).Value = ""
args3(12).Name = "SearchItem.Locale"
args3(12).Value = 255
args3(13).Name = "SearchItem.ChangedChars"
args3(13).Value = 2
args3(14).Name = "SearchItem.DeletedChars"
args3(14).Value = 2
args3(15).Name = "SearchItem.InsertedChars"
args3(15).Value = 2
args3(16).Name = "SearchItem.TransliterateFlags"
args3(16).Value = 1280
args3(17).Name = "SearchItem.Command"
args3(17).Value = 1

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args3())

dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())


end sub


Gruß
Stephan

[gelöst] Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!

von little fingers » So, 21.11.2021 11:54

Hallo erstmal!

Ich würde gerne in der Tabelle LStatistik alle Zeilen bis auf die erste; löschen, wo in der Spalte F diese doppelt eingetragen ist!
Ich würde das gerne über eine Taste und ein Makro realisieren wollen!
Vielen Dank schon einmal für die Hilfe!

Liebe Grüße

Ingo

Nach oben