Supportnet Computer
Planet of Tech

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 ;)

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

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.

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

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

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

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

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

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



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

Antwort 11 von nighty

hi golom

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


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 :)

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

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