Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten in externe Excel-Datei schreiben

Daten in externe Excel-Datei schreiben
11.02.2016 14:59:46
Lutz
Hallo Zusammen,
mein folgender Code funktioniert einwandfrei.
Folgende Frage ergibt sich für mich allerdings:
Welchen Teil müsste ich anpassen wenn ich folgendes ändern möchte:
Bisher schreibt er die Daten in einen neuen Reiter in der gleichen Datei.
NEU: ich würde gerne in EINE Datei - in einem Unterordner schreiben
Vielen Dank wie immer für die Hilfe.
Lutz

Sub Schichtbericht_Neu_Erfassung_Schicht1()
Dim wksEingabe As Worksheet
Dim wksListe As Worksheet
Dim lngZeile As Long, rngZelle As Range
Set wksEingabe = Worksheets("Schichtbericht_Schicht1")  'Eingabetabellenblatt
Set wksListe = Worksheets("Auswertung")      'Tabellenblatt in das die Daten geschrieben  _
werden _
sollen
With wksListe
'nächste freie Zeile in Liste
Set rngZelle = .Cells.Find(What:="*", After:=.Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If rngZelle Is Nothing Then
lngZeile = 1
Else
lngZeile = rngZelle.Row + 1
End If
'Spalte A - automatisch Nummerieren
.Cells(lngZeile, 1).Value = Application.WorksheetFunction.Max(.Columns(1)) + 1
'Value definiert den Wert zu übernehmen
'Kopfdaten start aus Zeile 1 und Bearbeiter (A40)
.Cells(lngZeile, 2).Value = wksEingabe.Range("C1").Value
.Cells(lngZeile, 3).Value = wksEingabe.Range("G1").Value
.Cells(lngZeile, 4).Value = wksEingabe.Range("B1").Value
.Cells(lngZeile, 5).Value = wksEingabe.Range("A40").Value
Dim intSpalte As Integer
Dim lngAusgang As Long
lngAusgang = 13 'Beginne Zeile 13
For intSpalte = 6 To 50 Step 4      'Fülle die Spalten 6 bis 50
.Cells(lngZeile, intSpalte).Value = wksEingabe.Cells(lngAusgang, 2).Value       'Daten   _
_
_
aus 13 B
.Cells(lngZeile, intSpalte + 1).Value = wksEingabe.Cells(lngAusgang, 33).Value  'Daten   _
_
_
aus 13 AG
.Cells(lngZeile, intSpalte + 2).Value = wksEingabe.Cells(lngAusgang, 3).Value   'Daten   _
_
_
aus 13 C
.Cells(lngZeile, intSpalte + 3).Value = wksEingabe.Cells(lngAusgang, 4).Value   'Daten   _
_
_
aus 13 D
lngAusgang = lngAusgang + 1 'Zeile wird hochgezählt
Next intSpalte
.Cells(lngZeile, 723).Value = wksEingabe.Range("D40").Value 'Direkte Übernahme von D40 in    _
_
_
Spalte 723
.Cells(lngZeile, 46).Value = wksEingabe.Range("A26").Value  'Direkte Übernahme von A26 in    _
_
_
Spalte 46
.Cells(lngZeile, 47).Value = wksEingabe.Range("A27").Value  'Direkte Übernahme von A27 in    _
_
_
Spalte 47
.Cells(lngZeile, 48).Value = wksEingabe.Range("A28").Value  'Direkte Übernahme von A28 in    _
_
_
Spalte 48
.Cells(lngZeile, 49).Value = wksEingabe.Range("A29").Value  'Direkte Übernahme von A29 in    _
_
_
Spalte 49
.Cells(lngZeile, 50).Value = wksEingabe.Range("A30").Value  'Direkte Übernahme von A30 in    _
_
_
Spalte 50
lngAusgang = 13
For intSpalte = 51 To 218 Step 7    'Spalte 51 bis 218
.Cells(lngZeile, intSpalte).Resize(, 6) = _
wksEingabe.Range(wksEingabe.Cells(lngAusgang, 13), _
wksEingabe.Cells(lngAusgang, 18)).Value 'Daten von Spalte M - R in betreffender  _
Zeile
.Cells(lngZeile, intSpalte + 6) = wksEingabe.Cells(lngAusgang, 20).Value 'Daten aus  _
Zelle T der betreffenden Zeile
lngAusgang = lngAusgang + 1 'Zeile wird hochgezählt
Next intSpalte
End With
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in externe Excel-Datei schreiben
11.02.2016 17:42:32
Herbert
Hallo Lutz,
soll nur die Tabelle "Auswertung" in eine separate AM gespeichert werden? Lade doch mal eine BeispielAM hoch.
Servus

AW: Daten in externe Excel-Datei schreiben
15.02.2016 09:53:57
Lutz
Hallo Herr Grom,
ich versuche es mal aufzuzeigen:

Sheet --> Schichtbericht_Schicht1
Hier werden die Daten durch den Erfasser (mich :-) ) eingetragen / aus Dropdowns ausgewählt
Anschließend klicke ich auf speichern und die werden im sheet --> Auswertung (nach Spalten)  _
gespeichert.
Da ich nun auch meine Kollegen mit der Datei arbeiten lassen möchte und die Erfassungsdatei  _
nicht zu groß werden soll, wäre es schön wenn folgendes passiert.
Neue Excel von mir erstellt im Pfad: C:\Ordner\auswertung.xls
sheet (Rohdaten)
Erfassung wie bisher in der bestehenden Excel
Beim betätigen des Buttons speichern:
Prüfe ob C:\Ordner\auswertung.xls geöffnet ist
Wenn nicht
Öffne C:\Ordner\auswertung.xls
Schreibe die Daten in das sheet (Rohdaten)
Schließe C:\Ordner\auswertung.xls
Ich hoffe mal das war verständlich.
Bei Bedarf lade ich von zu Hause später mal eine Datei hoch.
Vielen Dank und beste Grüße.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige