Microsoft Excel

Herbers Excel/VBA-Archiv

Wert einer Zelle in Blatt mit diesem Zellennamen


Betrifft: Wert einer Zelle in Blatt mit diesem Zellennamen von: volkmar
Geschrieben am: 12.09.2019 18:02:58

Hallo zusammen,
Ich habe auf TabBlatt 1 in den Zellen A1 bis A8 Werte eingetragen. Ich hätte nun gern die Zeile in ein bestehendes TabBlatt kopiert, das den Namen der Zelle A1 aus TabBlatt 1 hat. Da noch mehrere Zeilen in ein gleiches Blatt kopiert werden können, müsste die neue Zeile im TabBlatt XY nach dem einfügen 1 Zeile tiefer rutschen, um wieder Platz für eine etwaig folgende Zeile zu bekommen.

Ich hoffe, das war einigermaßen verständlich... und jemand hätte eine Lösung für mich.
Warum mache ich das nicht einfach mit copy&paste? Weil es sehr viele TabBlätter sind und man länger scrollen müsste.

Im Voraus vielen Dank und beste Grüße
V.

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712747.html
Geschrieben am: 12.09.2019 18:17:33

Hi,
bau doch bitte mal eine Beispieldatei, in der Du Dein Ziel zeigst. So kann man (ich zumindest) mir das nicht richtig vorstellen.

Gruß
Regina

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712787.html
Geschrieben am: 13.09.2019 07:53:11

Hallo Regina,
vielen Dank für Deine Antwort, anbei ein Beispiel mit dem es hoffentlich etwas verständlicher wird.
Gruß
Volkmar

https://www.herber.de/bbs/user/132015.xlsx

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712789.html
Geschrieben am: 13.09.2019 08:09:34

Moin,
Rückfrage:
steht in Eingabe immer nur eine Zeile, oder ist das eine Liste, die abgearbeitet werden soll?

Gruß
Regina

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712795.html
Geschrieben am: 13.09.2019 08:28:04

Die Zeile bleibt stehen... ist also immer diese eine Zeile (2), die kopiert werden soll.
Den Inhalt der Zeile lasse ich nach dem kopieren dann auf dem Eingabeblatt nach unten rutschen, um dann dort auch eine Tabelle zu haben.
Zum Verständnis: Das wird ein Tätigkeitsnachweis. Ich habe ca. 100 Objekte (sind eigentlich soviel Tabellenblätter möglich?) Auf der Eingabeseite werden die täglichen Arbeiten der verschiedenen Objekte eingetragen, so weiß ich täglich, bei welchem Objekt etwas gemacht werden muss. Auf den anderen Tabellenblättern habe ich dann den Nachweis der einzelnen Objekte, was an welchem Datum gemacht wurde. Natürlich könnte ich alles nur auf dem Eingabe-Blatt lassen und mit Filtern arbeiten, aber dann würde die Liste zu lang und auf den einzelnen Objekt-Blättern könnte ich noch weitere Informationen, wie Kontaktdaten, Bemerkungen, usw. speichern.

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712799.html
Geschrieben am: 13.09.2019 08:47:57

... dann sollte das so funktionieren:

Public Sub Uebetrage()
       Dim str_blattname As String
       Dim lng_zeile As Long
       Dim lng_letzte_zeile As Long
       
       lng_zeile = ActiveCell.Row
       str_blattname = Worksheets("Eingabe").Cells(lng_zeile, 1)
       lng_letzte_zeile = Worksheets(str_blattname).Cells(Rows.Count, 1).End(xlUp).Row + 1
       
       Worksheets("Eingabe").Range("A" & lng_zeile & ":G" & lng_zeile).Copy _
           Worksheets(str_blattname).Range("A" & lng_letzte_zeile)
           
       End Sub
In einer Exceldatei sind meines Wissens 255 Tabellenblätter möglich, das macht dann aber von der Performance her keinen Spaß mehr.
Du solltest mal darüber nachdenken, ob das Ganze nich tin einer datenbank (z.B. Access) besser aufgehoben wäre).

Gruß
Regina
  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712804.html
Geschrieben am: 13.09.2019 08:56:41

Hi, habe die leere zeile vertgessen:

Public Sub Uebetrage()
      Dim str_blattname As String
      Dim lng_zeile As Long
      Dim lng_letzte_zeile As Long
      
      lng_zeile = ActiveCell.Row
      str_blattname = Worksheets("Eingabe").Cells(lng_zeile, 1)
      lng_letzte_zeile = 2
      
      Worksheets("Eingabe").Range("A" & lng_zeile & ":G" & lng_zeile).Copy _
          Worksheets(str_blattname).Range("A" & lng_letzte_zeile)
      
      Worksheets(str_blattname).Rows(2).Insert
      
      Worksheets(str_blattname).Rows(2).Interior.Color = xlNone
          
      End Sub

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712882.html
Geschrieben am: 13.09.2019 12:44:05

Ich bekomme leider eine Fehlermeldung: Laufzeitfehler 9, Index außerhalb des gültigen Bereichs. Muss ich da noch was ändern?

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712894.html
Geschrieben am: 13.09.2019 13:14:03

Leider immer noch der gleiche Fehler...

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712900.html
Geschrieben am: 13.09.2019 13:22:36

Hi, der Code ght davon aus, das der Cursor in der Zeile steht, in die sich die daten für den Übertrag befinden, also: Tabellenblatt "Eingabe" , Zeile 2. Du kannst aber auch

lng_zeile = Activecell.Row

ersetzen durch

lng_zeile = 2

Ich hatt anfänglich gedacht, dassdie jeweils aktuelle Zeile (angeklickte Zeile) übetragen werden soll. Wenn es immer die Zeile 2 ist, passt die zweite Variante besser.


Gruß
Regina

  

Betrifft: AW: Wert einer Zelle in Blatt mit diesem Zellennamen von: 1712907.html
Geschrieben am: 13.09.2019 13:40:01

... jetzt hat es gefunzt. Vielen Dank... vor allen Dingen für die rasche Beantwortung jedesmal.
Schönes Wochenende.
LG V.

  

Betrifft: Laufzeitfehler 9 = falscher Tabellenblattname von: 1712904.html
Geschrieben am: 13.09.2019 13:31:19

Hi
prüf mal, ob da auch der richtige Tabellenblattname in der referenzierten Zelle steht

str_blattname = Worksheets("Eingabe").Cells(lng_zeile, 1)

ein bisschen seltsam ist, dass du im aktiven Blatt die Zeile bestimmst, aus der der Blattname gelesen werden soll, diesen aber aus dem Blatt "Eingabe" ausliest, welches nicht das aktive sein muss.
dh. du wählst das Zieltabellenblatt blind aus, das birgt natürlich ein gewisses Risiko.
Gruß Daniel
  

Betrifft: AW: Laufzeitfehler 9 = falscher Tabellenblattname von: 1712906.html
Geschrieben am: 13.09.2019 13:39:06

Hi Daniel,
der Code stammt von mir. Da hast Du mit Deiner Anmerkung natürlich recht. War etwas "kurz gesprungen". Bin davon ausgegangen, dass später ein Button auf dem Sheet "Eingabe" den Code startet.

Gruß
Regina

Beiträge aus dem Excel-Forum zum Thema "Wert einer Zelle in Blatt mit diesem Zellennamen "