Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1076to1080
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
Inhaltsverzeichnis

Werte aus C:/Datei x in D:/Datei y speichern

Werte aus C:/Datei x in D:/Datei y speichern
02.06.2009 16:08:47
Peter_weber
Liebes Forum,
bin blutiger VBA Anfänger.
Wie kann man am einfachsten aus einer Datei x (im Prinzip ist es eine Eingabemaske) die Werte in eine andere Datei die sich auf einem anderen Laufwerkbefindet in einer Tabelle wegspeichern?
https://www.herber.de/bbs/user/62149.xls
https://www.herber.de/bbs/user/62150.xls
Vielen Dank für eure Hilfe im voraus
Peter
Hintergrund:
Ich habe ca. 30 Projekte, wobei immer neue dazu kommen.
Jedes Projekt hat ein gleiches Übersichtsblatt X (Projektnummer, Projektnamen, Bearbeiter, technische und finanzielle Daten, etc.) Die Daten sind zum Teil vertraulich.
Zwecks besserer Übersicht soll aus diesen verschiedenen Übersichtsblättern bestimmte Daten in einer anderen Datei Y, die allen zugänglich ist zusammengefasst werden. Diese Datei befindet sich auf einem freigegebenen Laufwerk.
Ich möchte nun jedem Übersichtsblatt X ein Makro anhängen, mit dem es möglich ist, auf "Knopfdruck" zu sagen: Speicher die Werte in die Datei Y (es entsteht somit eine Übersichtstabelle über alls Projekte). Diese Datei Y dient gleichzeitig als Diskussionsvorlage in Lenkungsgrämien.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus C:/Datei x in D:/Datei y speichern
02.06.2009 20:21:51
Erich
Hi Peter,
das Makro gehört in ein normales Modul (so wie Modul1) der Eingabemappe:

Option Explicit
Sub Uebertrag()
Dim arrQ, arrW(1 To 6), wkbSamm As Workbook
Const strPf As String = "f:\exc\w-w-w\tmp\Peter_Samm.xls" ' anpassen
arrQ = Application.Transpose(Sheets("Werte-Eingabe").Range("B5:B13").Value)
arrW(1) = arrQ(1)                   ' Eingabeblatt
arrW(2) = arrQ(3)
arrW(3) = arrQ(4)
arrW(4) = arrQ(6)
arrW(5) = arrQ(7)
arrW(6) = arrQ(9)
' Application.ScreenUpdating = False         ' NACH DEM TEST aktivieren
Set wkbSamm = Workbooks.Open(strPf)
With wkbSamm.Sheets("Werte-Eingabe")         ' Ausgabeblatt
.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = arrW
End With
wkbSamm.Close True
Application.ScreenUpdating = True
MsgBox "Übertrag erledigt"
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Werte aus C:/Datei x in D:/Datei y speichern
03.06.2009 12:00:12
Peter_weber
Hallo Erich,
leicht angepasst und es funktioniert sehr gut. Musste nur in der unteren Zeile das Ausgabeblatt einfügen.
Also, anstatt "Werte-Eingabe" z.B. "Tabelle1"
With wkbSamm.Sheets("Werte-Eingabe") ' Ausgabeblatt
Jetzt muss ich nur noch versuchen zu verstehen, warum es so gut funktioniert und das Makro an mein Problem anpassen.
Vielen herzlichen Dank !
Peter
AW: Werte aus C:/Datei x in D:/Datei y speichern
03.06.2009 12:25:53
Peter_weber
Hallo Erich,
ich weiß nicht, ob ich zu viel verlange und deine Zeit zu viel in Anspruch nehme. Ich möchte nicht aufdringlich sein.
Wie würde das Makro ausshen, wenn man solche Eingabemaske hätte und die roten Felder in verschiedener Rheinenfolge wegspreichern möchte (Rheinenfolge in blau angemerkt)
https://www.herber.de/bbs/user/62184.xls
Vielen Dank im voraus für die Hilfe
Peter
Anzeige
bestimmte Werte übertragen
03.06.2009 12:55:57
Erich
Hi Peter,
probier mal

Sub Uebertrag()
Dim arrQ, arrW(1 To 15), wkbSamm As Workbook
Const strPf As String = "C:\Dokumente und Einstellungen\tkaczuk\Eigene Dateien" & _
"\Excel-dateien\Excel-Funktions-Beispiele\VBA\XXX.xls"       ' anpassen
arrQ = Application.Sheets("Projektverlauf").Range("A1:F30").Value
arrW(1) = arrQ(1, 1)                  ' Eingabeblatt
arrW(2) = arrQ(2, 2)
arrW(3) = arrQ(4, 6)
arrW(4) = arrQ(6, 6)
arrW(5) = arrQ(4, 2)
arrW(6) = arrQ(6, 2)
arrW(7) = arrQ(13, 2)
arrW(8) = arrQ(14, 2)
arrW(9) = arrQ(17, 2)
arrW(10) = arrQ(18, 2)
arrW(11) = arrQ(19, 2)
arrW(12) = arrQ(21, 2)
arrW(13) = arrQ(22, 2)
arrW(14) = arrQ(23, 2)
arrW(15) = arrQ(30, 6)
'Application.ScreenUpdating = False         ' NACH DEM TEST aktivieren
Set wkbSamm = Workbooks.Open(strPf)
With wkbSamm.Sheets("Tabelle1")         ' Ausgabeblatt
.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, UBound(arrW)) = arrW
End With
wkbSamm.Close True
Application.ScreenUpdating = True
MsgBox "Übertrag erledigt"
End Sub

Hinter "With wkbSamm.Sheets(" hattest du noch mal den Pfad und Namen der Zielmappe angegeben.
da gehört aber nur der Blattname hin. Die Zielmappe steht ohnehin schon mit wkbSamm fest.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: bestimmte Werte übertragen
03.06.2009 13:58:32
Peter_weber
Hallo Erich,
super! funktioniert genial, wie hast das nur gemacht?
Ich sehe ich muss noch viel lernen!
Vielen Dank
Peter
AW: bestimmte Werte übertragen
08.06.2009 12:06:47
Peter_weber
Hallo Erich,
ich benötige noch einmal Hilfe.
Wie würde das obige Macro aussehen, wenn z.B
arrW(14) = arrQ(23, 2)
arrW(15) = arrQ(30, 6)
nicht in Tabelle1 weggespeichert werden sollen, sondern in Tabelle2 in "XXX"
Danke für deine Hilfe im voraus,
Peter
AW: bestimmte Werte übertragen
08.06.2009 12:53:36
Erich
Hi Peter,
sollen die Werte in Tab2 auch ab Spalte A, jeweils in eine neue Zeile geschrieben werden?
Dann könnte das so funzen:

Option Explicit
Sub Uebertrag()
Dim arrQ, arrW(1 To 13), wkbSamm As Workbook, lngZ As Long
Const strPf As String = _
"C:\Dokumente und Einstellungen\tkaczuk\Eigene Dateien" & _
"\Excel-dateien\Excel-Funktions-Beispiele\VBA\XXX.xls"       ' anpassen
arrQ = Application.Sheets("Projektverlauf").Range("A1:F30").Value
arrW(1) = arrQ(1, 1)                  ' Eingabeblatt
arrW(2) = arrQ(2, 2)
arrW(3) = arrQ(4, 6)
arrW(4) = arrQ(6, 6)
arrW(5) = arrQ(4, 2)
arrW(6) = arrQ(6, 2)
arrW(7) = arrQ(13, 2)
arrW(8) = arrQ(14, 2)
arrW(9) = arrQ(17, 2)
arrW(10) = arrQ(18, 2)
arrW(11) = arrQ(19, 2)
arrW(12) = arrQ(21, 2)
arrW(13) = arrQ(22, 2)
'Application.ScreenUpdating = False         ' NACH DEM TEST aktivieren
Set wkbSamm = Workbooks.Open(strPf)
With wkbSamm.Sheets("Tabelle1")         ' Ausgabeblatt 1
.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, UBound(arrW)) = arrW
End With
With wkbSamm.Sheets("Tabelle2")         ' Ausgabeblatt 2
lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(lngZ, 1) = arrQ(23, 2)
.Cells(lngZ, 2) = arrQ(30, 6)
End With
wkbSamm.Close True
Application.ScreenUpdating = True
MsgBox "Übertrag erledigt"
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: bestimmte Werte übertragen
08.06.2009 15:49:54
Peter_weber
Hallo Erich,
vielen Dank. Es funktioniert sehr gut
Gruß,
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige