Collapse column

Autor Thema: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte  (Gelesen 5316 mal)

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
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!!!

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
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
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
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!

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
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
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
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!

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
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
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
« Antwort #6 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.

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
« Antwort #7 am: April 23, 2014, 12:11:40 Nachmittag »
Alles ok!

Passt!

Super!!!

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
« Antwort #8 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! :)

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
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

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
Antw: Zellinhalt aus einem anderen Tabellenblatt als Name des aktuellen Tabellenblatte
« Antwort #10 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
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
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


Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline miau

  • Newbie
  • *
  • Beiträge: 11
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Hallo zusammen,

kann mir diesbezüglich keiner helfen?  :'(

Beste Grüße
miau

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.