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

andere Mappe Tabellenblatt mit Codename ansprechen

andere Mappe Tabellenblatt mit Codename ansprechen
Reinhard
Hallo Wissende,
ich habe gegoogelt, das hiesige Archiv benutzt und rumprobiert. Ergebnislos.
Bzw. Ergebnis ist, ich kam nicht weiter.
ich möchte mit einem direkten Befehl/Codezeile z.B. so
Workbooks("Mappe2").Tabelle3.Range("A1").Value="Huhu"
etwas in die Zelle eintragen, das geht so nicht.
Frage: Geht es überhaupt "direkt"?
Eine alternative Lösung mit einer For-Schleife alle Sheets in Mappe2 durchgehen und wenn
der Codename stimmt da was eintragen hab ich mir schon gebastelt.
Gruß ^Danke
Reinhard

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

Betreff
Benutzer
Anzeige
AW: andere Mappe Tabellenblatt mit Codename ansprechen
12.06.2012 06:52:43
Erich
Hi Reinhard,
Workbooks("Mappe2") gibt ein Workbook zurück.
Dahinter - nach dem Punkt - kann eine Eigenschaft oder eine Methode von Workbook stehen.
"Tabelle3" ist aber keine Eigenschaft von Workbook, sondern der Name eines Objekts.
"Sheets" dagegen ist eine Eigenschaft von Workbook.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
AW: andere Mappe Tabellenblatt mit Codename ansprechen
12.06.2012 07:07:03
Matthias
Hallo
Ich denke da fehlt auch das .xls
Workbooks("Zielmappe.xls").Sheets("Tabelle3").Range("A1").Value = "Hallo Reinhard"
Sonst kommt Laufzeitfehler9
Gruß Matthias
neue Mappe ansprechen
12.06.2012 07:22:37
Erich
Hi Matthias,
nein - da fehlt wohl das ".xls" doch nicht.
Leg mal (ob per Hand oder mit VBA, ist egal) eine neue Mappe an und schau dir deren Namen an.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
hab ich doch getestet ...
12.06.2012 07:59:54
Matthias
Hallo Erich
Hab ich doch getestet, sonst hätt ich es nicht geschrieben (ich teste eigentlich fast immer)
Ich habe eine Datei Zielmappe.xls angelegt (also auch bereits gespeichert-nach dem speichern geschlossen und neu geöffnet)
Aus der Datei MyMap1.xls starte ich aus einem Modul den Code.
Beide Dateien sind nun geöffnet.
Es kommt ohne .xls der Laufzeitfehler9 (XL2000 & XL2007).
jedoch mit .xls klappt es ohne Probleme.
Wobei Zielmappe.xls im gleichen Verzeichnis liegt und geöffnet ist.
Aber auch nach dem Verschieben von "Zielmappe.xls" klappt das einwandfrei.
Logischerweise beide Dateien in einer Instanz.
getestet mit XL2000 & XL2007
Gruß Matthias
Anzeige
ja aber...
12.06.2012 08:12:26
Erich
Hi Matthias,
leg mal (ob per Hand oder mit VBA, ist egal) eine neue Mappe an und schau dir deren Namen an,
ohne diese Mappe zu speichern.
Dann kannst du die in VBA mit Workbooks("Mappe3") o.ä. ansprechen - ohne ".xls".
(Ob sie später vielleicht mal eine xls, xlsx oder xlsm werden wird, weiß man ja noch gar nicht...)
Natürlich - bei einer bereits gespeicherten Mappe gehört die Endung (z. B. "xls") zum Dateinamen.
Das hast du getestet.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
getestet und ok ...
12.06.2012 09:01:53
Matthias
Hallo Erich
Habs getestet und es funktioniert natürlich so wie Du beschreibst auch.
Ich denke Reinhard hat sich eh mehr auf den CodeNamen der Tabelle bezogen.
Also warten wirs mal ab, bis er sich meldet.
Eine Alternativlösung hat er sich ja schon selbst gebastelt, wie er erwähnte.
Gruß Matthias
Anzeige
Geht es überhaupt "direkt"?
12.06.2012 09:06:24
Rudi
Hallo,
geht definitiv nicht.
Gruß
Rudi
Rückmeldung
12.06.2012 11:44:42
Reinhard
Hallo,
Rudi hat es auf den Punkt gebracht, das wollte ich wisen, ob es geht oder nicht.
Nur für das Archiv nachstehend mein Ersatzcode.
Im Objektkatalog blicke ich nicht so durch um daraus so eine Auskunft ablesen zu können wenn das ginge.
Bei der hiesigen Recherche stieß ich auf Code der in einer Schleife Excelnamen und Codenamen
über den Index anspricht, das ging mit .VBComponents.
Aus der Ecke hab ich evtl. auf einen Einzeiler gehofft.
Dem ist wohl nicht so, okay.
Danke für eure Hilfe(n).
Ja, Mappe2 ist eine ungespeicherte neue Mappe.
Gruß
Reinhard
Option Explicit
Sub Test()
Workbooks("Mappe2").Worksheets(TabellenIndex(Workbooks("Mappe2"), _
"Tabelle1")).Cells(1, 4).Value = "huhu"
End Sub
Function TabellenIndex(ByRef wkb As Workbook, ByVal strCodename As String) As Integer
Dim wks As Worksheet
For Each wks In wkb.Worksheets
If wks.CodeName = strCodename Then
TabellenIndex = wks.Index
Exit Function
End If
Next wks
End Function

Anzeige

97 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige