Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: miau am April 23, 2014, 11:22:32 Vormittag

Titel: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: miau am April 23, 2014, 11:22:32 Vormittag
Hallo sehr geehrte User,

ich habe folgendes Problem: Ich benötige den Quellcode für ...

"Zellinhalt aus einem anderen Tabellenblatt als Name für das aktuelle Tabellenblatt".

Kurzer Hinweis zum Problem:
Ich habe in der Tabelle 1 eine Übersicht mehrer Produkte und möchte für die weiteren Tabellenblätter jeweils das Produkt als Tabellenblattname haben.

Da ich VBA-technisch eine Null bin benötige ich eure Hilfe. Am besten mir das so einfach wie möglich aufweisen, damit ich nur noch die gewünschte Zelle vom entsprechenden Tabellenblatt eingeben muss.

Da ich momentan auf der Arbeit bin und es ganz dringend ist, wäre ich euch sehr dankbar, wenn mir da jmd schnell helfen kann.

Vielen herzlichen Dank!!!
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: Officer am April 23, 2014, 11:36:30 Vormittag
Hallo,

mit folgendem VBA-Code werden ausgehend von einer Produkliste die neuen Tabellenblätter erzeugt und umbenannt.

Code: Visual Basic
  1. Sub Sheet_erzeugen()
  2.  
  3. '** Dimensionierung der Variablen
  4. Dim strName As String
  5.  
  6. '** Durchlaufen der 20 Produkte auf dem Blatt von Zeile 7 bis 26
  7. For a = 7 To 26 '##anpassen
  8.  
  9.   '** Blattname aus dem Bereich B7:B26 auslesen
  10.  strName = ThisWorkbook.Sheets("Produktübersicht").Cells(a, 2).Value '##anpassen
  11.  
  12.   '** Neues Blatt einfügen
  13.  Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
  14.  
  15.   '** Tabellenblattnamen ändern
  16.  ActiveSheet.Name = strName
  17.  
  18. Next a
  19. End Sub
  20.  

Du musst den Code nur noch an den mit '## gekennzeichneten 2 Stellen an deine Umgebung anpassen.

Zur Verdeutlichung habe ich auch noch das Beispiel als Excel-Datei beigefügt.

Officer
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: miau am April 23, 2014, 11:43:52 Vormittag
Boah super! Vielen Dank für die schnelle Hilfe!

Was mir eben aufgefallen ist:

Ich habe bereits meine 10 Tabellenblätter bereits erstellt, da ich nicht weiterkam.

Wie muss der Code dafür lauten, dass der Tabellenblattname der bereits erzeugten Blätter für die jeweiligen Produkte nur automatisch umbenannt werden?

Sprich:
In Tabelle1 sind meine Produktnamen aufgelistet (Übersichtsliste). Dahinter kommen dann einzelne Tabellenblätter für das entsprechende Produkt.
Jetzt möchte ich die Übersichtsliste dazu nutzen, dass ich lediglich vorne eine Eingabe tätige (sei es ein neues Produkt) und somit das entsprechende Tabellenblatt den Namen des neuen Produktes annimmt.

Ich entschuldige mich vorab schon vielmals für meine ggf. unhöfliche Art, nur ich stecke mega unter Zeitdruck :/

Danke!
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: Officer am April 23, 2014, 11:46:13 Vormittag
Ich würde die 10 Sheets wieder löschen und per VBA erzeugen lassen.

Da ich deinen Arbeitsmappenaufbau und Anzahl der Sheets nicht kenne, dürfte das der schnellste Weg sein

LG

Officer
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: miau am April 23, 2014, 11:48:17 Vormittag
Es sind genau 10 Sheets.

Alles andere ist zeitlich nicht mehr möglich.
Daher wäre mir sehr geholfen, wenn mir jmd. den Code für das Umbennen erzeugen könnte.

Danke!
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: Officer am April 23, 2014, 11:53:31 Vormittag
Hier der Code zum umbenennen der Blätter 2 bis 11 (10 Stück)
Auf dem ersten Blatt stehen die Produktnamen.

Code: Visual Basic
  1. Sub Sheet_umbenennen()
  2.  
  3. '** Dimensionierung der Variablen
  4. Dim strName As String
  5. Dim z As Long
  6.  
  7. z = 2 'Erstes Blatt das umbenannt werden soll
  8.  
  9. '** Durchlaufen der 10 Produkte auf dem Blatt von Zeile 7 bis 66
  10. For a = 7 To 16 '##anpassen
  11.  
  12.   '** Blattname aus dem Bereich B7:B16 auslesen
  13.  strName = ThisWorkbook.Sheets("Produktübersicht").Cells(a, 2).Value '##anpassen
  14.  
  15.   '** Tabellenblattnamen ändern
  16.  ThisWorkbook.Sheets(z).Name = strName
  17.  
  18.   '** Zähler erhöhen
  19.  z = z + 1
  20.  
  21. Next a
  22. End Sub
  23.  

Gruß

Officer
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: miau am April 23, 2014, 12:07:01 Nachmittag
Es funktioniert! Vieeeeeelen Dank!

Ich hätte da aber noch eine kleine Bitte:

Mir wird der Name, sobald ich diesen in Blatt1 einegegeben habe, nicht automatisch auf dem entsprechenden Tabellenblattname angezeigt. Hierfür muss ich auf das aktuelle Tabellenblatt klicken und die Entsprechende Zeile klicken, damit mir der Name als Tabellenblattname angezeigt wird.
Auf dem entsprechenden Tabellenblatt habe ich bereits eine Verlnüpfung mit Blatt 1 versehen. Die einzelnen Zehn Blätter können als Formulare angesehen werden, sodass auf jedem Blatt der entsprechende Produktname gezeigt wird.

Ist es also daher möglich, dass sobald ich die Eingabe im Blatt 1 tätige, sich automatisch das Tabellenblatt für das entsprechende Produkt aktualisiert ohne noch eine Eingabe oder dergleichen ätigen zu müssen?

Andernfalls kommt mir nur noch in den Sinn, den geänderten Tabellenblattname auf ein entsprechende Zelle im selbigen Tabellenblatt auszulesen.
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: miau am April 23, 2014, 12:11:40 Nachmittag
Alles ok!

Passt!

Super!!!
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: miau am April 23, 2014, 13:10:06 Nachmittag
Eine Frage kommt mir jetzt doch noch auf:

Warum erfolgt keine automatische Aktualisierung, sprich die Übernahme des Namen on time.
Ich müsste jetzt immer erst den VBA öffnen und dass dann aktualisieren lassen.

Danke! :)
Titel: Office 2010: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatt
Beitrag von: miau am April 30, 2014, 10:12:01 Vormittag
Hallo sehr geehrte Excel-User,

ich beziehe mich nochmal in diesem Thema auf die Lösung von 'Officer'.

Folgende Situation/ Problem liegt mir vor:

Meine Excel Datei besteht aus zwei Sheets.
Sheet 1) ist eine Übersicht mit Produkten und einer Bewertung der jeweiligen Produkte nach vier Kriterien (Qualität, Kosten, Preis, Rohstoff).
Sheet 2) ist ein Fix-Formular, auf welchen ein Button liegt, dass weitere Formulare erzeugt, wenn nötig und jedes erzeugte Formular (außer dem Fix-Formular) den Namen des Produktes, welches vorher idealerweise per Eingabefeld, erhalten soll. Zu beachten ist, dass Sheet 1) eine Übersicht aller Produkte mit den zugehörigen bewertenden Kriterien beeinhaltet. Ich denke die Schwierigkeit besteht hier, dass dynamisch erzeugte Formular (Produkt; Anzahl ungewiss) mit den entsprechenden zu bewertenden Kriterien im Übersichtsblatt (Sheet 1) zu verknüpfen.

Hätte da jmd. für mich eine Lösung?

Vielen Dank und viele Grüße
Miau
Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: Officer am April 30, 2014, 10:29:28 Vormittag
Hallo miau,

der Blattname wird von Excel standardmäßig natürlich nicht automatisch angepasst. Dazu ist folgender VBA-Code erforderlich.

Code: Visual Basic
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.  
  3. Dim BlattNr As Long
  4.  
  5. If Not Application.Intersect(Target, Range("B7:B16")) Is Nothing Then
  6.  
  7.   BlattNr = Target.Row - 5
  8.  
  9.   ThisWorkbook.Sheets(BlattNr).Name = Target.Value
  10.  
  11. End If
  12.  
  13. End Sub
  14.  

Damit der Code bei dem Ereignis Zelländerung ausgeführt wird, muss dieser in das Codemodul des entsprechenden Tabellenblattes eingefügt werden. Im Beispiel im Sheet "Produktübersicht", siehe auch die beigefügte Beispieldatei.

Gruß

Officer
Titel: Office 2010: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatt
Beitrag von: miau am Mai 05, 2014, 09:00:17 Vormittag
Guten Morgen!,

ich habe euch zur Verdeutlichung eine Version meines Problems angehängt.

TB1: Eingabemaske; TB2: Übersicht Bewertung; TB3: Bewertungsformular (hier bereits Formular Produkt Stahl ~ Standard Formular für alle Produkte).

Mein Wunsch ist es, dass wenn ich im TB1 in B11 ein neues Produkt (bsp.: Zinn) eingebe, dass ich das neue eingegebene Produkt im TB2 in B10 als auch ein neues Formular (ist 1zu1 mit Formular für das Produkt Stahl) erhalte. Das soll alles mit einer Eingabe in TB1 erfolgen. Da ich aber nicht weiß wie viele Produkte ich in TB1 aufnhemen werden, möchte ich, dass die Erzeugung jedes weiteren Formulars entsprechend der Eingabe erfolgt.

Jedes Produkt erhält im entsprehenden Formular eine Bewertung nach Kriterien, welche mit der bedingten Formatierung versehen ist (hier: keine bedingte Formatierung vorhanden; wird wahrscheinlich wie folgt sein: Wenn 1 und 1 und 1, dann Sehr schlecht (plus die entsprechende Hintergrundfarbe).
Jetzt möchte ich in diesem Punkt, dass wenn per Eingabe in TB1 ein neues Produkt eingegeben wird, dass ein neues Formular erzeugt wird + dass wenn die BEwertung dafür eingebeben worden ist, dass automatisch im TB2 die Bewertung übertrage wird. Selbstverständlich sollen alle notwendigen Information automatisch mit verknüpft werden.

So viel dazu.
Ist das grundsätzlich möglich? Kann mir da jemand weiterhelfen?

Vielen Dank!
Miau

Titel: Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
Beitrag von: miau am Mai 07, 2014, 16:18:23 Nachmittag
Hallo zusammen,

kann mir diesbezüglich keiner helfen?  :'(

Beste Grüße
miau