Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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

Daten kopieren und zeilenweise anordnen

Daten kopieren und zeilenweise anordnen
16.02.2015 13:11:58
Peter
Hallo,
wir bekommen in regelmäßigen Abständen Berichte über Lagerbestände. (siehe Wochenbericht in angefügter Datei) Der Aufbau dieser Listen ist IMMER absolut IDENTISCH. Nur die Daten nicht :-)
Diese Daten müssen in eine Gesamtübersicht eingetragen werden, um diese wiederum per Pivot auszuwerten. (siehe Gesamtübersicht in angefügter Datei)
Ich würde das kopieren, welches im Moment noch ein MA händisch macht, gerne per Makro automatisieren.
Zeilen , in denen nur der Ort ohne weitere Daten steht, sollen nicht berücksichtigt werden.
Meine Idee war, eine Schleife zu bauen, die die Einträge aus den Wochenberichte entsprechend der Anforderungen zeilenweise in die Gesamtübersicht kopiert.
Ich habe schon ziemlich rumgebastelt, aber schaffe es nicht.
Kann mir jemand helfen?
Gruß,
Peter
Datei:
https://www.herber.de/bbs/user/95792.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten kopieren und zeilenweise anordnen
16.02.2015 13:39:52
MCO
Mahlzeit!
Probiers mal damit:
Sub daten_extract()
With Sheets(2)
For Each col In .Range("B2:z2").SpecialCells(xlCellTypeConstants)
For Each rw In .Range("a4:a99").SpecialCells(xlCellTypeConstants)
KW = .Cells(2, col.Column)
ort = .Cells(rw.Row, 1)
ind = .Cells(rw.Row, col.Column)
meng = .Cells(rw.Row, col.Column + 1)
meng_ind = .Cells(rw.Row, col.Column + 2)
With Sheets(1)
lz = .Cells(Rows.Count, "A").End(xlUp).Row + 1
.Cells(lz, 1) = ort
.Cells(lz, 2) = KW
.Cells(lz, 3) = meng
.Cells(lz, 4) = meng_ind
End With
Next rw
Next col
End With
End Sub


Gesamtliste
 ABCD
1LagerKWMengeMengenindex
2KölnKW 518862111
3DüsseldorfKW 5116634216
4FrankfurtKW 51  
5MünchenKW 5112387161
6WuppertalKW 51  
7KölnKW 52630179
8DüsseldorfKW 5212607164
9FrankfurtKW 52  
10MünchenKW 529161119
11WuppertalKW 52  
12KölnKW 53415952
13DüsseldorfKW 538301108
14FrankfurtKW 53  
15MünchenKW 53615480
16WuppertalKW 53  
17KölnKW 01284536
18DüsseldorfKW 01568575
19FrankfurtKW 01  
20MünchenKW 01392451
21WuppertalKW 01  
22KölnKW 028653108
23DüsseldorfKW 0216120209
24FrankfurtKW 02  
25MünchenKW 0212766166
26WuppertalKW 02  
27KölnKW 038800111
28DüsseldorfKW 0315912207
29FrankfurtKW 03  
30MünchenKW 0312294160
31WuppertalKW 03  
32KölnKW 048587109
33DüsseldorfKW 0416088212
34FrankfurtKW 04  
35MünchenKW 0412379163
36WuppertalKW 04  
37KölnKW 058373107
38DüsseldorfKW 0516278214
39FrankfurtKW 05  
40MünchenKW 0512329162
41WuppertalKW 05  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.19 einschl. 64 Bit


Anzeige
AW: Daten kopieren und zeilenweise anordnen
16.02.2015 18:37:28
Peter
Danke für deine Mühe. Es sind zwar noch die leeren Zeilen drin, aber mit deinem Beitrag und dem von jummy konnte ich das Problem lösen.

AW: Daten kopieren und zeilenweise anordnen
16.02.2015 13:59:31
yummi
Hallo Peter,
den folgenden Cod in ein Modul kopieren, das kannst du dann entweder über Makros aufrugen oder legst dur noch einen Button an, wie Du willst:

Option Explicit
Sub Importiere()
Dim letzteZeileWB As Long
Dim letztezeileGesamt As Long
Dim str As String
Dim rng As Range
Dim letzteSpalteWB As Integer
Dim wksGes As Worksheet
Dim wksWB As Worksheet
Dim i As Long
Dim strRange As String
Dim iSpalte As Integer
Set wksGes = ThisWorkbook.Sheets("Gesamtliste")
Set wksWB = ThisWorkbook.Sheets("Wochenberichte")
letzteZeileWB = wksWB.Cells(wksWB.Rows.Count, 1).End(xlUp).Row
letztezeileGesamt = wksGes.Cells(wksGes.Rows.Count, 1).End(xlUp).Row + 1
letzteSpalteWB = wksWB.Cells(4, 256).End(xlToLeft).Column
str = InputBox("Welche Woche soll imporitert werden?", Default:="KW")
If InStr(1, str, "KW", vbTextCompare) = 0 Then
str = "KW " & str
End If
strRange = "A2:" & WandleZahlInBuchstaben(letzteSpalteWB) & "2"
Set rng = Sheets("Wochenberichte").Range(strRange).Find(str)
If Not rng Is Nothing Then
iSpalte = rng.Column
Set rng = Nothing
Else
MsgBox "Keinen Eintrag zu der Woche gefunden"
End If
If iSpalte  0 Then
For i = 4 To letzteZeileWB
If wksWB.Cells(i, iSpalte + 1).Value  "" Then
wksGes.Cells(letztezeileGesamt, 1).Value = wksWB.Cells(i, 1).Value
wksGes.Cells(letztezeileGesamt, 2).Value = str
wksGes.Cells(letztezeileGesamt, 3).Value = wksWB.Cells(i, iSpalte + 1).Value
wksGes.Cells(letztezeileGesamt, 4).Value = wksWB.Cells(i, iSpalte + 2).Value
letztezeileGesamt = letztezeileGesamt + 1
End If
Next i
End If
End Sub
Function WandleZahlInBuchstaben(ByVal iWert As Integer) As String
Dim Spaltenbuchstabe As String
Spaltenbuchstabe = Right(Columns(iWert).Address, _
Len(Columns(iWert).Address) - _
InStrRev(Columns(iWert).Address, "$"))
WandleZahlInBuchstaben = Spaltenbuchstabe
End Function
Gruß
yummi

Anzeige
AW: Daten kopieren und zeilenweise anordnen
16.02.2015 18:35:12
Peter
Super!
War zwar ein wenig fummelig es auf meine komplette Liste anzupassen, aber es funktioniert :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige