Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
396to400
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
396to400
396to400
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten in eine neue Tabelle einfügen (Makro)

Daten in eine neue Tabelle einfügen (Makro)
17.03.2004 21:40:38
Martin
Guten abend zusammen,
Vorweg muss ich zu meiner Schande gestehen, dass ich keinerlei VBA-Kenntnisse habe :-(
Ich knobele jetzt schon seit ein paar Tagen an folgendem Problem:
Ich habe Daten in einer Excel-Tabelle. Diese Daten werden über Formeln aus verschiedenen anderen Tabellen generiert. Es handelt sich um eine Art 'Auftrags-Programm'. D.H. es werden Daten für einen Auftrag eingegeben und in eine zweite Excel-Tabelle übernommen.
Nun möchte ich diese Angaben aus dem Auftrag in eine Art Datentabelle 'schieben' (per Makro). Ansich kein Problem ABER:
Wie kann ich es erreichen, dass in der Datentabelle die Werte aus der 'Eingabetabelle' immer in nächste freie Zeile geschrieben werden?
Also: Auftrag1 soll in der zweiten Zeile der Datentabelle stehen (1. Zeile enthält die Überschriften...), Auftrag2 soll in der dritten Zeile der Datentabelle stehen usw.
Das ursprüngliche Tabellenblatt aus dem ich die Daten holen will ändert sich bei jedem Auftrag und um die Daten später (z.B. zum Rechnung schreiben) weiterverarbeiten zu können, will ich eben diese Datentabelle mit 'allen Auftragsdaten der vielen unterschiedlichen Aufträge' anlegen.
Die integrierte DB-Funktion über die Eingabemaske hilft mir leider nicht weiter, da ich das 'Erfassungsgerüst' mehr oder weniger über dirkte Zelleingaben gelöst habe.
Danke schonmal an alle Helfer!
Gruss Martin

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in eine neue Tabelle einfügen (Makro)
17.03.2004 23:36:58
PeterW
Hallo Martin,
um dir eine VBA-Lösung anbieten zu können (und nur damit dürfte das möglich sein) müsste man wissen, welche Zellinhalte in die Datentabelle übertragen werden sollen. Da du angibst keinerlei VBA-Kenntnisse zu haben dürfte dir ein Mustercode wenig nutzen, also poste mal deine Tabelle mit den Daten, die gesammelt werden sollen.
Gruß
Peter
AW: Daten in eine neue Tabelle einfügen (Makro)
18.03.2004 12:00:03
Martin
Hallo nochmal,
Ich hoffe ich habe mich verständlich genug ausgedrückt:
Die Daten in der Eingabetabelle sind immer die gleichen Zellen. Ich brauch' lediglich irgendwie die Funktion, dass beim Kopieren (per Makro) in die Datentabelle die nächste freie Zeile 'gesucht' wird und dort die Werte hinkopiert werden.
Muss dass tatsächlich mittels VBA gelöst werden oder gibt's nicht vielleicht irgendeine Formel, die mir diesen Dienst tut?
Danke und Gruss
Martin
Anzeige
AW: Daten in eine neue Tabelle einfügen (Makro)
18.03.2004 12:18:53
Martin
Hallo,
Hier die Links für die Tabellen (beispielhaft):
Eingabetabelle: https://www.herber.de/bbs/user/4437.xls
Datentabelle:

Die Datei https://www.herber.de/bbs/user/4438.xls wurde aus Datenschutzgründen gelöscht

Gruss Martin
AW: Daten in eine neue Tabelle einfügen (Makro)
18.03.2004 15:51:04
PeterW
Hallo Martin,
mit Formeln sehe ich keinen Weg da du mit Formeln nicht Werte in andere Zellen schreiben kannst. Sofern beide Dateien geöffnet sind würde folgender Code das erledigen (gehört in ein Standardmodul der Datei mit dem Angebot):
Option Explicit

Sub InDaten()
Dim lgRow As Long
Dim wks As Worksheet
'den Namen der Zieldatei und des Blattes anpassen
Set wks = Workbooks("4438.xls").Sheets("Tabelle1")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
.Cells(lgRow, 1) = Cells(5, 2)
.Cells(lgRow, 2) = Cells(6, 2)
.Cells(lgRow, 3) = Cells(7, 2)
.Cells(lgRow, 4) = Cells(8, 2)
.Cells(lgRow, 5) = Cells(10, 2)
.Cells(lgRow, 6) = Cells(11, 2)
.Cells(lgRow, 7) = Cells(12, 2)
.Cells(lgRow, 8) = Cells(13, 2)
.Cells(lgRow, 9) = Cells(15, 2)
End With
End Sub

Gruß
Peter
Anzeige
AW: Daten in eine neue Tabelle einfügen (Makro)
18.03.2004 18:53:50
Martin
Hallo Peter,
erstmal vielen Dank für die Hilfe!!
Ich bin folgendermassen vorgegangen:
Erstellen einer Schaltfläche über die Steuerelement-Toolbox. Bei 'CODE' habe ich Deine Zeilen eingefügt (mit Änderung des Dateinamens). Er schreibt mir dann durch die Schaltfläche automatisch was CommandButton1 und onclick ganz oben hin... Dann beim Ausführen sagt er 'End

Sub erwartet' in der ersten Zeile 'Option Explicit'. Ich habe dann auch noch versucht ein Modul anzulegen (und auch geschafft) Das Makro wurde dort 'automatisch' erstellt. Ich habe dieses Makro dann ausgeführt und es tat sich rein gar nichts. Keine Daten in der Datentabelle.
Folgende (vermutlich schwachsinnige Idee):
Ich habe ein Makro aufgezeichnet, das eine Zelle von einer in die andere Tabelle kopiert.
In Deinem Listing steht die Zeile
lgRow = .Range("A65536").End(xlUp).Row + 1
Könnte man diese Befehl, der m.E. der 'Schlüssel des Erfolges ist' nicht einfach in 'meinen Makrotext' integrieren.
Hier ist der:

Sub Makro2()
' Makro2 Makro
' Makro am 18.03.2004 von Martin aufgezeichnet
Range("B5").Select
Selection.Copy
Windows("Datentabelle.xls").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C7").Select
End Sub


Falls Dir das Teil 'komisch' vorkommt: Ich habe nur die Inhalte eingefügt.
Gruss
Martin
Anzeige
AW: Daten in eine neue Tabelle einfügen (Makro)
18.03.2004 20:16:10
PeterW
Hallo Martin,
mit deinem Code überträgst du nur eine Zelle. Ist es das, was du möchtest? Die genannte Fehlermeldung kann ich nicht nachvollziehen. Alle Variablen sind ordentlich deklariert. Gerade auch nochmal getestet, läuft ohne Probleme:

Private Sub CommandButton1_Click()
Dim lgRow As Long
Dim wks As Worksheet
'den Namen der Zieldatei und des Blattes anpassen
Set wks = Workbooks("Mappe3.xls").Sheets("Tabelle1")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
.Cells(lgRow, 1) = Cells(5, 2)
.Cells(lgRow, 2) = Cells(6, 2)
.Cells(lgRow, 3) = Cells(7, 2)
.Cells(lgRow, 4) = Cells(8, 2)
.Cells(lgRow, 5) = Cells(10, 2)
.Cells(lgRow, 6) = Cells(11, 2)
.Cells(lgRow, 7) = Cells(12, 2)
.Cells(lgRow, 8) = Cells(13, 2)
.Cells(lgRow, 9) = Cells(15, 2)
End With
End Sub

Zu deinem aufgezeichneten Code: der Makrorekorder kann nicht ohne Activate und Select auskommen und zeichnet jede Menge unnötige Einstellungen mit auf. Der bearbeitete Code könnte so aussehen:
Sub Makro2()
'
' Makro2 Makro
' Makro am 18.03.2004 von Martin aufgezeichnet
'
'
Dim lgRow As Long
Range("B5").Copy
'für "NameDeinesBlattes" den Blattnamen in Datentabelle.xls auch in
'Anführungszeichen eingeben
With Workbooks("Datentabelle.xls").Sheets("NameDeinesBlattes")
lgRow = .Range("A65536").End(xlUp).Row + 1
.Range("A" & lgRow).PasteSpecial Paste:=xlPasteValues
End With
Range("C7").Select
End Sub

Gruß
Peter
Anzeige
AW: Daten in eine neue Tabelle einfügen (Makro)
18.03.2004 22:08:19
Martin
Hallo Peter
VIELEN DANK FÜR DIE HILFE!!!
Das war's!!
Mit der eingefügten Zeile in meinem Makro komme ich weiter.
Ich will nicht nur eine Zeile rüberkopieren sondern mehrere Zellen.
Aber ich werde das jetzt folgendermassen lösen:
Ich mache für jede Zelle ein eigenes Makro und ein Makro in dem ich
die einzelnen Makros ausführe.
DANKE DANKE DANKE nochmal!!!!
Gruss
Martin
AW: Daten in eine neue Tabelle einfügen (Makro)
18.03.2004 22:27:12
PeterW
Hallo Martin,
des Users Wille ist sein Himmelreich - aber wundere dich nicht, wenn du Probleme bekommst, für die anderen Zellen die richtige Zeile zu finden. Nachdem in Spalte A der erste Wert eingefügt ist ist lgRow nämlich beim nächsten Durchlauf um eins größer. Solltest du jeweils die einzutragende Spalte prüfen handelst du dir Probleme ein, wenn man nicht alle Felder gefüllt sind. Ich würde dir raten, statt das mit Einzelcodes anzugehen den ursprünglich geposteten Code zu benutzen und nochmal genau den Namen des Zielblattes zu überprüfen. ;-)
Gruß
Peter
Anzeige
AW: Daten in eine neue Tabelle einfügen (Makro)
19.03.2004 18:26:18
Martin
Hallo Peter,
Du hast Recht!! Der Gedanke mit der einen Zelle die dann vielleicht fehlt ist
mir später auch gekommen als die erste 'Anfangseuphorie' verflogen war.
Ich habe jetzt nochmal den Code aus Deinem zweiten Posting versucht - der funktioniert jetzt perfekt - ich denke ich habe gestern irgendeinen Fehler gemacht.
Danke nochmal für die Mühe!!!
Gruss und ein schönes Wochenende!
Martin
AW: Daten in eine neue Tabelle einfügen (Makro)
20.03.2004 18:35:39
Martin
Hallo Peter,
wie gesagt - Dein Code funktioniert tadellos. Ich habe nur noch eine letzte
kleine Frage:
Die zu übertragenden Daten stehen in der Tabelle 4. In der Tabelle 1 habe ich
so eine Art Menü gebaut mit allen Funktionen. Wenn ich den Button in die Tabelle 1
legen will, um aus der Tabelle 4 die Daten zu übertragen, was muss ich dann noch tun?
Ich habe jetzt versucht ein Makro aufzuzeichnen, dass in die Tabelle 4 wechselt und dort
den Button zum übertragen 'drückt'. Das hat aber leider nicht so wirklich funktioniert.
Gruss
Martin
Anzeige
AW: Daten in eine neue Tabelle einfügen (Makro)
20.03.2004 22:39:11
PeterW
Hallo Martin,
ich bin mir jetzt nicht sicher, um welchen Code es geht. Am Beispiel meines Ansatzes würde das so aussehen:

Private Sub CommandButton1_Click()
Dim lgRow As Long
Dim wks As Worksheet
Dim wksQuell As Worksheet
'eventuell den Namen des Quellblattes anpassen!!
Set wksQuell = Sheets("Tabelle4")
'den Namen der Zieldatei und des Blattes anpassen
Set wks = Workbooks("Mappe3.xls").Sheets("Tabelle1")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
.Cells(lgRow, 1) = wksQuell.Cells(5, 2)
.Cells(lgRow, 2) = wksQuell.Cells(6, 2)
.Cells(lgRow, 3) = wksQuell.Cells(7, 2)
.Cells(lgRow, 4) = wksQuell.Cells(8, 2)
.Cells(lgRow, 5) = wksQuell.Cells(10, 2)
.Cells(lgRow, 6) = wksQuell.Cells(11, 2)
.Cells(lgRow, 7) = wksQuell.Cells(12, 2)
.Cells(lgRow, 8) = wksQuell.Cells(13, 2)
.Cells(lgRow, 9) = wksQuell.Cells(15, 2)
End With
End Sub

Solltest du damit Probleme haben schreibe bitte, mit welchem Code du im Moment arbeitest.
Gruß
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige