Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Frank,
Du weist schon wieder einem Objekt, dass Du als Blatt definiert hast, einen Bereich zu. Das klappt so nicht.
Wenn in B2 der Blattname steht und das Blatt schon existiert, dann so:
Code:
Set neuSheet = Sheets(Worksheets("Start").Range("b2").Value)
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo André
(29.07.2014, 19:27)schauan schrieb: ...
Code:
Set neuSheet = Sheets(Worksheets("Start").Range("b2").Value)
Das Tabellenblatt benennen klappt ja komischerweise, nur ...
, aktuell mit der oben genannten Zeile Laufzeitfehler "9"
Index ausserhalb des gültigen Bereichs
Worksheets("Mustervorlage").Range("A1:AK1").Copy neuSheet.Range("A1")
Die Daten werden bis dato nicht transferiert... aaaaaaarg
PS. öffne doch mal bitte die letzt eingestellte Datei
mfg
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Atilla,
danke für die Berichtigung, das habe ich in der Tat übersehen.
(28.07.2014, 21:58)atilla schrieb: Frank, den rot gekennzeichneten Ausdruck auch wie am Anfang der Zeile:
Worksheets("Start").Range("b2").text)
eigenlich hier:
Worksheets("Start").Range("b2").Value
da es ja ein Zelleintrag und keine Combo-oder Textbox ist.
Nicht unbedingt. Gebe mal einer Zelle das Zellformat 0000 und gebe zum Beispiel eine dreistellige Zahl ein und teste mal im Direktfenster folgendes
Code:
?ActiveCell.Value
?ActiveCell.Text
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Frank,
versuchs mal so
Code:
Set neuSheet = Worksheets(CStr(Worksheets("Start").Range("b2")))
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• WergibtmirRat
Registriert seit: 15.04.2014
Version(en): Office 2007
(29.07.2014, 19:51)Steffl schrieb: ...versuchs mal so...
Hallo Stefan,
macht ich sofort und berichte
(29.07.2014, 19:44)Steffl schrieb: ...
Code:
?ActiveCell.Value
?ActiveCell.Text
...
Warum ist der Code bei mir dann ohne
.value oder
.text sauber durchgelaufen.
Das versteh jetzt einer (ego)
mfg
Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo Stefan & André
ein dickes Lob an euch beide Kniffels
es funktioniert nun entlich. Mann o mann, wieder ein paar graue mehr am Kopf
Danke
mfg
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Stefan,
ich wusste nicht, was genau in der Zelle steht. In meinem zweiten Beitrag hatte ich auch am Ende
hinzugefügt, dass der Inhalt der Zelle B2 nicht geprüft wird.
Man kann es dann natürlich so machen, wie Du es aufgezeigt hat oder man kann auch das Format
mitgeben, so z.B:
Zitat:Set neuSheet = Format(Worksheets("Start").Range("b2").Value, "0000")
Gruß Atilla
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Atilla,
die Variable neuSheet ist vom Typ Worksheet. Dein Format liefert aber einen String zurück. Ich glaube nicht das es dann geht. Außerdem steht bei Frank in der Zelle B2 ein Datum, was für Excel eine Zahl ist.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Stefan,
doch, geht.
Diesmal habe ich einen kleinen Fehler drin.
So sollte es gehen (getestet mit Datum in der Zelle):
Zitat:Set neuSheet = Worksheets(Format(Worksheets("Start").Range("b2").Value, "DD.MM.YYYY"))
Deine Argumentation mit: "Format liefert String zurück", ist zwar richtig, aber bei Dir ist das
mit Cstr doch auch der Fall. Du hast es ja dann richtig mit Worksheets umrandet, was ich übersehen hatte.
Gruß Atilla
Registriert seit: 15.04.2014
Version(en): Office 2007
Hallo Stefan :100:, Atilla :100:
das da noch viel mehr Möglichkeiten gegeben sind, gibts gar nicht. Hät ich nicht gedacht.
Okay bin Neuling mit VBA. Man(n) lernt imma weida dazu, eben heftigst weiter lesen in den Thread's.
Habe unterdes auch weiter gemacht, meine Eingabe erfolgen nun auch nicht stupide in Tabellenblatt Tabelle1
Code:
Private Sub CmdEingabe_Click()
Dim wksEingabe As Worksheet
Dim intErsteLeereZeile As Long
Set wksEingabe = Worksheets(Txtdatum.Value) 'Tabelle1
With wksEingabe
zuerst generiere ich das Aktuelle Tagesdatumtabellenblatt, danach kann ich mit der Änderung direkt die Eingaben des Abends einpflegen.
Virtuell mal eben 'nen Humpen heben :15:
Great Excel :18: Prof's seit ihr.
mfg