Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblatt finden anhand Nameneingabe in Zelle

Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 12:08:11
Andrea
Hallo an euch alle,
ein wunderschöner Tag heute und ihr sitzt alle vor dem Computer. Ich auch, mit folgendem Problem:
In aktuellem Blatt habe ich in row 1:1 Daten die ich an eine Variable übergeben möchte, wobei in Zelle „B1“ der „genaue Name des Blattes“ steht (aus dem die Daten ursprunglich kommen),
hier hin soll auch diese „ganze Zeile“ aus meinem aktuellen Blatt wieder eingefügt werden.
Ich kann jeden TabellenNamen step by step ins makro einfügen, vergleichen etc.
Ich werde es gerne aber unabhängig lösen um nicht immer das makro ändern zu müssen, falls ein neues Blatt dazu kommt.
Danke
Andrea
Bsp:
Mehrere Blätter mit Namen: Blatt A, Blatt B, etc
in meinem aktulellem Blatt derren Name sich nach jeder Schleife ändert (z.B. Suche_02.03.05_180216)
stehen in der ersten Row (1:1) folgende Angaben (nach dem Muster A1/B1/C1..):
/ /Blatt B / SONOTRONIC xxxx / SONOTRONIC / Nagxxx / Bexxx.......etc
das makro soll mir bitte die zweite Zelle meines aktuellen Blattes mit allen vorhandenen Tabellenblätter
vergleichen und falls die Angaben in "B1" mit ingerdeinem "TabellenBlatt" übereinstimmen, die Daten dahin übertragen. Falls nicht, die Daten stehen lassen.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 16:05:17
Martin
Hallo Andrea,
versuch's mal hiermit (ungetestet):

Sub Blatt_finden()
For i = 1 To Worksheets.Count
If ActiveSheet.Range("B1").Value = Worksheets(i).Name Then
ActiveSheet.Rows(1).Copy Destination:=Worksheets(i).Range("A1")
End If
Exit For
Next i
End Sub

Kopiert wird in die Zelle A1 der Zieltabelle. Mußt Du ggf. anpassen.
Gruß
Martin Beck
Anzeige
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 16:43:59
Andrea
Leider kommt die Meldung "Keine Zellen gefunden"
Ich habe nochmals alles kontrolliert
in B1 findet sich ein Name von ingerdeinem vorhandenem Tabellenblatt in meiner Datei,
Die Ziel-Zellen in Zeile 1 sind leer,
das makro springt nicht mal zu gesuchten Tabelle.
Allerdings sehen die BlattNamen so aus: broschueren_finance.xls
kann sich da eine Hürde verbergen? Ich gehe nicht davon aus - es sollte doch kein Einfluß haben, werde es aber gleich nochmals überprüfen.
Vielecht fällt dir noch was ein! Ich werde sehr dankbar dieses lösen zu können.
Andrea
Anzeige
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 16:49:22
Martin
Hallo Andrea,
lade mal die Datei hoch.
Gruß
Martin Beck
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 16:52:11
Andrea
ok, gleich,
ich muss sie nur etwas kurzen
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 17:11:57
Andrea
Das Blatt "Suche_03.03.05_161333" ist mein aktives Blatt, wo sich die Daten, die ich zurück in Ursprungsblätter einfügen will befinden.
LG Andrea
Anzeige
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 17:59:39
Martin
Hallo Andrea,
das Exit For war an der falschen Stelle.

Sub Makro2()
For I = 1 To Worksheets.Count
If ActiveSheet.Range("B1") = Worksheets(I).Name Then
ActiveSheet.Rows(1).Copy Destination:=Worksheets(I).Range("A1")
Exit For
End If
Next I
End Sub

Gruß
Martin Beck
Anzeige
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
03.03.2005 18:15:01
Andrea
Leider die gleiche Fehlermeldung wie vorher.
Tut mir echt Leid.
Ich muss leider ab und bin dann morgen früh wieder am Kopfbrechen.
bisher vielen Dank für die Mühe, hat sich auch keiner so richtig getraut das Problem anzustossen!
Bis morgen.
Andrea
AW: Tabellenblatt finden anhand Nameneingabe in Zelle
04.03.2005 11:14:04
Andrea
Hi Martin,
sorry es funktioniert blendend ( mindestens mit einfachen Tab.), nur ich habe in der Eile nicht gemerkt, dass es bei dir kopiert anstatt ausgeschnitten wird, wie ich es in der Fragestellung angegeben habe.
Also für die, die dann mal recherchieren - nach Then anstatt copy einfach Cut eintragen.
ActiveSheet.Rows(1).Copy Destination:=Worksheets(I).Range("A1")
>ActiveSheet.Rows(1).Cut Destination:=Worksheets(I).Range("A1") jetzt bin ich zufrieden.
Nochmals dicken Dank
LG
Andrea
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt anhand Nameneingabe in Zelle finden


Schritt-für-Schritt-Anleitung

Um den Namen eines Excel-Arbeitsblatts aus einer Zelle zu holen und die Daten dorthin zu übertragen, kannst du das folgende VBA-Makro verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub Blatt_finden()
       For I = 1 To Worksheets.Count
           If ActiveSheet.Range("B1").Value = Worksheets(I).Name Then
               ActiveSheet.Rows(1).Cut Destination:=Worksheets(I).Range("A1")
               Exit For
           End If
       Next I
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Setze den Namen des gewünschten Tabellenblatts in die Zelle B1 deines aktuellen Blattes.

  6. Führe das Makro aus, um die Zeile 1 in das angegebene Tabellenblatt zu übertragen.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Keine Zellen gefunden"

    • Stelle sicher, dass in B1 der genaue Name des Tabellenblattes steht. Überprüfe auf Tippfehler oder Leerzeichen.
  • Makro springt nicht zur gesuchten Tabelle

    • Achte darauf, dass das aktive Blatt das richtige ist und sich der Tabellenname in der ersten Zeile befindet.
  • Das Makro kopiert anstelle von ausschneiden

    • Ändere Copy in Cut im Code, um die Zeile auszuschneiden, wie in der ursprünglichen Anfrage gewünscht.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, gibt es auch andere Möglichkeiten:

  • SVERWEIS: Du kannst die Excel-Funktion SVERWEIS nutzen, um Daten basierend auf einem Suchkriterium zu finden. Diese Methode ist jedoch nicht so flexibel wie das VBA-Makro.

  • Hyperlinks: Erstelle Hyperlinks in einer Zelle, die auf die entsprechenden Arbeitsblätter verweisen. Dies ist nützlich, wenn du schnell zwischen Tabellenblättern navigieren möchtest.


Praktische Beispiele

Angenommen, du hast folgende Tabellenblätter in deiner Excel-Datei:

  • Blatt A
  • Blatt B
  • Blatt C

Wenn in deinem aktuellen Blatt B1 den Text "Blatt B" enthält, wird beim Ausführen des Makros die gesamte Zeile 1 in die Zelle A1 von "Blatt B" verschoben. Dies ist besonders nützlich, wenn du regelmäßig Daten zwischen verschiedenen Arbeitsblättern hin- und herbewegen musst.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Dokumentiere deinen Code mit Kommentaren, um zukünftige Anpassungen zu erleichtern.

  • Teste dein Makro zuerst in einer Kopie deiner Excel-Datei, um Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich den Namen eines Arbeitsblatts in einer Zelle anzeigen? Du kannst die Funktion =ZELLE("filename") verwenden, um den Namen des aktuellen Arbeitsblatts in einer Zelle anzuzeigen.

2. Kann ich das Makro anpassen, um mehrere Zeilen zu übertragen? Ja, du kannst die Zeile im Code anpassen, um mehrere Zeilen zu übertragen, indem du eine Schleife einfügst, die die gewünschten Zeilen durchläuft.

3. Funktioniert das Makro in allen Excel-Versionen? Das VBA-Makro sollte in allen modernen Excel-Versionen (wie Excel 2010, 2013, 2016, 2019 und Excel 365) funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige