Ist so ein Makro in Calc möglich?

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: Ist so ein Makro in Calc möglich?

Re: Ist so ein Makro in Calc möglich?

von idefix2 » Mo, 29.01.2024 12:49

little fingers hat geschrieben: Fr, 26.01.2024 17:28 Hallo
hilft dieses Makro?
Hier wird nur der doppelte Eintrag, z.B. in der Spalte F gelöscht aber nicht die Zeile.

Code: Alles auswählen

	Sub doppelte_loeschen

	ozeile=ThisComponent.CurrentController.ActiveSheet.Columns(5) 'Spalte 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 5
						.getCellByPosition(jj, j).String = ""
					Next jj
				End If
			Next j
		Next i
			
'msgbox ("doppelte Einträge wurden gelöscht")
	End With
End Sub
Gruss Ingo
Danke! Nachdem das Filterwerkzeug anscheinend mächtiger ist, als ich dachte, werde ich das wahrscheinlich ohne Makro lösen können. Trotzdem ist das Makro, das du hier gepostet hast, sehr hilfreich und eine super Vorlage für andere Sachen, die ich brauche.

Re: Wie kann man Spalte A ausschliessen von »Filtern→ohne Duplikate«

von idefix2 » Mo, 29.01.2024 12:45

Karolus hat geschrieben: Do, 25.01.2024 08:40 Hallo

Selektiere explizit Spalte B bis Spalte ?, und filtere darauf.
Ah, danke - mir war nicht klar, dass man beim Filtern Spalten ausschließen kann. Ganz klar ist mir noch immer nicht, wie das genau funktioniert und was das genau macht, aber ich denke, mit etwas herumprobieren werde ich draufkommen :)

Re: Ist so ein Makro in Calc möglich?

von little fingers » Fr, 26.01.2024 17:28

Hallo
hilft dieses Makro?
Hier wird nur der doppelte Eintrag, z.B. in der Spalte F gelöscht aber nicht die Zeile.

Code: Alles auswählen

	Sub doppelte_loeschen

	ozeile=ThisComponent.CurrentController.ActiveSheet.Columns(5) 'Spalte 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 5
						.getCellByPosition(jj, j).String = ""
					Next jj
				End If
			Next j
		Next i
			
'msgbox ("doppelte Einträge wurden gelöscht")
	End With
End Sub
Gruss Ingo

Re: Ist so ein Makro in Calc möglich?

von Hiker » Do, 25.01.2024 23:43

idefix2 hat geschrieben: Mi, 24.01.2024 16:49 .... Mir fällt leider kein brauchbarer Ansatz ein.
Du berechnest einfach einen Hash-Code über die Relevanten felder und wendest dann den Vorschlag von Karolus an: Filtern ohne Duplikate.

Re: Wie kann man Spalte A ausschliessen von »Filtern→ohne Duplikate«

von Karolus » Do, 25.01.2024 08:40

Hallo

Selektiere explizit Spalte B bis Spalte ?, und filtere darauf.

Re: Ist so ein Makro in Calc möglich?

von idefix2 » Mi, 24.01.2024 22:11

Karolus hat geschrieben: Mi, 24.01.2024 19:14 Was denn nun?
War das jetzt von mir unklar formuliert?
Die erste Spalte soll beim Erkennen von Duplikaten nicht berücksichtigt werden, d.h. wenn sich zwei Zeilen nur in der ersten Spalte und sonst nicht unterscheiden, sollen die Zeilen als identisch betrachtet und die weiter unten liegende Zeile gelöscht werden.

In der ersten Spalte steht das Datum, wenn an zwei verschiedenen Tagen die gleichen Werte erfasst wurden, und sich die Zeilen nur im Datum in Spalte 1 unterscheiden, sollen von diesen Zeilen alle außer der ältesten, die zuoberst steht, aus der Tabelle entfernt werden.

Re: Ist so ein Makro in Calc möglich?

von Karolus » Mi, 24.01.2024 19:14

Es ist leider insofern komplizierter, als die erste Spalte der Tabelle beim Erkennen der Duplikate nicht berücksichtigt werden soll, d.h. Zeilen, die sich nur in der ersten Spalte unterscheiden, sollen als identisch betrachtet werden und nur die oberste von diesen Zeilen soll erhalten bleiben.
Was denn nun?

Re: Ist so ein Makro in Calc möglich?

von idefix2 » Mi, 24.01.2024 18:02

Ah, danke für die Antwort - ich hätte die Aufgabe doch gleich richtig im Detail beschreiben sollen...
Es ist leider insofern komplizierter, als die erste Spalte der Tabelle beim Erkennen der Duplikate nicht berücksichtigt werden soll, d.h. Zeilen, die sich nur in der ersten Spalte unterscheiden, sollen als identisch betrachtet werden und nur die oberste von diesen Zeilen soll erhalten bleiben. Den Wert in Spalte 1 in der obersten Zeile brauche ich leider auch, sodass ich die Spalte nicht einfach herauslöschen kann.

Re: Ist so ein Makro in Calc möglich?

von Karolus » Mi, 24.01.2024 17:11

Hallo
Da ist kein Makrogewurstel nötig!
→Daten→Filter→StandardFilter→→[x]ohne Duplikate tuts auch.

Ist so ein Makro in Calc möglich?

von idefix2 » Mi, 24.01.2024 16:49

Ich grüble schon eine Weile herum, ob ich die folgende Aufgabe in Calc mit einem Makro lösen kann:
Ich würde gerne automatisch von allen Zeilen, die mehrfach identisch vorkommen, alle Zeilen außer der ersten löschen. Mir fällt leider kein brauchbarer Ansatz ein.

Nach oben