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

Forumthread: Daten von einem Tabellenblatt ins andere übertrage

Daten von einem Tabellenblatt ins andere übertrage
einem
Hallo Leute!
Ich möchte gerne Daten in eine fortlaufende Liste übertragen.
Dateneingabe: In einem Tabellenblatt sollen in bestimmte Zellen(welche das sind ist egal) Daten
eingegeben bzw ausgewählt werden können
Dies ist lediglich meine Idee der Dateneingabe, falls es einfachere Lösungen gibt bin ich da natürlich für alles offen.
Mittels Makro möchte ich dann gerne diese eingegebenen Daten in ein zweites Tabellenblatt übertragen. Per Knopfdruck sollen die Daten aus Tabellenblatt 1 in Tabellenblatt 2 übertragen und in eine fortlaufende Liste(damit meine ich jede Dateneingabe in eine neue Zeile zu schreiben) übertragen werden.
Vlt gab es etwas ähnliches ja schon mal hier im Forum.
Ich hoffe ich konnte euch das Problem präzise genug schildern und bin für jede Hilfe dankbar!!
Anzeige
AW: Daten von einem Tabellenblatt ins andere übertrage
16.07.2012 16:28:58
einem
Hallo Dominic,
ein Makro für die Datenübertragung aus einem Eingabeblatt in eine fortlaufende List sieht wie folgt aus.
Die Namen der Tabellenblätter und die Zellen im Eingabeblatt muss du natürlich anpassen.
Den Code fügst du in eine allgemeines VBA-Modul der Datei.
Im Eingabeblatt fügst du eine Schaltfläche aus den Formular-Steuerelementen ein. Dieser Schaltfläche weist du das Makro zu.
Gruß
Franz
'Code in einem alllgemeinen Modul der Datei.
Sub Eingabe_in_Liste_eintragen()
Dim wksEingabe As Worksheet
Dim wksListe As Worksheet
Dim lngZeile As Long, rngZelle As Range
Set wksEingabe = Worksheets("Eingabe")  'Eingabetabellenblatt
Set wksListe = Worksheets("Liste")      'Tabellenblatt in das die Daten geschrieben werden  _
sollen
With wksListe
'nächste freie Zeile in Liste
Set rngZelle = .Cells.Find(What:="*", after:=.Range("A1"), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious)
If rngZelle Is Nothing Then
lngZeile = 1
Else
lngZeile = rngZelle.Row + 1
End If
.Cells(lngZeile, 1).Value = wksEingabe.Range("B3")
.Cells(lngZeile, 2).Value = wksEingabe.Range("B5")
.Cells(lngZeile, 3).Value = wksEingabe.Range("E6")
.Cells(lngZeile, 4).Value = wksEingabe.Range("B10")
.Cells(lngZeile, 5).Value = wksEingabe.Range("E10")
'usw.
End With
End Sub

Anzeige
AW: Daten von einem Tabellenblatt ins andere übertrage
16.07.2012 20:33:39
einem
Hallo Franz!
Herzlichen Dank für deine Hilfe, genau das, wonach ich gesucht habe!!
Noch eine ergänzende Frage: Ist es möglich, jede Zeile automatisch mit jeder Dateneingabe fortlaufend zu nummerieren?
Grüße Dominic
AW: Daten von einem Tabellenblatt ins andere übertrage
16.07.2012 21:05:25
einem
Hallo Dominic,
automatische Nummerierung ist kein Problem.
Gruß
Franz
    'Spalte A - automatisch Nummerieren
.Cells(lngZeile, 1).Value = Application.WorksheetFunction.Max(.Columns(1)) + 1
.Cells(lngZeile, 2).Value = wksEingabe.Range("B3")
.Cells(lngZeile, 3).Value = wksEingabe.Range("B5")
.Cells(lngZeile, 4).Value = wksEingabe.Range("E6")
.Cells(lngZeile, 5).Value = wksEingabe.Range("B10")
.Cells(lngZeile, 6).Value = wksEingabe.Range("E10")
'usw.

Anzeige
AW: Daten von einem Tabellenblatt ins andere übertrage
17.07.2012 08:51:48
einem
Danke Franz, du hast mir wirklich sehr geholfen!
Herzliche Grüße Dominic
AW: Daten von einem Tabellenblatt ins andere übertrage
17.07.2012 22:34:41
einem
Ich hätte da doch noch eine abschließende Frage:
In einer Zelle soll ein Hyperlink kopiert werden, wie kann ich das machen. Konnte da leider noch nicht die richtige Lösung finden.
Danke schon mal im Voraus!
Anzeige
AW: Hyperlink in anders Tabellenblatt übertragen
18.07.2012 13:48:56
fcs
Hallo Dominic,
für das Übertragen der Hyperlinks gibt es 2 Varianten.
Gruß
Franz
    'Beispiel Hyperlink übertragen aus Zelle C12 in Spalte 7 der Liste
'entweder die ganze Zelle einfach kopieren
wksEingabe.Range("C12").Copy Destination:=.Cells(lngZeile, 7)
'oder Zellewert und Hyperlink-Infos auslesen/eintragen
.Cells(lngZeile, 7).Value = wksEingabe.Range("C12").Value
With wksEingabe.Range("C12")
If .Hyperlinks.Count > 0 Then
With .Hyperlinks(1)
wksListe.Hyperlinks.Add Anchor:=wksListe.Cells(lngZeile, 7), _
Address:=.Address
If .SubAddress  "" Then _
wksListe.Cells(lngZeile, 7).Hyperlinks(1).SubAddress = .SubAddress
If .TextToDisplay  "" Then _
wksListe.Cells(lngZeile, 7).Hyperlinks(1).TextToDisplay = .TextToDisplay
If .ScreenTip  "" Then _
wksListe.Cells(lngZeile, 7).Hyperlinks(1).ScreenTip = .ScreenTip
End With
End If
End With

Anzeige
AW: Hyperlink in anders Tabellenblatt übertragen
20.07.2012 11:49:48
Dominic
Super, danke!
Ich habe zwar schon in meiner letzten Frage geschrieben, es sei die Letzte, dennoch drängt sich mir bei diesem Thema noch eine auf: Kann ich die Daten, die ich bereits in der Tabelle habe wieder in die Eingabezellen mittels Abfrage der Nummer(welche automatisch generiert wurde) zurückholen?
VG Dominic
Anzeige
AW: Hyperlink in anders Tabellenblatt übertragen
20.07.2012 22:07:05
fcs
Hallo Dominic,
natürlich kann man auch einen vorhandenen Datensatz aus der Liste ins Eingabe-Blatt übertragen.
Ich hab unter mal 2 Möglichkeiten vorbereitet, wie du den Taransfer realisieren kannst.
Variante 1: Makro wird gestartet und fragt nach der Datensatz-Nr.
Variante 2: Im Blatt "Liste" wird per Doppelklick in die Zelle mit der Datensatz-Nr der Datentransfer gestartet.
Beide Varianten übergeben die Zeilennummer an die Übertragungsroutine und können auch parallel verwendet werden.
Im wesentlichen (außer beim Hyperlink) werden im Unterschied zum Transfer Eingabe nach Liste die Ausdrucke links und rechts des Gleichheitszeichens getauscht.
Gruß
Franz
'Code im Modul von Tabellenblatt "Liste"
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And IsNumeric(Target) Then
Call Werte_aus_Liste_holen(lngZeile:=Target.Row)
Worksheets("Eingabe").Activate
Cancel = True
End If
End Sub
'Code in einem alllgemeinen Modul der Datei.
Option Explicit
Sub SuchwertEingeben()
Dim varSuchen As Variant
Dim rngSuchen As Range
varSuchen = Application.InputBox(Prompt:="Nummer des auszulesenden Zeichensatzes", _
Title:="Datensatz einlesen", _
Type:=1)
If varSuchen  False Then
Set rngSuchen = Worksheets("Liste").Columns(1).Find(What:=varSuchen, _
LookIn:=xlValues, lookat:=xlWhole)
If rngSuchen Is Nothing Then
MsgBox "Datensatz-Nr. """ & varSuchen & """ nicht gefunden!", _
vbInformation + vbOKOnly, "Datensatz einlesen"
Else
Call Werte_aus_Liste_holen(lngZeile:=rngSuchen.Row)
End If
End If
End Sub
Public Sub Werte_aus_Liste_holen(lngZeile As Long)
Dim wksEingabe As Worksheet
Dim wksListe As Worksheet
Set wksEingabe = Worksheets("Eingabe")  'Eingabetabellenblatt
'Tabellenblatt in das die Daten geschrieben werden sollen
Set wksListe = Worksheets("Liste")
With wksListe
wksEingabe.Range("B3").Value = .Cells(lngZeile, 2).Value
wksEingabe.Range("B5").Value = .Cells(lngZeile, 3).Value
wksEingabe.Range("E6").Value = .Cells(lngZeile, 4).Value
wksEingabe.Range("B10").Value = .Cells(lngZeile, 5).Value
wksEingabe.Range("E10").Value = .Cells(lngZeile, 6).Value
'usw.
' Zellewert und Hyperlink-Infos aus Spalte 7 auslesen und in _
Eingabe-Zelle C12 einfügen
With wksEingabe.Range("C12")
If .Hyperlinks.Count > 0 Then .Hyperlinks(1).Delete
.Value = wksListe.Cells(lngZeile, 7).Value
End With
With .Cells(lngZeile, 7)
If .Hyperlinks.Count > 0 Then
With .Hyperlinks(1)
wksEingabe.Hyperlinks.Add Anchor:=wksEingabe.Range("C12"), _
Address:=.Address
If .SubAddress  "" Then _
wksEingabe.Range("C12").Hyperlinks(1).SubAddress = .SubAddress
If .TextToDisplay  "" Then _
wksEingabe.Range("C12").Hyperlinks(1).TextToDisplay = .TextToDisplay
If .ScreenTip  "" Then _
wksEingabe.Range("C12").Hyperlinks(1).ScreenTip = .ScreenTip
End With
End If
End With
End With
End Sub

Anzeige
AW: Hyperlink in anders Tabellenblatt übertragen
21.07.2012 10:14:49
Dominic
Herzlichen Dank Franz!! Damit hast du mir wirklich sehr weitergeholfen.
VG Dominic
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten von einem Tabellenblatt ins andere übertragen


Schritt-für-Schritt-Anleitung

Um Daten von einem Excel-Blatt in ein anderes zu übertragen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (deinWorkbookName)“ > „Einfügen“ > „Modul“.

  3. Kopiere den folgenden Code in das Modul:

    Sub Eingabe_in_Liste_eintragen()
       Dim wksEingabe As Worksheet
       Dim wksListe As Worksheet
       Dim lngZeile As Long, rngZelle As Range
    
       Set wksEingabe = Worksheets("Eingabe")  'Eingabetabellenblatt
       Set wksListe = Worksheets("Liste")      'Tabellenblatt in das die Daten geschrieben werden sollen
    
       With wksListe
           'nächste freie Zeile in Liste finden
           Set rngZelle = .Cells.Find(What:="*", after:=.Range("A1"), LookIn:=xlFormulas, lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious)
           If rngZelle Is Nothing Then
               lngZeile = 1
           Else
               lngZeile = rngZelle.Row + 1
           End If
           .Cells(lngZeile, 1).Value = wksEingabe.Range("B3")
           .Cells(lngZeile, 2).Value = wksEingabe.Range("B5")
           .Cells(lngZeile, 3).Value = wksEingabe.Range("E6")
           .Cells(lngZeile, 4).Value = wksEingabe.Range("B10")
           .Cells(lngZeile, 5).Value = wksEingabe.Range("E10")
           'usw.
       End With
    End Sub
  4. Füge eine Schaltfläche hinzu: Gehe zu „Entwicklertools“ > „Einfügen“ > „Schaltfläche (Formularsteuerelement)“. Zeichne die Schaltfläche auf deinem Arbeitsblatt und weise das Makro „Eingabe_in_Liste_eintragen“ zu.

  5. Speichere deine Datei als Excel-Makro-fähige Arbeitsmappe (*.xlsm).

  6. Klicke auf die Schaltfläche, um die Daten zu übertragen.


Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004“
    Ursache: Das Zielblatt existiert nicht oder der Name ist falsch.
    Lösung: Überprüfe, ob das Zielblatt den richtigen Namen hat.

  • Fehler: Daten werden nicht übertragen
    Ursache: Die Zellen in der Eingabe sind leer.
    Lösung: Stelle sicher, dass die benötigten Zellen im Eingabeblatt ausgefüllt sind.


Alternative Methoden

Wenn du die Daten von einem Tabellenblatt ins andere automatisch übertragen möchtest, kannst du auch folgende Methoden verwenden:

  1. Formeln: Nutze Formeln wie =Eingabe!B3 in der Zelle der Zieltabelle, um Daten dynamisch zu verknüpfen.
  2. Power Query: Verwende Power Query, um Daten aus verschiedenen Tabellenblättern zu kombinieren und zu transformieren.

Praktische Beispiele

Hier sind einige Beispiele, wie du bestimmte Daten in eine andere Tabelle übernehmen kannst:

  1. Kopiere Hyperlinks: Um einen Hyperlink zu übertragen, kannst du den folgenden Code verwenden:

    wksEingabe.Range("C12").Copy Destination:=.Cells(lngZeile, 7)
  2. Automatische Nummerierung: Um jede Zeile automatisch mit einer Nummer zu versehen, füge folgenden Code in dein Makro ein:

    .Cells(lngZeile, 1).Value = Application.WorksheetFunction.Max(.Columns(1)) + 1

Tipps für Profis

  • Nutze Strukturierte Tabellen in Excel, um die Verwaltung deiner Daten zu erleichtern.
  • Verwende Datenvalidierung, um sicherzustellen, dass nur gültige Daten in die Eingabezellen eingegeben werden.
  • Erstelle Datenübersichten mit Pivot-Tabellen, um die übertragenen Daten besser analysieren zu können.

FAQ: Häufige Fragen

1. Kann ich Daten von einem Excel-Blatt in ein anderes übertragen, ohne VBA zu verwenden?
Ja, du kannst Formeln oder Power Query verwenden, um diese Aufgabe zu erledigen.

2. Wie kann ich die Daten automatisch aktualisieren?
Du kannst die Verknüpfung zwischen Blättern mit Formeln herstellen oder ein VBA-Skript erstellen, das beim Öffnen der Datei ausgeführt wird.

3. Ist es möglich, mehrere Blätter gleichzeitig zu verarbeiten?
Ja, du kannst dein Makro so erweitern, dass es durch eine Liste von Blättern iteriert und die Daten von jedem Blatt in das Zielblatt überträgt.

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