Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
412to416
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
412to416
412to416
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro greift auf alle geöffneten Dateien zu

Makro greift auf alle geöffneten Dateien zu
Frank
Hallo,
wie stelle ich es an, dass ein Makro nur auf eine Zelle in einem Tabellenblatt (z.B. A1 Tabelle1) und schon gar nicht auf andere geöffnete Excel-Dateien auch auf A1 Tabelle1 zugreift.
Besten Dank für Antworten!
AW: Makro greift auf alle geöffneten Dateien zu
ANdreas
Hallo Frank,
indem Du korrekt referenzierst, also das entsprechende Workbook und Worksheet ansprichst.
Das wird auch in den Excel-FAQ von Hans gezeigt:
http://xlfaq.herber.de/xlbasics/main_sel.htm
Hoffe das hilft weiter,
Andreas
AW: Makro greift auf alle geöffneten Dateien zu
Frank
Danke Andreas,
aber das sind böhmische Dörfer für mich (VBA keine Kenntnisse!)
Vielleicht gibt es da doch eine Lösung, die ich umsetzen kann.
Oder einen Umweg!
Die weiteren Tabellenblätter (Dateien) auf die das Makro noch zugreift sind alle geschützt. Kann ich denn ein Makro auch in geschützten Zellen arbeiten lassen. Dann würde es nicht zu Laufzeitfehlern in den Dateien kommen, in denen es erwünscht ist.
Wäre zwar nicht so elegant, würde aber dann doch auch gehen oder?
Danke für Antwort!
Anzeige
AW: Makro greift auf alle geöffneten Dateien zu
Christoph
Hi Frank,
wie Andreas bereits sagte: "referenzieren" ist das Zauberwort.
Also z.B:

Sub Test()
With Workbooks("Test.xls").Worksheets("Tabelle1")
.Range("A1").Value = "Test"
End With
End Sub

In diesem trivialen Bsp könntest du, da nur eine Anweisung passiert, auch schreiben:

Sub Test()
Workbooks("Test.xls").Worksheets("Tabelle1").Range("A1").Value = "Test"
End Sub

statt "Workbooks("Test.xls")" wäre auch möglich: "ThisWorkbook"
etc., etc., je nach dem, was du anstellen willst.
Gruß
Christoph
('ne Rückmeldung wäre nett)
Anzeige
AW: Makro greift auf alle geöffneten Dateien zu
Dieter
Hallo Leute,
ich habe zwar nicht die große Kenne von VBA, aber wäre es nicht am einfachsten das Makro mit "Private Sub" anzusprechen? Dann steht es doch nur in der benötigten Tabelle zur Verfügung. Sollte das falsch sein, bitte ich um eine entsprechende Antwort, da ich häufig mit "Private Sub" agiere und dann ggf. Fehler entstehen würden.
Danke
Dieter
AW: Makro greift auf alle geöffneten Dateien zu
Frank
Danke für die Antwort(en)
Aber noch mal eine dumme Frage, da VBA Neuland für mich ist.
Wenn ich es richtig verstanden habe, in das Modul einfach

Sub Test()
With Workbooks("Test.xls").Worksheets("Tabelle1")
.Range("A1").Value = "Test"
End With
End Sub

oder

Sub Test()
Workbooks("Test.xls").Worksheets("Tabelle1").Range("A1").Value = "Test"
End Sub

am Ende einfügen?
mfg
Frank
Anzeige
AW: Makro greift auf alle geöffneten Dateien zu
Christoph
Hi Frank,
meine Beispiele sind jeweils eigenständige Makros. Diese haben nichts mit deinem Code zu tun. Schon alleine deswegen nicht, weil ich deinen Code ja gar nicht kenne.
Diese Beispiele sollen lediglich veranschaulichen, wie man eine einzelne Datei, und hier eine einzelne Tabelle anspricht.
ein Makro im Stil von

Sub test()
Range("A1").Value = "test"
End Sub

kann in jeder Tabelle ausgeführt werden, die grade aktiviert ist.
Probiers aus: aktiviere z.B. Tabelle 1 deiner Exceldatei und lass das Makro laufen anschließend aktivierst du Tabelle 2 und lässt es noch mal laufen. Das Ergebnis ist, dass in beiden Tabellen in A1 jetzt der Eintrag: test steht.
Wenn du mehrere Arbeitsmappen geöffnet hast, dann kannst du dieses Makro auch in diesen starten, mit dem selben Ergebnis.
Um das zu vermeiden, musst du referenzieren, also in deinem Code angeben, für welche Tabelle der Code gilt. (siehe hierzu meine erste Antwort).
Und noch was zu den "Private Subs".
Diese sind ohne Referenzierung genauso in anderen Tabellen ausführbar.
Durch das Attribut "Private" wird ereicht, das auf diese Prozedur nur von anderen Prozeduren innerhalb des Moduls zugegriffen werden kann.
Des Weiteren werden "Private Subs" in der Liste der Makros (Alt+F8) nicht angezeigt.
Gruß
Christoph
Anzeige
AW: Makro greift auf alle geöffneten Dateien zu
Frank
Hallo Christoph,
um dieses Makro geht es! (siehe unten)
Kannst Du es soweit modifizieren, dass es sich nur auf das gewünschte
Tabellenblatt auswirkt?
Wenn das klappt wären viele auch zuküftige Probleme behoben!
Ich denke, wenn ich ein anschauliches Beispiel habe, andere Probleme auch zu
beseitigen.
Public NextTime As Date

Sub Updateclock()
NextTime = Now + TimeValue("00:00:10") 'alle 10 Sekunden
[A1] = Time
Application.OnTime NextTime, "Updateclock"
End Sub


Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=NextTime, Procedure:="UpdateClock", Schedule:=False
On Error GoTo 0
Application.StatusBar = False
End Sub

Ich habe mir ohne Lektüre Excel vor langer Zeit selber beigebracht und denke,
dass ich auf dem Weg bin VBA dank Deiner und anderer Leute Hilfe auch noch
anzueignen.
Vielen Dank für Deine Hilfe
mfg
Frank
Anzeige
wie rufst du diese Subs denn auf?
Christoph
Hi Frank,
wo steht dein Code?
in einem Modul? - startest du diese Makros über ein Schaltfläche?
oder im Klassenmodul der Tabelle oder des Workbooks?
lade doch mal eine Datei (mögichst abgespeckt) auf den Server
Gruß
Christoph

AW: wie rufst du diese Subs denn auf?
Frank
Hallo Christoph
hier findest Du die Datei mit Makro.
https://www.herber.de/bbs/user/5245.xls
Ich denke wenn ich einmal gesehen habe, wie das funktioniert, kann ich auch
andere Funktionen nach ummmodeln!
Danke aber nochmals für Deine geduldige Hilfe.
mfg
Frank
Anzeige
AW: wie rufst du diese Subs denn auf?
Christoph
Hi Frank,
ändere das Makro UpdateClock wie folgt:

Sub Updateclock()
NextTime = Now + TimeValue("00:00:10") 'alle 10 Sekunden
ThisWorkbook.Worksheets("Tabelle1").Range("A1") = Time
Application.OnTime NextTime, "Updateclock"
End Sub

Gruß
Christoph
AW: wie rufst du diese Subs denn auf?
21.04.2004 17:46:54
Frank
Hallo Christoph,
funktioniert leider nicht! Ich hab alles versucht. Das Makro läuft nicht. Starte ich es manuell, bleibt Excel hängen, bzw. wird dicht gemacht.
mfg
Frank
AW: Makro greift auf alle geöffneten Dateien zu
20.04.2004 02:19:32
Dieter
Hallo Chrisoph,
danke für Deine Info zu "Private Sub". Ich war (sicher wegen meiner mangelnden VBA-Kenne) bis jetzt der Meinung, diese Subs können nur "in dem einen speziellen Sheet" angesprochen werden, da Sie ja nicht sichtbar sind und somit (zumindest bei mir) auch nur für ganz bestimmte Aufgaben in diesem Sheet vergeben werden.
Habe wieder was dazugelernt.
Nochmals Danke.
Gruß Dieter
Anzeige
AW: Makro greift auf alle geöffneten Dateien zu
Frank
Hallo Christoph,
konntest Du denn mit der Datei
https://www.herber.de/bbs/user/5245.xls
nichts anfangen? Ich blick da immer noch nicht ganz durch, würde es aber verstehen, wenn
Du die o.g. Datei so modifizieren könntest, dass die Funktion lediglich im Feld A1 der Datei aktiv würde.
Ich hab da noch andere Dateien, deren Makros auch auf alle geöffneten Dateien und Tabellen zugreifen. Die würde ich dann selber gerne (Learning by doing) nach dem gleichen Muster umbauen?
Gibt es eigentlich noch vernünftige Lektüre zum erlernen von VBA auf Basis von Excel 97?
mfg
Frank
Anzeige
AW: Makro greift auf alle geöffneten Dateien zu
Christoph
Hi Frank,
ich hab dir doch geantwortet.
du musst dieses eine Makro durch mein gepostetetn text ersetzen.
Der unterschied zu vorher ist genau wie zuvor besprochen die Referenzierung auf diese Datei und hier auf tabelle 1.
http://xlforum.herber.de/messages/416289.html
Gruß
Christoph
AW: Makro greift auf alle geöffneten Dateien zu
DieterB
Hallo Frank,
aus den verlag "Markt und Technik" gibt es gute Literatur von Bernd held.
Und dann guckst Du hier :
www.knowware.de
Gruß
DieterB

129 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige