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

#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

#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

#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