Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Marko in aktivem Workbook / Worksheet ausführen

Marko in aktivem Workbook / Worksheet ausführen
20.02.2007 11:29:17
Peter
Guten Tag
Ich bin grad nicht fündig geworden.
Was muss ich meinem Code voranstellen, dass dieser bei Aufruf immer in der gerade aktiven Tabelle ausgeführt wird?
Danke für Rückmeldung.
Peter
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Marko in aktivem Workbook / Worksheet ausführe
20.02.2007 11:36:00
ronny
hallo peter,
du brauchst nichts voranstellen. du mußt nur dafür sorgen, daß zu bearbeitende bereiche allgemein angesprochen werden und nicht auf ein bestimmtes sheet anzuwenden sind. statt sheets("blabla"). solltest du active sheet oder ähnliches verwenden.
wenn das makro in einem modul liegt kannst du es von jedem sheet aus starten.
gruß ronny
Anzeige
AW: Marko in aktivem Workbook / Worksheet ausführen
20.02.2007 11:38:24
IngGi
Hallo Peter,
ActiveSheet.Range("A1") = "blablabla"
bezieht sich immer auf das aktive Tabellenblatt. Ein "ActiveSheet" voranzustellen ist allerdings nur erforderlich, wenn dein Code sich im Klassenmodul eines Tabellenblattes befindet.
Range("A1") = "blablabla"
bezieht sich im Modul eines Tabellenblattes auf dieses Tabellenblatt aber in einem allgemeinen Modul auf das aktive Tabellenblatt. Mit vorangestelltem "ActiveSheet" bist du auf jeden Fall auf der sicheren Seite.
Gruß Ingolf
Anzeige
AW: Marko in aktivem Workbook / Worksheet ausführen
20.02.2007 22:11:42
Peter
Hallo Ingo
Vielen Dank für deine Rückmeldung. Ich muss meine Frage noch etwas präzisieren.
Ausgangslage:
Ich habe ein Makro aufgezeichnet, das mir eine Tabelle modifiziert. Das Makro habe ich in einem separten Workbook abgelegt.
Nun muss ich die gleiche Aktion in rund 20 Tabellen (die in unterschiedlichen Workbooks sind), ausführen.
Ich verstehe nicht ganz, was ich vorkehren muss, dass der Code auch im richtigen Ort ausgeführt wird. Beispielsweise rufe ich anfangs ein weiteres Makro auf, das am gleichen Ort, wie das aufrufende Makro abgespeichert ist.
Anschliessend will ich ein Makro aufrufen, das im Workbook gespeichert wird, der gerade bearbeitet wird.
Wie stelle ich beispielsweise sicher, dass ich die richtigen Subroutinen aufrufe?
Vielen Dank für eine Rückmeldung
Peter
Option Explicit

Sub Makro1()
' Tastenkombination: Strg+i
Call Makro1                 'aus Workbook, in dem das Makro abgespeichert ist
Call Makro2                 'aus Workbook , welches beim Start des Makros aktiv ist
Columns("J:J").Select
Application.Goto Reference:="C10"
Selection.Insert Shift:=xlToRight
Application.Goto Reference:="R3C11"
ActiveCell.FormulaR1C1 = "'2006"
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
End With
Application.Goto Reference:="R5C11"
ActiveCell.FormulaR1C1 = "=R[9]C"
End Sub

Anzeige
AW: Marko in aktivem Workbook / Worksheet ausführe
20.02.2007 22:29:13
IngGi
Hallo Peter,
Run "DateinameOhneEndung!Makroname"
Nach vorigem Muster wird mit folgender Zeile das Makro "Berechnen" in der Arbeitsmappe "Umsatz.xls" gestartet
Run "Umsatz!Berechnen"
Um das Makro "Berechnen" in der aktiven Arbeitsmappe zu starten, nimmst du folgende Zeile:
Run Left(ActiveWorkbook.Name,  Len(ActiveWorkbook)-4) & "!Berechnen"
Gruss Ingolf
Anzeige
AW: Marko in aktivem Workbook / Worksheet ausführe
21.02.2007 07:47:49
Peter
Hallo Ingolf
Das hilft weiter.
Vielen Dank!
Peter
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makros im aktiven Workbook und Worksheet ausführen


Schritt-für-Schritt-Anleitung

Um ein Makro in der aktiven Arbeitsmappe oder dem aktiven Arbeitsblatt auszuführen, kannst du den folgenden Ansatz verwenden. Dies ist besonders nützlich, wenn du mehrere Arbeitsmappen bearbeitest.

  1. Makro erstellen: Erstelle dein Makro, das die gewünschten Änderungen vornimmt. Achte darauf, dass du ActiveSheet oder ActiveWorkbook verwendest, um sicherzustellen, dass dein Code auf das aktuell ausgewählte Arbeitsblatt oder die Arbeitsmappe zugreift.

    Beispiel:

    Sub BeispielMakro()
       ActiveSheet.Range("A1").Value = "Hallo Welt"
    End Sub
  2. Makro aufrufen: Wenn du ein anderes Makro aufrufen möchtest, das in einem separaten Workbook gespeichert ist, nutze den Run-Befehl.

    Beispiel:

    Run "DeinWorkbookName!DeinMakroName"
  3. Verwende ThisWorkbook und ActiveWorkbook: Um Unterschiede zwischen ThisWorkbook und ActiveWorkbook zu verstehen, bedenke, dass ThisWorkbook auf das Workbook verweist, das den Code enthält, während ActiveWorkbook auf das aktuell aktive Workbook zeigt.


Häufige Fehler und Lösungen

  • Fehler: Makro wird im falschen Workbook ausgeführt

    • Lösung: Stelle sicher, dass du ActiveWorkbook verwendest, wenn du auf das aktive Workbook zugreifen möchtest.
    • Beispiel:
      ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = "Test"
  • Fehler: Bezug auf das falsche Arbeitsblatt

    • Lösung: Nutze ActiveSheet, um sicherzustellen, dass dein Code auf das aktive Arbeitsblatt angewendet wird.

Alternative Methoden

  • Direkter Zugriff auf das aktive Arbeitsblatt: Du kannst auch direkt auf das aktive Arbeitsblatt zugreifen, ohne den Namen des Arbeitsblattes zu kennen.

    Beispiel:

    With ActiveSheet
      .Range("B1").Value = "Neuer Wert"
    End With
  • Verwendung von ThisWorkbook: Wenn du sicherstellen möchtest, dass dein Makro sich immer auf das Workbook bezieht, in dem es gespeichert ist, verwende ThisWorkbook.

    Beispiel:

    ThisWorkbook.Sheets("Sheet1").Range("C1").Value = "Test"

Praktische Beispiele

  1. Wert in aktive Zelle einfügen:

    Sub WertInAktiveZelle()
       ActiveCell.Value = "Neuer Wert"
    End Sub
  2. Durch alle aktiven Arbeitsblätter iterieren:

    Sub IteriereDurchAktiveBlätter()
       Dim ws As Worksheet
       For Each ws In ActiveWorkbook.Worksheets
           ws.Range("A1").Value = "Aktives Blatt: " & ws.Name
       Next ws
    End Sub

Tipps für Profis

  • Vermeide harte Codierungen von Blattnamen: Verwende ActiveSheet, um die Flexibilität zu erhöhen, besonders wenn du mit mehreren Arbeitsmappen arbeitest.
  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro auch bei unerwarteten Situationen stabil bleibt.

FAQ: Häufige Fragen

1. Wie rufe ich ein Makro in einer anderen Arbeitsmappe auf? Um ein Makro in einer anderen Arbeitsmappe auszuführen, verwende den Run-Befehl mit dem Namen der Arbeitsmappe und des Makros. Beispiel:

Run "AndereMappe!MakroName"

2. Was ist der Unterschied zwischen ThisWorkbook und ActiveWorkbook? ThisWorkbook bezieht sich auf die Arbeitsmappe, in der der Code läuft, während ActiveWorkbook die aktuell aktive Arbeitsmappe ist. Dies ist wichtig, um sicherzustellen, dass dein Makro die richtigen Daten bearbeitet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige