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
1468to1472
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

Zelle kopieren, wenn Tabellenname unbekannt

Zelle kopieren, wenn Tabellenname unbekannt
21.01.2016 15:35:40
Laura
Hallo zusammen,
ich habe letzt hier wunderbare Hilfe bekommen.
Ich erzeuge aus einer Liste neue Tabellenblätter, die den Namen aus der Liste übernehmen.
Jetzt würde ich gerne aus den neuen Blättern eine Zelle in mein "Übersichtstabelle" kopieren.
Ich bekomme das auch hin, sobald ich weiß wie das Tabellenblatt heißt - aber das erzeuge ich ja erst.
Wie schaffe ich das, wenn ich nicht weiß wie mein Tabellenblatt heißen wird?
Michael hatte mir diese Datei zur Verfügung gestellt.
https://www.herber.de/bbs/user/102724.xlsm
Vielen Dank!

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle kopieren, wenn Tabellenname unbekannt
21.01.2016 16:14:36
Michael
Hallo Laura!
Jetzt würde ich gerne aus den neuen Blättern eine Zelle in mein "Übersichtstabelle" kopieren.
Und welche Zelle genau soll das jeweils sein... Und WOHIN in die Übersichtstabelle soll die?
LG
Michael

AW: Zelle kopieren, wenn Tabellenname unbekannt
21.01.2016 16:26:05
Laura
Hallo Michael :)
Zelle wäre B21. Und die möchte ich jeweils in meiner "Ideenliste" haben.
Also B21 von Tabellenblatt "Idee A" - in der "Ideenliste" in die gleiche Zeile wie "Idee A" - möglichst um zwei Spalten versetzt. Also im Beispiel dann C3.
B21 von "Idee B" - dann C4 auf "Ideenliste" usw.
lg

AW: Zelle kopieren, wenn Tabellenname unbekannt
21.01.2016 16:42:37
Michael
Hallo Laura!
Hier zum Testen: https://www.herber.de/bbs/user/102943.xlsm
Hab hier in die Vorlage in B21 einfach irgendwas zum Testen reingeschrieben.
Die Ergänzung im Code ist kommentiert - damit Du siehst wie B21 aus der jeweils kopierten Vorlage übernommen wird.
Passt?
LG
Michael

Anzeige
AW: Zelle kopieren, wenn Tabellenname unbekannt
21.01.2016 17:04:20
Laura
Hey,
Dankeschön!
funktioniert gut soweit - nur wenn ich jetzt die Ideen verschiebe - also "Idee C" an die erste Stelle stelle funktioniert es nicht mehr.
lg

AW: Zelle kopieren, wenn Tabellenname unbekannt
21.01.2016 17:22:17
Michael
Hallo!
?
nur wenn ich jetzt die Ideen verschiebe
Können wir uns auf eine andere Begrifflichkeit einigen? Denn so ist es für mich schwer nachzuvollziehen, was passieren soll bzw. was tatsächlich passiert oder nicht passiert.
Damit wir vom Gleichen sprechen:
- Du schreibst in Blatt [Ideenliste] ab A3 irgendwelche Texte (nehme ich an)
- Nach Klick auf die Schaltfläche geht das Makro diese Liste Element für Element durch und
- prüft ob im Zelltext Zeichen vorkommen, die als Blattname nicht erlaubt sind (und entfernt diese)
- prüft ob bereits ein Blatt mit diesem Namen existiert; falls nicht
- wird das Blatt [Vorlage] hinter das jeweils letzte Tabellenblatt kopiert wobei
- als Blattname der jeweilige Text der Zelle aus Blatt [Ideenliste] verwendet wird
- und die Zelle [B21] des gerade erstellten Tabellenblattes (= Kopie von [Vorlage]) wird im Blatt [Ideenliste] zwei Zellen rechts jener Zelle, die gerade als Namensgeber fungiert, ausgegeben.
Damit ist der Vorgang abgeschlossen. Du schreibst
also "Idee C" an die erste Stelle stelle funktioniert es nicht mehr
Was bedeutet das? Verschiebst Du die [Tabellenblätter] und möchtest, dass sich deren Wert aus [B21] in der Ideenliste automatisch aktualisiert (weil in [B21] eine Formel steht)? Oder verschiebst Du innerhalb des Blattes [Ideenliste] die bereits eingetragenen Zeilen?
LG
Michael

Anzeige
AW: Zelle kopieren, wenn Tabellenname unbekannt
21.01.2016 19:14:07
Laura
Hey Michael,
entschuldige - das war wirklich etwas blöd ausgedrückt.
Du hast exakt wiedergegeben was ich haben möchte.
Zur Erklärung für [B21] - hier steht jeweils ein Status. Dieser ist per Drop-Down-Menü auswählbar.
Diesen möchte ich zur jeweiligen Idee auch auf dem Blatt [Ideenliste] zur Übersicht darstellen.(wie du beschrieben hast)
Dann wäre es schön wenn man,(eventuell auch durch eine erneute Schaltfläche) diesen Status aktualisieren kann, sollte dieser in den einzelnen Tabellenblättern verändert werden.
Was ich mit dem verschieben meinte:
Das sichergestellt ist, dass [B21] des jeweiligen Tabellenblattes immer in der Zeile auf [Ideenliste] ausgegeben wird in der sich auch die namensgebende Zelle befindet.
Auch wenn sich die Reihenfolge der Texte in [Ideenliste] Spalte A ändern sollte.
Ich hoffe so war es ein wenig verständlicher.
lg Laura

Anzeige
AW: Okay, alles klar, reiche ich morgen nach...
21.01.2016 21:24:30
Michael
Laura,
... Bin heute nicht mehr vor der Maschine!
Lg
Michael

AW: Erweiterte Version...
22.01.2016 12:41:09
Michael
Hallo Laura!
Sorry, hatte heute viel zu tun. Hier die angepasste Variante: https://www.herber.de/bbs/user/102958.xlsm
So wird nun in der [Ideenliste] zwei Zellen rechts von der Idee ein Verweis auf Zelle B21 des jeweiligen Ideen-Blattes gesetzt; solltest Du die Liste umsortieren, bleibt der Verweis aktuell.
Passt?
LG
Michael

AW: Erweiterte Version...
22.01.2016 13:21:29
Laura
Hallo Michael!
Vielen lieben Dank für deine Mühe - so habe ich es mir vorgestellt!! :). Tausend Dank Dir!
Eine Anfängerfrage noch- woher weiß er denn im Code was "Idee" ist ?

Anzeige
AW: Danke für die Rückmelung + Erläuterungen...
22.01.2016 13:42:00
Michael
Hallo Laura!
Hier der Code nochmal in kommentierter Durchschau
Sub Idee()
Dim Liste As Range ' Einen Zellbereich für alle "Ideen" definieren"
Dim Idee As Range ' Eine einzelne Zelle
Dim BlattName As String ' Eine Variable für den Blattnamen (s.u.)
' Wo stehen die "Ideen", d.h. jene Zellen in die Du Texte (= Ideen) schreibst
' Hier: Die Ideenliste ist im Tabellenblatt mit Namen "Ideenliste" zu finden,
' ab Zelle A3 bis zur letzten gefüllten Zelle in A:A (damit bleibt die Länge
' der Liste dynamisch -->
With Worksheets("Ideenliste")
Set Liste = .Range("A3:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With
' Während des Makros stellen wir die Bildschirmaktualisierung sowie
' die automatische Formelberechnung aus (bessere Performance, kein Bildschirm-
' flackern... -->
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
' Wir gehen nun jedes Element der "Ideenliste", d.h. jede einzelne Zelle des
' Zellbereichs "Liste" (wie oben definiert in Blatt Ideenliste, von A3 bis Ax),
' durch und
'   - übergeben den jeweiligen Zell-Text an die Funktion "NamenSauber" (diese
' Funktion ist ein eigenes "Makro" siehe weiter unten im Code)
'       - die Funktion NamenSauber entfernt folgende Zeichen aus dem Zell-Text,
'         sofern sie vorhanden sind: : / \ ? * [ ] - Diese Zeichen sind in Blatt
'         Namen nicht erlaubt
'   - danach prüfen wir mit der Funktion "BlattExistiert" (siehe weiter unten im Code)
'     ob es schon ein Tabellenblatt mit diesem Namen gibt
'       - wenn ja, passiert nichts
'       - wenn nein wird das Tabellenblatt "Vorlage" ans Ende der Mappe kopiert (hinter
'         das letzte Tabellenblatt
'       - durch den Kopiervorgang wird das nun neue Tabellenblatt zum "aktiven Blatt",
'   - d.h. wir setzen den Namen des aktiven Blattes gleich dem Inhalt der jeweiligen Ideen-
'     Zelle (bzw. der Variablen BlattName)
For Each Idee In Liste
BlattName = NamenSauber(Idee.Text)
If Not BlattExistiert(BlattName) And Sheets.Count 
' in der o.a. Prozedur wird daher "nichts" passieren.
For Each ws In ThisWorkbook.Worksheets
If ws.Name = BlattName Then
BlattExistiert = True
Exit Function
End If
Next
End Function
Function NamenSauber(BlattName As String) As String
' Den Zelltext auf max. 31 Zeichen kürzen (länger ist für
' Tabellen-Blätter nicht erlaubt
If Len(BlattName) > 31 Then BlattName = Left(BlattName, 31)
' Die Sonderzeichen " : / \ ? * [ ] " aus dem Zellinhalt entfernen
BlattName = Replace(BlattName, ":", "")
BlattName = Replace(BlattName, "\", "")
BlattName = Replace(BlattName, "/", "")
BlattName = Replace(BlattName, "?", "")
BlattName = Replace(BlattName, "*", "")
BlattName = Replace(BlattName, "[", "")
BlattName = Replace(BlattName, "]", "")
NamenSauber = BlattName
End Function
Schönes Wochenende und LG
Michael

Anzeige
AW: Danke für die Rückmelung + Erläuterungen...
22.01.2016 13:47:14
Laura
Super, das ist ja der Wahnsinn :)
Vielen Dank - da werde jetzt sogar ich schlauer draus!
Schönes Wochenende!

AW: Gerne! Danke für die Rückmeldung, schönes WE
22.01.2016 14:30:21
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige