[Gelöst] mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Moderator: Moderatoren
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
[Gelöst] mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Hallo Ihr Lieben,
Ich hänge mal wieder und würde gerne,
die Werte, die in der Spalte $Tabelle1.F2:F$150 eingetragen sind,mit den Werten in der Spalte Tabelle2.C$5:C$120, vergleichen und dann sollen die ganzen Zeilen, der Spalte $Tabelle1.F2:F$150, wo die Eintragungen mit der Spalte Tabelle2.C$5:C$120 identisch sind, gelöscht werden .
Ist das irgendwie möglich?
Gruß Ingo
Ich hänge mal wieder und würde gerne,
die Werte, die in der Spalte $Tabelle1.F2:F$150 eingetragen sind,mit den Werten in der Spalte Tabelle2.C$5:C$120, vergleichen und dann sollen die ganzen Zeilen, der Spalte $Tabelle1.F2:F$150, wo die Eintragungen mit der Spalte Tabelle2.C$5:C$120 identisch sind, gelöscht werden .
Ist das irgendwie möglich?
Gruß Ingo
Zuletzt geändert von little fingers am So, 31.05.2020 09:44, insgesamt 1-mal geändert.
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Hallo,
Wie weit bist du mit deinem Makro?
Warum beginnt der erste Bereich in Zeile 2 und der zweite in Zeile 5?
Ja.Ist das irgendwie möglich?
Wie weit bist du mit deinem Makro?
Warum beginnt der erste Bereich in Zeile 2 und der zweite in Zeile 5?
Gruß,
mikeleb
mikeleb
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Hi mikeleb!
Ich habe mit einem Makro gar nicht angefangen,da ich nullplan habe.
Ich möchte einfach bestimmte Werte, wie z.B. Kundennummern einfach in Tabelle2 eintragen, die grundsätzlich, wenn sie in Tabelle1 in dieser Spalte auftauchen, gelöscht werden sollen, wenn ich das Makro laufen lasse unabhängig von der jeweiligen Position, innerhalb der betreffenden Spalten in Tabelle1, wie auch Tabelle2. Also, in Tabelle2 in der Spalte (Tabelle2.C$5:C$120) sollen einfach Werte nachgetragen werden können, die dann beim Lauf auch gelöscht werden können. (so zu sagen, als flexible Quelle)
Gruss Ingo
Ich habe mit einem Makro gar nicht angefangen,da ich nullplan habe.
Ich möchte einfach bestimmte Werte, wie z.B. Kundennummern einfach in Tabelle2 eintragen, die grundsätzlich, wenn sie in Tabelle1 in dieser Spalte auftauchen, gelöscht werden sollen, wenn ich das Makro laufen lasse unabhängig von der jeweiligen Position, innerhalb der betreffenden Spalten in Tabelle1, wie auch Tabelle2. Also, in Tabelle2 in der Spalte (Tabelle2.C$5:C$120) sollen einfach Werte nachgetragen werden können, die dann beim Lauf auch gelöscht werden können. (so zu sagen, als flexible Quelle)
Gruss Ingo
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Hallo,
nun verstehe ich gar nichts mehr.
nun verstehe ich gar nichts mehr.
Gruß,
mikeleb
mikeleb
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Vielleicht veranschaulicht ja das einfache Beispiel mein Anliegen!
Gruss Ingo
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Ich verstehe es leider auch nicht, denn wenn ich in der Beispieldatei lese:
"Die Zeilen,mit übereinstimmenden KD-Nr. In Tabelle1 F2:F150 und Tabelle2 C5:C150 sollen dann in Tabelle1 gelöscht werden!!"
So sind doch die angegebenen Zellbereiche unterschiedlich groß und mir ist nicht klar was genau verglichen werden soll, denn es gibt zumindest zwei denkbare Wege:
Es werden immer Zellen gleichen Namens verglichen, also F5-C5, F6-C6, ...
Es werden Zellen quasi von oben beginnend verglichen, also F2-C5, F3-C6, ...
Ich gehe auch nicht von einem flüchtigen Schreibfehler aus, denn in der Beispieldatei sind die zu vergleichenden Zellbereiche, doch auch genauso markiert wie im Text benannt, dh. dr Bereich in Tabelle 2 beginnt wirklich erst in Zeile 5.
Gruß
Stephan
"Die Zeilen,mit übereinstimmenden KD-Nr. In Tabelle1 F2:F150 und Tabelle2 C5:C150 sollen dann in Tabelle1 gelöscht werden!!"
So sind doch die angegebenen Zellbereiche unterschiedlich groß und mir ist nicht klar was genau verglichen werden soll, denn es gibt zumindest zwei denkbare Wege:
Es werden immer Zellen gleichen Namens verglichen, also F5-C5, F6-C6, ...
Es werden Zellen quasi von oben beginnend verglichen, also F2-C5, F3-C6, ...
Ich gehe auch nicht von einem flüchtigen Schreibfehler aus, denn in der Beispieldatei sind die zu vergleichenden Zellbereiche, doch auch genauso markiert wie im Text benannt, dh. dr Bereich in Tabelle 2 beginnt wirklich erst in Zeile 5.
Gruß
Stephan
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Hallo Stephan!
vielen Dank erst mal,dass auch Du Dir Gedanken über mein Problem machst!
Ich habe mir die Arbeitsweise so vorgestellt:
Ich importiere in Tabelle1 einfach ungefilterte Daten aus einer CSV. Diese Zeilenanzahl würde die 150 nicht überschreiten!!!
Hier habe ich in der Spalte F, die relevanten Werte (Kundennummern) stehen. Dabei sind dabei auch Kundennummern drin, die ich für weitere Verwendung nicht brauche und die auch stören.
Nun möchte ich in Tabelle2 einen Bereich definieren, in dem die Kundennummern eingetragen werden, die in Tabelle1 gestrichen werden sollen.
Also einfach für den Anwender. Er kann in die Liste in Tabelle2 gehen, Kunden zusätzlich eintragen oder entfernen, lässt das Makro laufen und hat danach eine bereinigte Tabelle1.
Und da hänge ich jetzt
Es würde mir ja schon reichen, wenn die entsprechenden Zellen, in Tabelle1 geleert werden würden !
Gruss Ingo
vielen Dank erst mal,dass auch Du Dir Gedanken über mein Problem machst!
Ich habe mir die Arbeitsweise so vorgestellt:
Ich importiere in Tabelle1 einfach ungefilterte Daten aus einer CSV. Diese Zeilenanzahl würde die 150 nicht überschreiten!!!
Hier habe ich in der Spalte F, die relevanten Werte (Kundennummern) stehen. Dabei sind dabei auch Kundennummern drin, die ich für weitere Verwendung nicht brauche und die auch stören.
Nun möchte ich in Tabelle2 einen Bereich definieren, in dem die Kundennummern eingetragen werden, die in Tabelle1 gestrichen werden sollen.
Also einfach für den Anwender. Er kann in die Liste in Tabelle2 gehen, Kunden zusätzlich eintragen oder entfernen, lässt das Makro laufen und hat danach eine bereinigte Tabelle1.
Und da hänge ich jetzt
Es würde mir ja schon reichen, wenn die entsprechenden Zellen, in Tabelle1 geleert werden würden !
Gruss Ingo
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Hallo,
abhängig davon, wie oft man es benötigt, wäre eine Option, eine Hilfsspalte zu benutzen, um herauszubekommen, ob dieses Zeile gelöscht werden soll und dann nach dieser zu filtern und zu löschen.
abhängig davon, wie oft man es benötigt, wäre eine Option, eine Hilfsspalte zu benutzen, um herauszubekommen, ob dieses Zeile gelöscht werden soll und dann nach dieser zu filtern und zu löschen.
- Dateianhänge
-
- Beispiel.ods
- (11.4 KiB) 124-mal heruntergeladen
Gruß,
mikeleb
mikeleb
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Hallo mikeleb!
Dein Beispiel würde bedingen, dass ich immer noch die Tabelle1 über die Spalte F sortieren muss,
dann manuell Zeilen lösche und hinterher die Hilfsspalte wieder einrichten muss.
Geht es nicht, dass Tabelle1 Spalte F , mit Tabelle2, K sowieso verglichen wird und
dann automatisch in Tabelle1, Spalte F der doppelte Eintrag in der ZELLE geleert wird?
Und dass ich danach mit diesem Makro:
dann diese Zeilen löschen kann??
Vielen Dank, Schon einmal für die tolle Arbeit, die Ihr hier leistet, um solchen NullFormelVersteher, wie ich einer bin, zu helfen!
Gruss Ingo
Dein Beispiel würde bedingen, dass ich immer noch die Tabelle1 über die Spalte F sortieren muss,
dann manuell Zeilen lösche und hinterher die Hilfsspalte wieder einrichten muss.
Geht es nicht, dass Tabelle1 Spalte F , mit Tabelle2, K sowieso verglichen wird und
dann automatisch in Tabelle1, Spalte F der doppelte Eintrag in der ZELLE geleert wird?
Und dass ich danach mit diesem Makro:
Code: Alles auswählen
Sub leereKDloeschen
' Alle Zeilen löschen, do in Zeile C keine Stellplätze definiert sind!!
' nur einmal in der Woche Leerzeilen löschen!!! (Sonntag)
oDoc = ThisComponent
oSheets = oDoc.Sheets
oSheet = oSheets.getbyName("Tabelle1")
oRows = oSheet.getRows
Goto Start
Start:
for i = 150 to 2 step -1 ' zählt rückwärts , wegen INDEX
oCell = oSheet.getCellByPosition(5,i)
if oCell.Value = 0 Then
oRows.removeByIndex(i,1)
End if
Next i
End Sub
Vielen Dank, Schon einmal für die tolle Arbeit, die Ihr hier leistet, um solchen NullFormelVersteher, wie ich einer bin, zu helfen!
Gruss Ingo
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Moin,
probiere es mal hiermit:
Gruß R
probiere es mal hiermit:
Code: Alles auswählen
Sub remove_Numbers
aSourceData = ThisComponent.sheets.Tabelle2.getCellRangebyName("C5:C150").queryContentCells(1).data
oTargetSheet = ThisComponent.sheets.Tabelle1
oCursor = oTargetSheet.CreateCursor
oCursor.gotoEndofUsedArea(false)
nEndrow = oCursor.RangeAddress.Endrow
oTargetRange = ThisComponent.sheets.Tabelle1.getCellRangebyPosition(5,1,5,nEndrow)
aTargetData = oTargetRange.Data
for i = 0 to UBound(aSourceData)
for k = uBound(aTargetData) to 0 step - 1
if aSourceData(i)(0)= aTargetData(k)(0) then
oTargetCell = oTargetRange.getcellbyposition(0,k)
oTargetSheet.rows.removebyindex(oTargetCell.Celladdress.Row,1)
endif
oCursor = oTargetSheet.CreateCursor
oCursor.gotoEndofUsedArea(false)
nEndrow = oCursor.RangeAddress.Endrow
oTargetRange = ThisComponent.sheets.Tabelle1.getCellRangebyPosition(5,1,5,nEndrow)
aTargetData = oTargetRange.Data
next k
next i
End Sub
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
-
- ***
- Beiträge: 74
- Registriert: Fr, 12.05.2017 15:31
Re: mit Makro ganze Zeilen löschen, wenn Bedingung erfüllt ist
Genial!
Es macht genau das, was ich wollte!!!
Ihr seid Super, vielen Dank F3K Total für die Lösung und auch an die Anderen: Super, was Ihr hier macht!
Ein glücklicher Ingo
Gruss Ingo
Es macht genau das, was ich wollte!!!
Ihr seid Super, vielen Dank F3K Total für die Lösung und auch an die Anderen: Super, was Ihr hier macht!
Ein glücklicher Ingo
Gruss Ingo