Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

If Not BlattExists - zuweisung nicht aus einer UF-Box sondern Zelle B2 Dropdown
#11
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)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • WergibtmirRat
Antworten Top
#12
Hallo André
(29.07.2014, 18: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
Antworten Top
#13
Hallo Atilla,

danke für die Berichtigung, das habe ich in der Tat übersehen.

(28.07.2014, 20: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
Antworten Top
#14
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:
  • WergibtmirRat
Antworten Top
#15
(29.07.2014, 18:51)Steffl schrieb: ...versuchs mal so...
Hallo Stefan,
macht ich sofort und berichte


(29.07.2014, 18: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
Antworten Top
#16
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
Antworten Top
#17
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
Antworten Top
#18
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
Antworten Top
#19
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
Antworten Top
#20
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste