Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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
Inhaltsverzeichnis

Makros zentral steuern

Makros zentral steuern
22.02.2023 03:55:49
Max
Hallo zusammen,
ich habe ein "Dashboard" von dem ich meine Makros steuern möchte.
Leider arbeitet mein Makro jedoch nur wenn ich es in dem jeweiligen Arbeitsblatt ausführe.
Wie kann ich dem Makro sagen, dass es sich in dem entsprechenden Arbeitsblatt ausführen soll, auch wenn es nicht aktiv ist?
Sub Zeile_Loeschen()
Dim Zelle As Range
For Each Zelle In Range("A1:A40")
    If Zelle.Value = "x" Then
        Zelle.EntireRow.Delete
    End If
Next Zelle
End Sub

Der Code soll in Arbeisblatt 2 ausgeführt werden und wird in Arbeitsblatt 1 gestartet.
Über einen entsprechenden Tipp würde ich mich sehr freuen.
VIelen Dank
Beste Grüße
Max

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros zentral steuern
22.02.2023 06:15:24
GerdL
Moin Max,
schreibe den Blattnamen vor den Range.
Worksheets("Name von Arbeitsblatt 2").Range(...)
Gruß Gerd
AW: Makros zentral steuern
22.02.2023 06:27:14
ralf_b
lege den Code in ein allgemeines Modul und übergib den Namen des jeweiligen Blattes als Parameter. Ist kein Muß aber du müßtest sonst das Blatt als Referenz vor den Makronamen schreiben damit es gefunden wird.
Sub Zeile_Loeschen(shName as String ) 'Parameterübergabe
Aufruf z.b. mit Zeile_Löschen "Blatt 1"
im Makro referenzierst du mit "In Worksheets(shName).Range("A1:A40")"
Einzelne Zeilen löscht man besser wenn die Schleife rückwärts läuft und sie mit Zählvariable ( For i = 40 to 1 step -1) gestaltet ist.
Das löschen von einzelnen Zeilen könnte zu Verzögerungen im Ablauf führen, deshalb sammelt man die betreffenden Zeilen z.b. mittels union() und löscht sie nach der Schleife mit einem Mal. Dann ist die Richtung wie die Schleife durchlaufen wird egal.
Anzeige
AW: Makros zentral steuern
22.02.2023 07:19:20
GerdL
Moin,
ohne Netz.
Sub Hauweg()
    Call Zeilen_Loeschen("Tabelle2", "A1:A40", "x")
End Sub
Public Sub Zeilen_Loeschen(Blattname As String, Bereich As String, Kriterium As Variant)
    With Worksheets(Blattname).Range(Bereich)
    .Replace Kriterium, True, 1
    .SpecialCells(2, 4).EntireRow.Delete
    End With
End Sub
Gruß Gerd
AW: Makros zentral steuern
22.02.2023 15:42:17
Max
Hallo Gerd,
vielen Dank für den Lösungsweg. :)
Ich habe es eingebaut und getestet.
Leider löscht er mir jedoch nur das "x" aus Spalte "A" und nicht die entsprechenden Zeile (3).
Was habe ich übersehen?
Besten Dank!
Viele Grüße
Max
Anzeige
AW: Makros zentral steuern
22.02.2023 15:56:52
GerdL
Hallo Max,
eine schwierige Frage für mich.
Bei mir funktionert das Zeilenlöschen.
Hast du ein Muster mit dem von dir verwendeten Code?
Gruß Gerd
AW: Makros zentral steuern
22.02.2023 16:01:54
Max
Hallo Gerd,
mein kompletter Code sieht eigentlich genauso aus wie der von dir gepostete.

Option Explicit
Sub Hauweg()
    Call Zeilen_Loeschen("export_sell_1", "A1:A40", "x")
End Sub
Public Sub Zeilen_Loeschen(Blattname As String, Bereich As String, Kriterium As Variant)
    With Worksheets(Blattname).Range(Bereich)
    .Replace Kriterium, True, 1
    .SpecialCells(2, 4).EntireRow.Delete
    End With
End Sub
Wenn ich dann "Hauweg" starte, löscht er mir nur die "x" aus "A".
Das ist schon merkwürdig.
Beste Grüße
Max
Anzeige
AW: Makros zentral steuern
22.02.2023 16:11:31
GerdL
Hallo Max,
schreibe bitte mal hinter Range(Bereich) noch .Cells
Ich sah neulich da ein Phänomen.
Ansonsten, ohne deine Datei ....
Gruß Gerd
AW: Makros zentral steuern
22.02.2023 17:42:57
Max
Hallo Gerd,
ich habe den Fehler gefunden.
Manchmal sieht man den Wald vor lauter Bäumen nicht. :D
Die Daten wurden per Formel aus einer anderen Datei gezogen.
Ich habe mit deiner Lösung erfolgreich die entsprechenden Zeilen löschen können, aber er hat sich natürlich direkt wieder neue Daten gezogen, so dass es aussieht, als ob er nur das "x" gelöscht hat. :D
Ich habe es jetzt entsprechend angepasst, dass es in der Quelle gelöscht wird, dann passt alles. :)
Vielen Dank für deine tolle Unterstützung!
Beste Grüße
Max
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige