[gelöst] Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
Moderator: Moderatoren
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
[gelöst] Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
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
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
Zuletzt geändert von little fingers am Di, 23.11.2021 19:58, insgesamt 2-mal geändert.
Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
Das kannst Du per Makro-REkorder aufzeichen und mit ein paar händischen Korrekturen anpassen, dann bekommst Du:
Gruß
Stephan
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
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
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
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!
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.Leider löscht bei mir das Makro alles und ich weiss nicht, welche Stellschrauben dafür gesetzt werden müssen!
GRuß
Stephan
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
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
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!
z.B.:
Gruß
Stephan
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) 105-mal heruntergeladen
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: Zeilen mit doppelten Einträgen in Spalte F bis auf den ersten löschen!
Super..........!!!!!
Vielen, lieben Dank Stephan!!!
Genauso habe ich es mir vorgestellt!!!
Danke nochmals!!!!
Vielen, lieben Dank Stephan!!!
Genauso habe ich es mir vorgestellt!!!
Danke nochmals!!!!