3.8k Aufrufe
Gefragt in Tabellenkalkulation von
Schönen Guten morgen, ich bin ein verzweifelte neu benutzer des vba.

Ich versuche seit einige Tagen heraus zu finden , wie ich aus einer Datei1 eine makierte Zeile in einen andern Datei2 hinkopiere.

Ich hoffe ihr könnt mir helfen. Ich geb es langsam auf.

Schönen Gruß Hermann

17 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Hermann,

das geht z.B. wie folgt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub kopieren()
Workbooks("Name der Quelldatei.xls").Sheets("Tabelle1").Rows(1).Copy _
Workbooks("Name der Zieldatei.xls").Sheets("Tabelle1").Range("A1")
End Sub
Hier wird die Zeile 1 der einen Datei in die 1 Zeile der anderen Datei kopiert.
Die Dateinamen, die Blattnamen, die Zeilennummer und die Zelladresse, in das die Zeile kopiert werden soll, musst Du anpassen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Guten Morgen Oliver, ich danke Dir sehr. Das Makro von dir klappt wunderbar. Hat mir schon mal einen Lichtblick verschaft Jetzt hab ich nur noch ein Problem dann bin ich mit meinem Program hoffentlich fertig , - nach gut einem Monat. Aber jeder Anfang ist schwer.
Ich müsste dein Makro umschreiben und in meine Suche einbauen.

Oder hast du vielleicht eine bessere Idee?
Wie ich eine Wert suchen kann und die Zeile des Gesuchten dann in eine andere festgelegten Datei kopieren kann. Dann nerve ich dich auch nicht mehr weiter. Das wäre Genial. Ich habe dir mal mein Code reinkopiert. Der klappt nur von Tabelle zu Tabelle.

'Sucht die Daten und gibt sie in einer neuen Tabelle aus

Sub DatenSuchen()
For Each c In Worksheets("Adressbuch").Range("A2:G600")
If c.Text Like "Cour*" Then
c.Font.Name = "Times New Roman"
End If
Next

z = Sheets("Tabelle2").Range("A65536").End(xlUp).Row + 1
For sp = 1 To 7
Cells(z, sp) = Controls("TextBox" & sp)

Next sp
End Sub
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Hermann,

also der Code, den Du hier aufgeführt hast hat nichts mit den Suchen und Kopieren des gefundenen Begriffs zu tun.
Dein Code sucht nach einem Teil eines Wortes und formatiert die Schrift des gefundenen Wortes und danach werden dann Werte aus TextBoxen in einer freien Zelle ausgegeben.
Wo soll denn nun was kopiert werden?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
wow , das geht ja schnell !

Also , es soll ein Wert in der Datei A in der Linken spalte gesucht werden. Dann soll diese Spalte wo der Wert drine steht in eine andere Datei B kopiert Werden.

Die Suche sollte am besten von in der Datei B stehen.

( Vielleicht zu Aufklärung , meine Kollegen sollen sich über ihre DateiB über ein such Button Zeilen aus der DateiA holen können. )
Also das ist mein Ziel.

Schönen Gruß Hermann
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Hermann,

den zu suchenden Begriff sollen die Mitarbeiter irgendwo vorher eingeben oder ist der fest vorgegeben?
Der restliche VBA-Code aus Deinem Code aus AW2 soll wann abgearbeitet werden? Vor dem Suchen-Code, danach oder mittendrin?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Also - Erst mal herzlichen Dank das du mir Hilfst !

Also in der DateiA stehen etwa 400 Werte in der Linken Spalte.

Die Sogenannte E-Nummer. Dann rechts zu jeder Spalte stehen die Informationen zu diesen E-Nummern.

Die Mitarbeiter sollen sich über eine Userform die ich auch schon soweit fertig habe sich die E-Nummer heraus suchen.

Also sie geben die Nummer die sie brauchen in eine Textbox ein und die ganze gesuchte Zeile kopiert sich in ihre Datei.

Der restliche code den ich fertig habe geht in Richtung vervollständigen und Grafische Automatischedarstellung / Auswertung. eher das "normale Excel". Oder was meintest du, vielleicht hab ich dich jetzt etwas falsch verstanden.

Ich bin weniger als ein Anfänger.

Gruß Hermann
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Hermann,

da Du wie Du erwähnst eine Datei bereits hast, in der sich auch bereits die UserForm befindet, wäre es sinnvoll, diese z.B. bei http://www.file-upload.net/ hochzuladen und den Link, den Du erhälst hier dann zu posten. Somit muss man sich nicht selber eine Beispieldatei erstellen, die mit 100%iger Sicherheit anders ist als Deine.

Ich würde das nämlich nicht mit einer TextBox in der UserForm machen, sondern durch eine ComboBox, in der die Nummern bereits beim Öffnen der Form in diese ComboBox eingelesen werden realisieren. Somit fällt der gesamte Suchvorgang weg, da man sich beim Einlesen der Nummern die Zeilennummer, in der sich die Nummer befindet ebenfalls mit einlesen kann und diese dann bei Auswahl der Nummer mit übergeben kann.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Gute Idee ! Also _ :

Die Liste aus der der Wert bzw. die Zeile heraus gesucht werden soll.

http://www.file-upload.net/download-1914614/Bearbeitung.xls.html

Ein der ( 30 ) Datein aus der die Suche gestartet werden soll und in der die Zeile gesuchte zeile reinkopiert werden soll.

http://www.file-upload.net/download-1914617/Elektronik-RD_Karl-Heinz.xls.html

So war bis her mein Gedankenweg. Aber deine hört sich viel besser an. Ziel ist es das jeder sich das raussuchen kann was er für seine Datei brauch. Es ist Weihnachten für mich glaubig..ich freue mich gerade sehr das mir jemand hilft !

Danke Oliver !!

Gruß Hermann
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Hermann,

für mich zum Verständnis. Die Datei, aus der die Nummer ausgelesen werden sollen ist die Datei "Bearbeitung.xls".
Die Datei, in das der ausgesuchte Datensatz eingefügt werden soll ist die Datei "Elektronik-RD_Karl-Heinz.xls".
Ist das richtig?
Sind beim Suchenvorgang und beim Kopieren beide Dateien immer geöffnet oder ist das möglich dies zu berücksichtigen, dass beide Dateien immer geöffnet sind?
Woran kann man die Datei ausmachen, in die der Datensatz kopiert werden soll? Ist der Datei in bestimmten Teilen des Dateinamens immer gleich, z.B. "Elektronik-.....xls"? Oder haben die Dateien frei vergebene Dateinamen?

Ich muss das nur wissen, falls mal mehr als 2 Exceldateien (Quell- und Zieldatei) geöffnet sind, die Daten in der richtigen Datei landen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Ja das hast du richtig verstanden :)
Also die heißen eigentlich alle anderes , stellt das ein Problem dar.
Dann kann man sie auch durch nummerieren oder vielleich etwas dazuschreiben.

Mach es so wie du es für richtig hälst .

Ich hatte das bis jetzt so , dass wenn ich eine Datei aufgerufen hatte, sich die andere, die Bearbeitungsdatei , gleich mit geöffnet hat.

Gruß Hermann
...