Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makros

Makros
19.06.2006 08:25:40
kle
Guten Morgen zusammen,
ich kenne mich mit VBA nicht aus. Einmal habe ich von einem Experten in diesem Forum ein tolles Makro bekommen und die kurze Anleiteung, wie ich das Makro einbauen soll. Das Makro löscht bestimmte Zeilen in der Tabelle.
Jetzt brauche ich ein ähnliches Markro.
Ich habe nur die Spalte (E) und das Kriterium (0)geändert. Da ist es:

Sub Zeilen_loeschen()
Dim rng As Range
Set rng = ActiveSheet.Range("E1:E65536").Find(what:=0, lookat:=xlWhole)
If rng Is Nothing Then
Exit Sub
Else
rng.EntireRow.Delete
End If
Do
Set rng = ActiveSheet.Cells.FindNext
If rng Is Nothing Then
Exit Sub
Else
rng.EntireRow.Delete
End If
Loop
End Sub

Dann habe ich das aktuellen Tabellenblatt markiert, auf Alt+F11 gedrückt, Modul einfügen und das Makro rüberkopiert.
Das Problem ist, dass dieses Makro jetzt auf dem ersten Tabellenblatt ausgeführt wird, und nicht auf dem aktuellen.
Kann mir jemand da weiter helfen? Ich mache bestimmt was falsch, weis nur nicht was :)

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros
19.06.2006 08:55:22
Harald
Moin kle
hab dir den Suchbereich angepaßt.
Das Makro wird auf dem aktiven Tabellenblatt ausgeführt. D.h. auf dem Tabellenblatt, welches zum Startzeitpunkt des Makro aktiviert ist.
Kann mir deinen Fehler nur so erklären, dass Du den Start-Button im ersten Blatt hast.

Sub Zeilen_loeschen()
Dim rng As Range, Lrow As Long
'letzte genutzte Zelle in Spalte E ( =5)
Lrow = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
Set rng = ActiveSheet.Range("E1:E" & Lrow).Find(what:=0, lookat:=xlWhole)
If rng Is Nothing Then
Exit Sub
Else
rng.EntireRow.Delete
End If
Do
Set rng = ActiveSheet.Cells.FindNext
If rng Is Nothing Then
Exit Sub
Else
rng.EntireRow.Delete
End If
Loop
End Sub

Gruss Harald
Anzeige
AW: Makros
19.06.2006 09:24:03
kle
Hallo Harald,
villen Dank für deine schnelle Antwort.
Ich weiß nur nicht genau, was ein Start-Button ist. Wenn Du ein "Knopf" für Makroausführung meinst, das habe ich nicht. Dein Makro funktioniert auch auf dem ersten Tabellenblatt.
Gruß
kle
AW: Makros
19.06.2006 09:36:55
Harald
Hi,
der Code bezieht sich auf das aktive Tabellenblatt (activesheet)
Wie startest Du denn den Code ?
Gruss Harald
AW: Makros
19.06.2006 10:01:07
kle
Hallo,
Ich markiere irgendeine Zelle auf dem Tabellenblatt, wo das Marko später ausgeführt werden soll. Dann Alt + F11, Enfügen / Modul. Dann kopiere ich den Cod rüber. Das wäre es...
Gruß
kle
Anzeige
AW: Makros
19.06.2006 10:06:30
Harald
Offensichtlich hast Du den Code ins Standardmodul kopiert.
Da das Kopieren den Code nicht startet und du keinen Button,Tastenkombi o.ä. hast, ist der Code von Hand zu starten.
Aktiviere das betreffende Blatt, Alt+F11, den Cursor in den Code stellen und F5 drücken.
F5 startet den Code, in dem der Cursor steht.
Gruss Harald
AW: Makros
19.06.2006 12:04:09
kle
Lieber Harald,
das ist sehr lieb von dir, dass du nicht aufgibst, und versuchst mir zu helfen, obwohl ich in VBA gar nichts verstehe.
Es ist mir total unangenehm dir mitteilen zu müssen, dass mit F5 es auch nicht funktioniert hat :(
kle
AW: Makros
19.06.2006 12:19:00
Harald
Hi,
mag sein, dass er als Suchergebnis (rng) nichts...also nothing hat und dann per exit aussteigt.
Hab noch eine Möglichkeit. Nicht so schnell aber hat auch funktioniert.
Da du es offensichtlich nicht nur für ein spezielles Blatt benötigst, kommt dieser Code ebenfalls ins Standardmodul (Modul1).

Sub andersloeschen()
Dim Lrow As Long, i As Long
Lrow = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
For i = Lrow To 1 Step -1
If Cells(i, 5) = "0" Then Rows(i).Delete
Next i
End Sub

Gruss Harald
Anzeige
AW: Makros
19.06.2006 13:37:30
kle
Hi,
so klappt es wirklich! Vielen lieben Dank!
kle
Danke für die Rückmeldung owT
19.06.2006 13:47:19
Harald
Gruss Harald

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige