2.1k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von lukeskywalker Einsteiger_in (31 Punkte)
Hallo zusammen,

wenn ich mal nicht weiter wußte, habe ich hier immer eine Lösung gefunden! Also was den Support angeht gibt 100 Sterne. Echt tolles Forum!

Jetzt habe ich mich auch mal registriert und hoffe das mir jemand weiter helfen kann.

Es geht um folgendes:

Version: Excel 2007

Ich habe eine Tabelle (siehe Anhang Ausgangstabelle_Beispiel) mit verscheidenen Daten (Kommentare sind auch dabei):

Marke Umsatz Absatz Kalendarwoche/Jahr (44.2012)

Diese sind jeweils horizontal angeordnet.

Nun sollen diese Daten per Makro in die Zieltablele übertragen werden. Der Kniff dabei ist, dass diese in der Zieltabelle vertikal angeordnet werden sollen (Siehe Anhang Zieltabelle_Beispiel).
Des Weiteren sollen nur die farblich markierten Zellen ausgelesen werden.
Außerdem soll eine Berechnung in der Zieltabelle durchgeführt werden und in eine Spalte eingefügt werden. Also die Spalte Preis (Absatz/Umsatz). Auch die Kalendarwochenangabe soll in die Zieltabelle und dabei in Jahr und KW aufgesplittet werden . Meine Fragen wäre jetzt:

Wäre es sinnvoll jeweils ein Makro für den Import und ein zweites für die Berechnung zu erstellen? Wie würden diese Makros überhaupt aussehen?

Wäre Super, wenn mir jemand helfen könnte. Ich kenne mich (noch) nicht so gut damit aus. Gerne schicke ich euch auch die Beispieltabellen.
Leider weiß ich nicht man diese anhängt.

Schonmal vielen Dank für eure Antworten und Vorschläge. Grüße

Anhang:

Ausgangstabelle:

www.file-upload.net/download-7032528/Ausgangstabelle_Beispiel.xlsx.html

Eingangstabelle:
www.file-upload.net/download-7032531/Eingangstabelle_Beispiel.xlsx.html

6 Antworten

0 Punkte
Beantwortet von lukeskywalker Einsteiger_in (31 Punkte)
Hat Keiner eine Idee? Also ich habe es schonmal hingekriegt, mehrere Daten aus einer Zeile auszulesen und und in eine neue TAbelle zu übertragen. Wenn ich nun Daten aus 2 Zeilen auslese, werden diese in der Eingangstabelle untereinander dargestellt und nicht nebeneinanader. Hat jemand einen Tipp mit welchen Befehl man die nebeneinander setzten kann?

Für eure Hilfe wäre ich euch sehr dankbar. Leider bin ich was VBA angeht noch ein blutiger Anfänger.
0 Punkte
Beantwortet von lukeskywalker Einsteiger_in (31 Punkte)
Hallo niemand da, der mir helfen könnte?

Ich habe folgenden Code, der es immerhin schonmal schafft die WErte zu übertragen und senkrecht in der neuen Tabelle darzustellen, zusammengesetzt. Jetzt wäre es super zu wissen, wie mehere ausgelesene Werte nebeneinander gesetzt werden können.


[code]
Public Sub Senkrecht()

Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim lngZ As Long
Dim lngZZ As Long
Dim intS As Long

Set wksQ = Worksheets("Tabelle1") 'Quellblatt
Set wksZ = Worksheets("Tabelle2") 'Zielblatt
lngZZ = 2 'Zeile

With wksQ
For lngZ = 1 To 25 'Zeilen auslesen
For intS = 4 To 14 'Spalten auslesen

wksZ.Cells(lngZZ, 1).Value = .Cells(lngZ, intS).Value 'Spalte

lngZZ = lngZZ + 1 'Freie Zeilen zwischen den Werten
Next
Next
End With
End Sub
0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
Hi,
ich kann Deine Beispiele wegen der Firewall in meiner Firma leider nicht anschauen, aber:

Folgender Code kopiert Tabelle1 nach Tabelle2, "dreht" die Tabelle um 90 grad und führt für jede resultierende Zeile eine "berechnung" durch:

Sub copyCols()

Dim wsSrc As Worksheet
Dim wsDst As Worksheet
Dim usedRng As Range
Dim col As Range
Dim row As Range
Dim x, y As Integer

Set wsSrc = ActiveWorkbook.Worksheets("Tabelle1")
Set wsDst = ActiveWorkbook.Worksheets("Tabelle2")
Set usedRng = wsSrc.UsedRange

x = 1
y = 1

For Each col In usedRng.Columns
For Each row In col.Rows
wsDst.Cells(y, x).Value = row.Value
x = x + 1
Next row
doCalculation (wsDst.Rows(y))
y = y + 1
x = 1
Next col

End Sub

Sub doCalculation(ByVal rw As Range)
rw.Columns(10).Value = rw.Columns(1).Value & "-" & rw.Columns(2).Value & "-" & rw.Columns(3).Value
End Sub
0 Punkte
Beantwortet von lukeskywalker Einsteiger_in (31 Punkte)
Danke. Das ist ja schonmal ein Ansatz. Leider werden die Daten in der Zieltabelle nicht so angeordnet wie ich es gerne hätte.

Also die Ausgangstabelle sieht so aus:

KW1 KW2 KW3 KW1 KW2 KW3 -> Das ganze wird auch ständig erweitert...
Produkt 1 Absatz Absatz Absatz Umsatz Umsatz Umsatz
15887 45556 15556 2255 2155 1233

KW1 KW2 KW3 KW1 KW2 KW3 -> Das ganze wird auch ständig erweitert...
Produkt 2 Absatz Absatz Absatz Umsatz Umsatz Umsatz
15887 45556 15556 2255 2155 1233

usw.

Die KW muss nicht mit übertragen werden...

Das ganze soll dann automatisiert(jede Woche oder Monat) in eine andere Ziel Excel Tabelle (Hab vergessen zu erwähnen das es in eine andere ExcelDatei rein soll) übertragen werden. Und so sollte es aussehen:

Produkt 1 Produkt 2 Produkt 3 ...
Absatz Umsatz Preis
KW1 15887 2255 =Absatz/Umsatz "" ""
KW2 45556 2155 = "

usw.

Das mit der Kalkulation ist erstmal nicht so dringend bzw. wichtig. Die Übertragung und die Anordnung bereitet mir aktuell Kopfzerbrechen.
0 Punkte
Beantwortet von lukeskywalker Einsteiger_in (31 Punkte)
Ups! Leider wurden die tabs nicht mit übernommen. Ich hoffe Du kannst es dennoch lesen und verstehen.
0 Punkte
Beantwortet von lukeskywalker Einsteiger_in (31 Punkte)
Hat sich erledigt!
...