Seite 1 von 1
[gelöst] Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
Verfasst: So, 21.11.2021 11:54
von little fingers
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
Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
Verfasst: So, 21.11.2021 12:19
von Stephan
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
Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
Verfasst: Di, 23.11.2021 12:06
von little fingers
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!
Verfasst: Di, 23.11.2021 12:59
von Stephan
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!
Verfasst: Di, 23.11.2021 15:34
von little fingers
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!
Verfasst: Di, 23.11.2021 19:20
von Stephan
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
Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
Verfasst: Di, 23.11.2021 19:56
von little fingers
Super..........!!!!!
Vielen, lieben Dank Stephan!!!
Genauso habe ich es mir vorgestellt!!!
Danke nochmals!!!!