Supportnet / Forum / Tabellenkalkulation
mit VBA zeilen nach kriterium löschen !
Frage
Hallo User,
habe folgendes problem.
habe eine excel-liste mit ca. 1000 zeilen und 10 spalten.
Möchte gerne eine eine vb programmieren in dem das makro bestimmte zeilen kontrolliert.
Die kontrollierten Zeilen sollen gelöscht werden wenn diese nicht ins krieterium fallen.
Hier ein beispiel Habe folgende Spalten:
A B C D
Storch Storch 5 5
Summe 5 5
Zebra Zebra 51 53
Summe 51 53
Bär Bär 30 10
Summe 30 10
krähe krähe 100 150
krähe krähe
krähe krähe -50 50
krähe krähe
krähe krähe 104
krähe krähe
krähe krähe 227
krähe krähe
Summe 50 531
das makro sollte die die Zeilen kontrollieren wo die summen adierung ist, beträge die grösser als 50 oder kleiner -50 sind sollte mit dem entsprechend zeilen gelöscht werden. Z. B die Summen addierung krähe würde in diesem fall nicht in das kriterium fallen also müssten die gesamten Krähe-Zeilen gelöscht werden.
Könnt Ihr mir Bitte Helfen?
Antwort 1 von fragender
wenn sie den pc einschalten kann, kann sie auch den in klammern(X) gesetzten lw-buchstaben erkennen. wenn sie etwas abspeichern möchte, dann weiss sie auch den explorer zu bedienen.
...
also wo ist dein wirkliches problem? keine märchen bitte ;)
...
also wo ist dein wirkliches problem? keine märchen bitte ;)
Antwort 2 von elianna
@ Fragender
du bist weltfremd!!! Ich glaube MasterofHardness die Sache 100%!!!Oft genug muss ich Kolleginnen helfen, irgendwelche Dateien wiederzufinden, die sie "ganz bestimmt" gespeichert haben.
Ist dann immer nur die Frage wo - und einen Namen haben sie der Datei meist auch nicht gegeben.
gruß,elianna
du bist weltfremd!!! Ich glaube MasterofHardness die Sache 100%!!!Oft genug muss ich Kolleginnen helfen, irgendwelche Dateien wiederzufinden, die sie "ganz bestimmt" gespeichert haben.
Ist dann immer nur die Frage wo - und einen Namen haben sie der Datei meist auch nicht gegeben.
gruß,elianna
Antwort 3 von fragender
@elianna
das ist aber eine frage der suchstrategie und hat mit mohs frage wenig zutun.
ich sehe keinen unterschiedt, ob da nun "bla(x:)" oder "ordner auf rechnername (x:)" steht.
am einfachsten: freigabename ändern (da man eh nur bis z bei laufwerken vergeben kann, ist das die einfachste "dausicherste" variante).
"x auf rechnername (x:)".
versteh das problem aber trotzdem nicht.
das ist aber eine frage der suchstrategie und hat mit mohs frage wenig zutun.
ich sehe keinen unterschiedt, ob da nun "bla(x:)" oder "ordner auf rechnername (x:)" steht.
am einfachsten: freigabename ändern (da man eh nur bis z bei laufwerken vergeben kann, ist das die einfachste "dausicherste" variante).
"x auf rechnername (x:)".
versteh das problem aber trotzdem nicht.
Antwort 4 von nighty
hi gollom
hier ein makro was dieses tut,es tastet das ende automatisch ab.
begrenzt a-z
gruss nighty
Sub Makro1()
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
alta = A
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
For t% = 65 To 65 + lspalte - 1
For t1% = 1 To lzeile
rem hier ist deine bedingung
If Range(Chr$(t%) & t1%) > 50 Or Range(Chr$(t%) & t1%) < -50 Then
Rows(t1% & ":" & t1%).Select
Selection.Delete Shift:=xlUp
End If
Next t1%
Next t%
End Sub
hier ein makro was dieses tut,es tastet das ende automatisch ab.
begrenzt a-z
gruss nighty
Sub Makro1()
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
alta = A
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
For t% = 65 To 65 + lspalte - 1
For t1% = 1 To lzeile
rem hier ist deine bedingung
If Range(Chr$(t%) & t1%) > 50 Or Range(Chr$(t%) & t1%) < -50 Then
Rows(t1% & ":" & t1%).Select
Selection.Delete Shift:=xlUp
End If
Next t1%
Next t%
End Sub
Antwort 5 von MasterOfHardness
@Fragender
Sie kann lesen, und den Rechner einschalten kann sie auch. Trozdem hat sie Schwierigkeiten mit der Dateinavigation, ist kein Märchen. Das mit dem Ändern der Freigabenamen ist so eine Sache. Ich komme nicht an alle Rechner ran, die stehen zum Teil sonst wo.
@Elianna
Problem genau erkannt! Bloß, was kann ich tun?
Gruß
MasterOfHardness
Sie kann lesen, und den Rechner einschalten kann sie auch. Trozdem hat sie Schwierigkeiten mit der Dateinavigation, ist kein Märchen. Das mit dem Ändern der Freigabenamen ist so eine Sache. Ich komme nicht an alle Rechner ran, die stehen zum Teil sonst wo.
@Elianna
Problem genau erkannt! Bloß, was kann ich tun?
Gruß
MasterOfHardness
Antwort 6 von YesAmerika
Hi,
wie wäre eine einfache aber gute Lösung? Mach einfach eine Verknüpfung zu dem besagten Ordner oder Laufwerk auf dem Desktop. Bei meinem etwas verwirrten Anti-PC-Benutzer-Kollegen hat das Wunder gewirkt. Wenn sie dann auf die Verknüpfung klickt, ist sie gleich da, wo sie hin soll.
Yessi
wie wäre eine einfache aber gute Lösung? Mach einfach eine Verknüpfung zu dem besagten Ordner oder Laufwerk auf dem Desktop. Bei meinem etwas verwirrten Anti-PC-Benutzer-Kollegen hat das Wunder gewirkt. Wenn sie dann auf die Verknüpfung klickt, ist sie gleich da, wo sie hin soll.
Yessi
Antwort 7 von MasterOfHardness
@YesAmerica
Bringt nix, da sie ja auch in den Softwarefenstern "Datei öffnen..." bzw. "Datei speichern unter..." die besagten Probleme hat. Da helfen die Verknüpfungen nicht.
Trotzdem danke schön.
Habe inzwischen von René (keine Ahnung, wie er hier heißt) eine Mail mit einem Lösungsvorschlag bekommen. Werde ich morgen testen:
Rechsklick auf Laufwerk => Eigenschaften => Beschreibung durch ein Leerzeichen ersetzen
Dies würde mein Problem vollkommen lösen. Danke bis hierher, wenn's wieder Fragen gibt, poste ich neu.
Gruß
MasterOfHardness
Bringt nix, da sie ja auch in den Softwarefenstern "Datei öffnen..." bzw. "Datei speichern unter..." die besagten Probleme hat. Da helfen die Verknüpfungen nicht.
Trotzdem danke schön.
Habe inzwischen von René (keine Ahnung, wie er hier heißt) eine Mail mit einem Lösungsvorschlag bekommen. Werde ich morgen testen:
Rechsklick auf Laufwerk => Eigenschaften => Beschreibung durch ein Leerzeichen ersetzen
Dies würde mein Problem vollkommen lösen. Danke bis hierher, wenn's wieder Fragen gibt, poste ich neu.
Gruß
MasterOfHardness
Antwort 8 von GoILOm
Hi `Nighty,
danke das du mir hilfst.
es klapt hervoragend danke, nur sollte das makro nur die zeilen kontrollieren wo eine Summen addition ist und erst dann die dazu gehörende zeilen löschen wenn die Summen zeilen nicht in die kriterien fällt was vorgegeben ist.
In dem beispiel was ich angegeben habe, habe ich es sehr schlacht erklärt. :-(
die Summen addition krähe und zebra passen nicht ins krieterium also müsste die kompletten zeilen Zebra sowie krähe gelöscht werden.
Kannst du mir nochmal helfen
Gruss
GoILom
danke das du mir hilfst.
es klapt hervoragend danke, nur sollte das makro nur die zeilen kontrollieren wo eine Summen addition ist und erst dann die dazu gehörende zeilen löschen wenn die Summen zeilen nicht in die kriterien fällt was vorgegeben ist.
In dem beispiel was ich angegeben habe, habe ich es sehr schlacht erklärt. :-(
die Summen addition krähe und zebra passen nicht ins krieterium also müsste die kompletten zeilen Zebra sowie krähe gelöscht werden.
Kannst du mir nochmal helfen
Gruss
GoILom
Antwort 9 von nighty
hi golom
steh auf dem schlauch,was fehlt noch ?
kannst mir auch tabelle schicken wenn du moechtest oder schrittweise buedde nochmal erklaeren was fehlt.
gruss nighty
steh auf dem schlauch,was fehlt noch ?
kannst mir auch tabelle schicken wenn du moechtest oder schrittweise buedde nochmal erklaeren was fehlt.
gruss nighty
Antwort 10 von MasterOfHardness
So, da bin ich wieder.
Habe heute getestet, leider geht der von René beschriebene Weg nicht ;o(
Gibt's weitere Vorschläge?
Gruß
MasterOfHardness
Habe heute getestet, leider geht der von René beschriebene Weg nicht ;o(
Gibt's weitere Vorschläge?
Gruß
MasterOfHardness
Antwort 11 von nighty
hi golom
loesung folgt nachher noch, muss zur arbeit bis dann.
gruss nighty
loesung folgt nachher noch, muss zur arbeit bis dann.
gruss nighty
Antwort 12 von nighty
hi golom :)
vielleicht so
spalte a
zebra oder summe
spalte b eine zahl
wenn summe gefunden wird und >50 uoder <-50(alles kleingeschrieben)
wird sie geloescht und als neues suchkreterium die darueberliegende zelle angegeben und kommplett neu durchlaufen so das alle mit dem neuen suchkreterium geloescht werden.die erste for next schleife sucht das wort summe und den wert von >50 oder <-50,die zweite schleife nach dem neuen such kreterium das immer ueber der summe liegt.
wie immer ich kann nicht gut beschreiben :)
gruss nighty
Sub Makro1()
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
lzeile = A
For t1% = 1 To lzeile
If Range("a" & t1%) = "summe" And Range("b" & t1%) > 50 Or Range("a" & t1%) = "summe" And Range("b" & t1%) < -50 Then
st$ = Range("a" & t1% - 1)
Rows("" & t1% & ":" & t1%).Select
Selection.Delete Shift:=xlUp
lzeile = lzeile - 1
For et% = lzeile To 1 Step -1
If Range("a" & et%) = st$ Then
Rows("" & et% & ":" & et%).Select
Selection.Delete Shift:=xlUp
leile = lzeile - 1
End If
Next et%
End If
Next t1%
Range("a1").Select
End Sub
vielleicht so
spalte a
zebra oder summe
spalte b eine zahl
wenn summe gefunden wird und >50 uoder <-50(alles kleingeschrieben)
wird sie geloescht und als neues suchkreterium die darueberliegende zelle angegeben und kommplett neu durchlaufen so das alle mit dem neuen suchkreterium geloescht werden.die erste for next schleife sucht das wort summe und den wert von >50 oder <-50,die zweite schleife nach dem neuen such kreterium das immer ueber der summe liegt.
wie immer ich kann nicht gut beschreiben :)
gruss nighty
Sub Makro1()
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
lzeile = A
For t1% = 1 To lzeile
If Range("a" & t1%) = "summe" And Range("b" & t1%) > 50 Or Range("a" & t1%) = "summe" And Range("b" & t1%) < -50 Then
st$ = Range("a" & t1% - 1)
Rows("" & t1% & ":" & t1%).Select
Selection.Delete Shift:=xlUp
lzeile = lzeile - 1
For et% = lzeile To 1 Step -1
If Range("a" & et%) = st$ Then
Rows("" & et% & ":" & et%).Select
Selection.Delete Shift:=xlUp
leile = lzeile - 1
End If
Next et%
End If
Next t1%
Range("a1").Select
End Sub
Antwort 13 von MasterOfHardness
noch mal nach oben das Ganze!
Antwort 14 von GoILOm
Hi nighty,
vielen dank für deine HILFE hat klasse geklappt :)
vielen dank für deine HILFE hat klasse geklappt :)
Antwort 15 von GoILOm
Hi Nighty,
habe nun ein anderes probl. hoffe sehr das du mir auch diesmal helfen kannst.
habe in der spalte A eine auflfd. zahl am ende steht immer das Wort "Gesamt" beispiel 145 Gesamt, nächste zeile 146 Gesamt usw. Wie kann ich die auflfd. zahle löschen damit nur das Wort Gesamt in der zeile steht.
Mit strg+ H funktioniert es einmal und das nur weil diese zahl einmal existiert.
Vielen dank im vorraus.
GoILOm
habe nun ein anderes probl. hoffe sehr das du mir auch diesmal helfen kannst.
habe in der spalte A eine auflfd. zahl am ende steht immer das Wort "Gesamt" beispiel 145 Gesamt, nächste zeile 146 Gesamt usw. Wie kann ich die auflfd. zahle löschen damit nur das Wort Gesamt in der zeile steht.
Mit strg+ H funktioniert es einmal und das nur weil diese zahl einmal existiert.
Vielen dank im vorraus.
GoILOm
Antwort 16 von nighty
hi gollom :)
1)markiere spalte A
2)loesche spalte A
3)schreibe in eine beliebige zelle das wort GESAMT
4)die zelle wo gesamt drin steht anwaehlen mit : bearbeiten/kopieren
5)soviele zeilen in spalte A durch eine markierung festlegen wie man braucht
6)jetzt bearbeiten/einfuegen anwaehlen,schon steht jetzt das wort GESAMT in deinem vorher ausgewaehlten bereich.
schwitz,beschreiben ist ja schwerer als code zu schreiben :)
gruss nighty
1)markiere spalte A
2)loesche spalte A
3)schreibe in eine beliebige zelle das wort GESAMT
4)die zelle wo gesamt drin steht anwaehlen mit : bearbeiten/kopieren
5)soviele zeilen in spalte A durch eine markierung festlegen wie man braucht
6)jetzt bearbeiten/einfuegen anwaehlen,schon steht jetzt das wort GESAMT in deinem vorher ausgewaehlten bereich.
schwitz,beschreiben ist ja schwerer als code zu schreiben :)
gruss nighty

