Ansicht:   

#436470

crowsname

Arnsberg,
21.01.2020, 16:06:06

Excel VBA Daten kopieren (pc.coding)

Hallo zusammen,

Habe mir einen kleinen Code geschrieben um bestimmte Werte von einer Tabelle in die andere zu kopieren. Denke das geht noch kürzer und schöner.

Hat da jemand einen Tipp für mich, wie ich es eben kürzer und schöner mache?

Sub DatenKopieren()

Dim letzte As Long

letzte = Range("A65536").End(xlUp).Row

Workbooks.Open "Hier steht im Code der Pfad zur Zieldatei"

Workbooks("quelle.xlsm").Activate
Worksheets("quelldaten").Activate

Range("C1:C" & letzte).Copy

Workbooks("ziel.xlsm").Activate
Worksheets("zielbereich").Activate

Range("A1:A" & letzte).PasteSpecial

Workbooks("quelle.xlsm").Activate
Worksheets("quelldaten").Activate

Range("D1:D" & letzte).Copy

Workbooks("ziel.xlsm").Activate
Worksheets("zielbereich").Activate

Range("K1:K" & letzte).PasteSpecial

Workbooks("quelle.xlsm").Activate
Worksheets("quelldaten").Activate

Range("E1:E" & letzte).Copy

Workbooks("ziel.xlsm").Activate
Worksheets("zielbereich").Activate

Range("J1:J" & letzte).PasteSpecial

Workbooks("quelle.xlsm").Activate
Worksheets("quelldaten").Activate

Range("F1:F" & letzte).Copy

Workbooks("ziel.xlsm").Activate
Worksheets("zielbereich").Activate

Range("L1:L" & letzte).PasteSpecial

End Sub

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436471

manes zur Homepage von manes

Köln,
21.01.2020, 23:12:12

@ crowsname

Excel VBA Daten kopieren

Hallo
Es ist nicht nötig, das, mit dem Du was machen willst, dafür zu markieren oder zu aktivieren.

Du könntest das , wenn die Zielbereiche ebenso wie die Quelldaten direkt nebeneinander lägen, mit einer Mehrfacherfassung ( z.B. "C1:C2,D1:D2,E1:E2") erledigen. Klappt aber hier leider nicht.
Mein Vorschlag wäre, es mit einer ForNext-Schleife zu erledigen:

Sub kopieren()

Dim wsh_q As Worksheet
Dim wsh_z As Worksheet
Dim var_q As Variant
Dim var_z As Variant
Dim int_x As Integer
Dim str_r As String
Dim letzte As Long

Set wsh_q = ActiveWorkbook.Worksheets("quelldaten")
Set wsh_z = Workbooks.Open(ActiveWorkbook.Path & "\ziel.xlsx").Worksheets("zielbereich")
var_q = Split("c,d,e,f", ",")
var_z = Split("a,k,j,l", ",")
letzte = wsh_q.Range("A65536").End(xlUp).Row
str_r = "#1:#" & letzte

For int_x = 0 To UBound(var_q)
str_q = Replace(str_r, "#", var_q(int_x))
str_z = Replace(str_r, "#", var_z(int_x))
wsh_q.Range(str_q).Copy Destination:=wsh_z.Range(str_z)
Next

End Sub

FFPX
Manes

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

#436475

crowsname

Arnsberg,
22.01.2020, 10:18:49

@ manes

Excel VBA Daten kopieren

Hi,

danke dir.

Das werde ich bei Gelegenheit ausprobieren und versuchen zu verstehen.  :-)

Verdammt, wieviel Erfahrung braucht man, um auf den Weg zu kommen!

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436476

manes zur Homepage von manes

Köln,
22.01.2020, 12:32:15

@ crowsname

Excel VBA Daten kopieren

Hallo
> Verdammt, wieviel Erfahrung braucht man, um auf den Weg zu kommen!
Ja, verdammt viel.
Angefangen in den 80ern nebenberuflich als Bausparberater mit Multiplan auf einem C64 (!!). Danach ab den 90er Jahren beruflich auf die IT-Schiene geraten. Habe den Spitznamen "Excel-Pabst". Seit ein paar Jahren pensioniert, aber immer noch mit einem Montagsjob als Spezialist für komplexere MS-Office-Anwendungen.

FFPX
Manes

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

#436477

crowsname

Arnsberg,
22.01.2020, 13:07:57

@ manes

Excel VBA Daten kopieren

> Hallo
> > Verdammt, wieviel Erfahrung braucht man, um auf den Weg zu kommen!
> Ja, verdammt viel.
> Angefangen in den 80ern nebenberuflich als Bausparberater mit Multiplan auf
> einem C64 (!!). Danach ab den 90er Jahren beruflich auf die IT-Schiene
> geraten. Habe den Spitznamen "Excel-Pabst". Seit ein paar Jahren
> pensioniert, aber immer noch mit einem Montagsjob als Spezialist für
> komplexere MS-Office-Anwendungen.
>
> FFPX
> Manes

Hey,

tolle Sache.

Ich habe immer nur ein bisschen nebenbei gemacht. Da komme ich leider nicht in die Übung und Erfahrung. Und meinen C64 mit Datasette am Anfang hatte ich nur zum zocken.  :-)

Wo ich dann gerade einen Experten da habe.  :-)

Ich habe noch ein anderes Script, wo ein bestimmter Drucker angesprochen werden soll. Den Namen des Druckers hab ich auch durch ein VBA Codeschnipsel rausgefunden und dann über ActivePrinter:= _ angesprochen.

Kann ich da den Namen auch einfach durch die IP Adresse ersetzten?

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436484

manes zur Homepage von manes

Köln,
22.01.2020, 20:04:33

@ crowsname

Excel VBA Daten kopieren

Hallo
Mit VBA geht das m.W. nicht, eher mit VB.
Mglw. gibt es auch eine API, die das kann. Habe ich aber jetzt nicht nach gesucht.

Sauberste Lösung wäre m.E. bei den jeweiligen PCs die Druckernamen zu berichtigen und gleichzuziehen.
Und dann gibt es ja auch noch die Möglichkeit, einen Druckauftrag per E-Mail an einen Drucker zu senden. Mein Epson hat sowas. HPs m.W. auch.

FFPX
Manes

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

#436488

crowsname

Arnsberg,
23.01.2020, 08:20:15

@ manes

Excel VBA Daten kopieren

Danke dir!

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#449758

neanderix

14.11.2021, 22:48:10

@ crowsname

Excel VBA Daten kopieren

> Verdammt, wieviel Erfahrung braucht man, um auf den Weg zu kommen!

Eigentlich nicht viel, nur den eisernen Willen, sich da reinzufuchsen. und den, sauberen, lesbaren code zu schreiben. Ein gutes Buch als Orientierungshilfe ist auch nicht verkehrt; für Excel kann ich die Bücher von Monika Weber (bzw Can-Weber) empfehlen. Und wenn du keine Angst vor Englisch hast, die Bücher von John Walkenbach genannt "Mr. Spreadsheet".
Wenn du deren Tipps verinnerlicht hast, wirst du von ganz allein auf "Select" und "Activate" wo immer möglich verzichten und stattdessen mit Objektvariablen arbeiten, auf denen du dann direkt arbeitest.

Als ich mit Excel-VBA angefangen habe, hatte ich zwar Erfahrung mit der Programmierung in MS Access aber keinerlei Erfahrung mit der Programmierung in Excel. Meinen aktuellen Stand habe ich nach knapp 6 Monaten erreicht - in den letzten 2 Jahren habe ich gar nicht mehr programmiert, weder in Excel noch in Access.

--
Im übrigen bin ich der Meinung, dass der Gender-Neusprech bekämpft und eliminiert werden muss.

Probleme mit Windows? Reboot
Probleme mit Unix? Be root

#449759

fuchsi zur Homepage von fuchsi

Niederösterreich,
15.11.2021, 06:46:51

@ neanderix

Excel VBA Daten kopieren

> Wenn du deren Tipps verinnerlicht hast, wirst du von ganz allein auf
> "Select" und "Activate" wo immer möglich verzichten und stattdessen mit
> Objektvariablen arbeiten, auf denen du dann direkt arbeitest.

Die meisten erlenen die Excel VBA Scriptsprache eher durch Makros aufzeichnen, und daher kommt dieser Unsinn mit Select, um in eine Zelle was reinzukritzeln.

> Als ich mit Excel-VBA angefangen habe, hatte ich zwar Erfahrung mit der
> Programmierung in MS Access aber keinerlei Erfahrung mit der Programmierung
> in Excel.

Excel VBA war und ist für mich ein reines Hilfskonstrukt, um schnell mal Daten aufzubereiten. Ich habe da nie was produziert, dass länger als ein paar Tage in Verwendung war.
Dazu schreibe ich eher gleich ein Plugin in C#.net

--
mein privates Hobby. www.ffzell.at

#449762

neanderix

15.11.2021, 08:55:17

@ fuchsi

Excel VBA Daten kopieren

> > Wenn du deren Tipps verinnerlicht hast, wirst du von ganz allein auf
> > "Select" und "Activate" wo immer möglich verzichten und stattdessen mit
> > Objektvariablen arbeiten, auf denen du dann direkt arbeitest.
>
> Die meisten erlenen die Excel VBA Scriptsprache eher durch Makros
> aufzeichnen, und daher kommt dieser Unsinn mit Select, um in eine Zelle was
> reinzukritzeln.

So sieht es aus

>
> > Als ich mit Excel-VBA angefangen habe, hatte ich zwar Erfahrung mit der
> > Programmierung in MS Access aber keinerlei Erfahrung mit der
> Programmierung
> > in Excel.
>
> Excel VBA war und ist für mich ein reines Hilfskonstrukt, um schnell mal
> Daten aufzubereiten. Ich habe da nie was produziert, dass länger als ein
> paar Tage in Verwendung war.

Dennoch ist VBA deutlich mehr.

> Dazu schreibe ich eher gleich ein Plugin in C#.net

Von dot.net halte ich nur eines: Abstand.

--
Im übrigen bin ich der Meinung, dass der Gender-Neusprech bekämpft und eliminiert werden muss.

Probleme mit Windows? Reboot
Probleme mit Unix? Be root

#449763

fuchsi zur Homepage von fuchsi

Niederösterreich,
15.11.2021, 09:06:12

@ neanderix

Excel VBA Daten kopieren

> Von dot.net halte ich nur eines: Abstand.

und warum?

--
mein privates Hobby. www.ffzell.at

#449772

neanderix

15.11.2021, 12:59:26

@ fuchsi

Excel VBA Daten kopieren

> > Von dot.net halte ich nur eines: Abstand.
>
> und warum?

Ehrlich gesagt, kann ich es dir nichtmal genau sagen.
Wahrscheinlic h ist der Grund, dass auf jeden Fall, auch zum Ausführen der hier erstellten Programme, zwingend erstens das dotNet Framework installiert sein muss und zweitens in der/den richtigen Version(en)
Ich hingegen bevorzuge, mich um solcherlei nur bedingt kümmern zu müssen.
Und das habe ich bei echten Compilersprachen und, in Grenzen, sogar bei JAVA.
Und wenn ich mir eine anwendungsspezifische Routine sc hreibe, dann halte ich die Nutzung einer externen Programmiersprache und -umgebung für "oversized" egal wie oft ich die benutze.

Aber jeder, wie er mag.

--
Im übrigen bin ich der Meinung, dass der Gender-Neusprech bekämpft und eliminiert werden muss.

Probleme mit Windows? Reboot
Probleme mit Unix? Be root

#449773

fuchsi zur Homepage von fuchsi

Niederösterreich,
15.11.2021, 13:12:05
(editiert von fuchsi, 15.11.2021, 13:14:49)

@ neanderix

Excel VBA Daten kopieren (ed)

Das ist ein Argument, dass man nachvollziehen kann.

Ein kompiliertes .net Programm ist ja eigentlich nicht wirklich kompiliert. Es ist und bleibt eine Interpretersprache. Man kann eine .net exe sogar wieder in lesbaren und mehr oder weniger originalen c# Code dekompilieren.

Da ich nur firmenintern programmiere, ist das weniger relevant. hier sind alle ca. 900 PCs mehr oder weniger ident aufgesetzt, und haben alle zumindest das gleiche .net Framework installiert.

Privat programmiere ich nicht, da mir nach der Arbeit das Computern zum Hals raushängt. (Außer vielleicht mal ein bisschen html, da ich die Feuerwehrhomepage betreue - z.B.: Mein Hund Julius)

--
mein privates Hobby. www.ffzell.at

#449775

neanderix

15.11.2021, 13:50:40

@ fuchsi

Excel VBA Daten kopieren

> Da ich nur firmenintern programmiere, ist das weniger relevant. hier sind
> alle ca. 900 PCs mehr oder weniger ident aufgesetzt, und haben alle
> zumindest das gleiche .net Framework installiert.

Ich hatte hier mal die Notwendigkeit, gleich mehrere dotNet Frameworks vorzuhalten:
eine war notwendig für den Grafikkarten-Treiber (weil der unter dotNet programmierte deutlich besser war, als der "nativ" programmierte - die Karte war eine Matrox) der andere für meine Gigaset Telefonanlage (mittlerweile telefoniere ich über die Fritz!Box - leider mutet hier die Bedienung der Telefonie im Vergleich zur Gigaset stellenweise wie Steinzeit an)

> Privat programmiere ich nicht, da mir nach der Arbeit das Computern zum
> Hals raushängt. (Außer vielleicht mal ein bisschen html, da ich die
> Feuerwehrhomepage betreue - z.B.:
> Mein Hund
> Julius)

Ich programmiere zur zeit auch nicht privat.

--
Im übrigen bin ich der Meinung, dass der Gender-Neusprech bekämpft und eliminiert werden muss.

Probleme mit Windows? Reboot
Probleme mit Unix? Be root

#450319

crowsname

Arnsberg,
07.12.2021, 10:19:44

@ neanderix

Excel VBA Daten kopieren

Danke dir!

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436482

crowsname

Arnsberg,
22.01.2020, 16:28:40

@ manes

Excel VBA Daten kopieren

Hallo,

hab es gerade getestet.

Klappt wunderbar. Herzlichen Dank!

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436492

crowsname

Arnsberg,
23.01.2020, 15:29:42

@ manes

Excel VBA Daten kopieren

Hi,

sorry, ich habe gerade doch noch ein Problem festgestellt und kriege es nicht gelöst.

In der Quelldatei soll ja alles von Zeile 1 bis x kopiert werden.

Der ganze Bereich soll in der Zieldatei eingefügt werden. Hier darf aber erst ab Zeile 11 begonnen werden.

Hast du da auch noch eine Idee?

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

#436493

manes zur Homepage von manes

Köln,
23.01.2020, 15:58:57

@ crowsname

Excel VBA Daten kopieren

Hallo
> Der ganze Bereich soll in der Zieldatei eingefügt werden. Hier darf aber
> erst ab Zeile 11 begonnen werden.
Die Zeile vor dem Next-Befehl muss um einen Offset von 10 Zeilen ergänzt werden. Sieht dann so aus:
wsh_q.Range(str_q).Copy Destination:=wsh_z.Range(str_z).Offset(10)

FFPX
Manes

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

#436494

crowsname

Arnsberg,
23.01.2020, 16:02:46

@ manes

Excel VBA Daten kopieren

Super, hat geklappt.
Danke dir noch mal!

--
MfG

Michael
-------------------------------------
Personal Training und Ernährungsberatung
http://www.dein-bpc.de

Natürliche Baustoffe:
http://www.auro-online.de

Getreidemühlen und Zubehör:
http://www.getreidemuehlen.de

Sport in Arnsberg:
http://www.personaltraining-nh.de/Home

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz