Sheet-Namen-Abfrage und wechsel

Hallo liebe Excelaner,

ich hab da ein kleines Problem.
Ich erstelle mittels VBA ein neues Sheet und lasse es über eine Eingabeaufforderung umbenennen.

Nun würde ich gerne, nach umbenennen, das Sheet davor auswählen, den Namen auslesen und ggfls. aus einer bestimmten Zelle einen Wert auslesen und diesen in dem neuen Sheet an bestimmter Stelle eintragen.

Das Sheet wird immer (!) als vorletztes eingefügt (das letzte ist nicht sichtbar).

Aufgrund einer generellen Beschränkung der Eingabemöglichkeiten (Sheet geschützt) möchte ich so die nötige „händische“ Eingabe der Verknüpfung umgehen.

Ich hoffe Ihr könnt mir da weiterhelfen.

Liebe Grüße
René

Hallo René

Ich habe Fragen zu Deinem Anliegen

Nun würde ich gerne, nach umbenennen, das Sheet davor
auswählen, den Namen auslesen

Was meinst Du, mit „Namen auslesen“? Du willst ja das dritt-letzte Sheet wählen; warum dann den Namen auslesen?

und ggfls. aus einer bestimmten Zelle einen Wert auslesen

Ist es immer die gleiche Zelle (also z. B. immer „A1“)? Oder ist es jeweils eine x-beliebige Stelle, die Du auswählen willst?

und diesen in dem neuen Sheet an bestimmter Stelle eintragen.

Hier die gleiche Frage: Ist die bestimmte Stelle immer die gleiche (also z. B. immer „A1“) oder immer wieder eine andere?

Und zum Schluss noch: Habe ich Dich richtig verstanden: Alle Sheets sind geschützt und müssen geschützt bleiben?

Grüsse Niclaus

Hihallo.

Erstmal Danke, dass Du Dich meiner Frage angenommen hast.

OK, beim Erstellen des neuen Sheets soll die „Verknüpfung“ auf das drittletzte greifen. Diese „Verknüpfung“ soll aber fest sein, also auch wenn weitere Sheets dahinter hinzugefügt werden.

Und ja, es sind jeweils immer die gleichen Zellen die ausgelesen bzw. beschrieben werden sollen

LG

René

Achja, und ja, die sollen geschützt bleiben.

Folgender Hintergrund:
Mit der Arbeitsmappe arbeiten mehrere Personen.
Damit die Mappe, die mit Formeln und Makros vollgestopft ist^^, nicht von Anderen ausversehen zerschossen wird, sind lediglich die Zellen zur Bearbeitung freigegeben, welche durch die Personen bearbeitet werden sollen.

Danker nochmal

Hallo nochmal mit einem Nachtrag

Vielleicht wäre das ein Ansatz:

Eine Funktion zu programmieren, die auf das vorherige Sheet die Zelle G37 übernimmt.

Somit wäre die stetige Aktualisierung sowie das Problem des „Sheet auslesen“ erledigt.

Stoppt mich bitte, wenn ich da nen unmöglichen Ansatz habe…

)

Hallo Rene,

ich bin mir nicht sicher, in welche Richtung kopiert werden soll Unten die Lösungen kopieren aus dem drittletzten Blatt.

Wenn der Wert kopiert werden soll:
'Zelle anpassen!
Sheets(Sheets.Count).Cells(1, 1) = Sheets(Sheets.Count - 2).Cells(1, 1)

Ansonsten
Dim name As String
name = Sheets(ActiveWorkbook.Sheets.Count).name
'Zellen anpassen, auch der Formel!
Sheets(Sheets.Count - 2).Cells(1, 1).Formula = „=“ & name & „!A1“

Wie gesagt, von links nach rechts oder rechts nach links ist mir nicht klar…

fg

Dirk.P

Eine Funktion zu programmieren, die auf das vorherige Sheet
die Zelle G37 übernimmt.

Hallo René

Ich hoffe, ich habe Dich richtig verstanden. In Deiner neuen (= zweitletzten) Tabelle soll in G37 eine Formel stehen, die sich auf G37 Deiner vorherigen (= drittletzten) Tabelle bezieht.

Das geht folgendermassen:

shc = ActiveWorkbook.Sheets.Count
TabName = ActiveWorkbook.Sheets(shc - 2).Name

With Sheets(shc - 1)
.Protect UserInterfaceonly:=True
.Range("G37").Formula = "=" & TabName & "!G37"
End With

Du kannst diese Zeilen in Dein Makro einfügen, mit dem Du das neue (= zweitletzte) Tabellenblatt erstellst, oder in einem separaten Makro ausführen.

UserInterfaceonly:=True lässt zu, dass über ein Makro auch in geschützten Tabellen Einträge gemacht werden können. Für den allgemeinen Gebrauch bleibt die Tabellen geschützt.

Stoppt mich bitte, wenn ich da nen unmöglichen Ansatz habe…

Unmöglich ist (für Fachleute, zu denen ich mich keinesfalls zähle) fast nichts mit VBA - nur wenn ganz genaue Angaben fehlen, wird’s problematisch.

Grüsse Niclaus

1 Like

PERFEKT!

Danke Dir - das war genau das was ich gesucht hatte! :smile:

LG

René