Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1252to1256
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

Datei eindeutig benennen in VBA-Code

Datei eindeutig benennen in VBA-Code
Judith
Hallo,
ich habe eine Datei mit VBA-Code, der nur funktioniert, wenn keine weitere Excel Datei geöffnet ist. Wenn also zwischen mehreren Excel Dateinen hin- un her gesprungen wird, weiß Excel nicht mehr, welche Datei angesprochen werden soll. Schlecht programmiert, eben.
Es geht mir jetzt darum, dass ich die Datei sicher benennen kann, sonst kommt eine Fehlermeldung.
Ich habe schon etwas gegooglet, bin aber nicht wirklich schlauer. Hoffentlich drücke ich mich verständlich aus.
Soweit ich rausgefunden habe, muss man das Dateiobjekt eindeutig benennen. Das müsste dann etwa so aussehen.
Workbook("MeineDatei.xlsm").Worksheets("Einleitung").Range("A1") usw.
Muss man ein Workbook vorher noch aktivieren?
Ich dachte immer, dass "ThisWorkbook" auf das Objekt verweist, in dem der Code steht.
Muss ich das bei jeder Prozedur einzeln machen ?
Vielleicht hat jemand einen Link, wo für normal sterbliche verständlich, geschrieben steht, wie das mit dem referenzieren ist.
Danke, wenn Ihr ein paar Zeilen für einen verwirrten Kopf habt;-)
Viele Grüße und ein schönes Wocheende!
Judith

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datei eindeutig benennen in VBA-Code
09.03.2012 13:03:05
Martin
Hallo Judith,
deine Recherchen sind richtig. Du solltest in jedem Fall ThisWorkbook dem Workbook("MeineDatei.xlsm") bevorzugen, sonst dürfte die Datei ja niemals umbenannt werden. Das einfachste ist vermutlich wirklich wenn du ThisWorkbook.Activate zu Beginn des Makros schreibst.
Prinzipiell ist es nicht notwendig das Workbook zu aktivieren. Dann muss der Makrocode aber entsprechend immer auf die richtige Arbeitsmappe verweisen.
Beispiel:
Sub Beispiel()
With ThisWorkbook
With Worksheets("Tabelle1")
.Range("A1") = "Zelle A1 in Tabelle 1"
.Range("A2") = "Zelle A2 in Tabelle 1"
.Range("A3") = "Zelle A3 in Tabelle 1"
End With
With Worksheets("Tabelle2")
.Range("A1") = "Zelle A1 in Tabelle 2"
.Range("A2") = "Zelle A2 in Tabelle 2"
.Range("A3") = "Zelle A3 in Tabelle 2"
End With
End With
End Sub
Viele Grüße
Martin
Anzeige
Uppps, da ist mir ein Fehler unterlaufen...
09.03.2012 13:09:25
Martin
Hallo Judith,
bei mir hat der Punkt vor dem "Worksheets" noch gefehlt. Kurz zur Erklärung: Mit "With" kannst du immer auf das selbe Objekt verweisen (z.B. Arbeitsmappe, Tabelle, Zellle, usw.) ohne es immer neu schreiben zu müssen. Durch den Punkt vor dem "Worksheets" weiß Excel sofort, dass das Arbeitsblatt von der mit "With" bezeichneten Arbeitsmappe angesprochen werden soll.
Viele Grüße
Martin
Sub Beispiel()
With ThisWorkbook
With .Worksheets("Tabelle1")
.Range("A1") = "Zelle A1 in Tabelle 1"
.Range("A2") = "Zelle A2 in Tabelle 1"
.Range("A3") = "Zelle A3 in Tabelle 1"
End With
With .Worksheets("Tabelle2")
.Range("A1") = "Zelle A1 in Tabelle 2"
.Range("A2") = "Zelle A2 in Tabelle 2"
.Range("A3") = "Zelle A3 in Tabelle 2"
End With
End With
End Sub

Anzeige
AW: Uppps, da ist mir ein Fehler unterlaufen...
09.03.2012 17:59:13
Judith
Vielen Dank an alle für die hilfreichen Antworten und, vor allem auch, Eure Geduld!
Jetzt habe ich erst mal was zum Lesen, ich möchte schon fast meinen, dass ich mir zutraue, meinen Code eindeutig zu referenzieren.
@ Martin: Gut, dass Du den Punkt vergessen hast, jetzt habe ich es kapiert. Worksheets ist in der Objekthierarchie unter Workbook. Gelesen hatte ich das alles schon mal, nur eben nicht verstanden.
Ich wünsche Euch noch ein schönes Wochenende!
Gruß
Judith
AW: Datei eindeutig benennen in VBA-Code
09.03.2012 13:05:40
Rudi
Hallo,
Ich dachte immer, dass "ThisWorkbook" auf das Objekt verweist, in dem der Code steht.
Ist auch so.
Muss man ein Workbook vorher noch aktivieren?
Nein. Deshalb die Referenzierung.
Muss ich das bei jeder Prozedur einzeln machen ?
Ja. Um dir Tipparbeit zu sparen kannst du auch Objektvariablen deklarieren und/ oder With-Rahmen einsetzen.
Gruß
Rudi
Anzeige
AW: Leichte Kost zum Thema referenzieren..
10.03.2012 06:11:54
Judith
Hallo ransi,
der Link ist genial!
Judith

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige