Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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 übertragen mit variabler Endsumme

Daten übertragen mit variabler Endsumme
Maris
Hallo liebe VBA Profis,
ich hab euch ein Beipiel einer Datei angehängt. Ich möchte das in dem Übersichtstabellenblatt die Endsummen aus dem betreffenden Monat in den Betreffenden Monat übernommen werden.
Im Übersichtstabs steht ein Datum bspw. 01.07.2010, darunter ein Land. Ich kriege ein Datenfeed, welches ich nicht verändern möchte allerdings sind die Monate in folgendem Format für Juli: 07-2010.
Die Zeilen in den Datentabs änderns sich ständig und es ergibt sich immer eine andere Summe, deswegen soll immer die letzte Zeile verwendet werden. Die Funktion soll folgende sein:
Setze mir in dem Übersichtstab die Endsumme aus dem Datentab in den richtigen Monat und zum richtigen Land. Also im Juli ist die Ensumme für UK 2128845 ... Also soll im Übersichtstab im Juli in der Zeile UK der Wert eingetragen werden.
Da ich die DAten immer nur für 3 Monate bekomme und die Datenquelle fortlaufend ist sollen nicht gefundene Monate ignoriert werden. Da ich im August nicht mehr die Wert vom Juli habe und des wegen soll dieses Datum ausgelassen werden.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt. Bin über jegliche Hilfe euch sehr dankbar.
Liebe Grüß
Maris
https://www.herber.de/bbs/user/70376.xls
AW: Daten übertragen mit variabler Endsumme
02.07.2010 10:24:27
Fragender
Hi Maris
Es ist aber schon richtig, dass in der Übersicht Datumswerte aus 2010 und in den Ländertabellen aus 2009 stehen, oder?
Du willst also die Summen aus den Ländertabellen aus 2009 in die Übersicht übertragen, obwohl die Übersicht für 2010 ist?
Und du schreibst unter Anderem:
...allerdings sind die Monate in folgendem Format für Juli: 07-2010...
In den Ländertabellen wird aber dieses Format verwendet:
2009-09
also genau umgedreht.
Was davon ist nun richtig?
Ciao
Thorsten
@Thorsten-noch immer fragender antworter? ;-) owT
02.07.2010 10:39:35
robert
AW: @Thorsten-noch immer fragender antworter? ;-) owT
02.07.2010 10:54:19
Maris
Ja sorry mein Fehler! Du hast recht es sollte 2009 sein *schäm*
Anzeige
@Robert - törrlich digger!! ;-)) owT
02.07.2010 10:40:58
Oberschlumpf
welche sprache ist das ?owT
02.07.2010 10:51:18
robert
AW: welche sprache ist das ?owT
02.07.2010 10:56:08
Oberschlumpf
Hi Robert
Das willsu gar nich wissn, aber vllt kennsu ja...ach..is egal
Is ja eh nur Spaß ;-)
Ciao
Thorsten
*grinsend bei 34°* :-)) owT
02.07.2010 11:04:39
robert
AW: Daten übertragen mit variabler Endsumme
02.07.2010 10:51:18
Oberschlumpf
Hi Maris
Ich hab mal das hier erstellt:
https://www.herber.de/bbs/user/70379.xls
Ist es so, wie du möchtest?
Ciao
Thorsten
AW: Daten übertragen mit variabler Endsumme
02.07.2010 11:51:08
Maris
Hallo Thorsten,
vielen Dank für deinen Makro :-) Er funktioniert wunderbar!!! Könntest du ihn vielleicht noch ein wenig kommentieren... Da ich ihn nicht ganz verstehe und ihn ein wenig anpassen müßt!
Danke dir vielmals!
Gruß
Maris
AW: Daten übertragen mit variabler Endsumme
02.07.2010 12:49:28
Oberschlumpf
Hi Maris
Hier die Datei noch mal - mit Erklärungen
https://www.herber.de/bbs/user/70385.xls
Verstehst du den Code jetzt - ich hoffe doch :-) - besser?
Ciao
Thorsten
Anzeige
AW: Daten übertragen mit variabler Endsumme
02.07.2010 13:58:58
Maris
Perfekt Vielen Dank! Jetzt versteh ich auch alles :-D!!!! Ist es noch möglich die Funktion einzubauen das er mir den Vormonat in Spalte D schreibt?
Liebe Grüsse,
Maris
AW: Daten übertragen mit variabler Endsumme
02.07.2010 14:23:28
Oberschlumpf
meinst du so?
https://www.herber.de/bbs/user/70389.xls
Hilfts denn?
Für erneute Code-Erklärung hab ich keine Zeit.
Sollte aber diesmal vllt auch ohne verstanden werden, sind ja nur 2 Schleifen ;-)
Ciao
Thorsten
AW: Daten übertragen mit variabler Endsumme
02.07.2010 15:41:49
Maris
Du bist der Hammer! Klar hilft es EINFACH Genial!!!!!
Vielen Dank!
AW: Daten übertragen mit variabler Endsumme
05.07.2010 14:47:16
Maris
Hi nochmal Oberschlumpf,
leider berücksichtigt der Code nur die Monate, bei mir wechseln aber auch die Jahre :-(. Hab leider nicht geschaft ihn selbst anzupassen...
Es geht um diese Passage:

For liCol = 1 To lsh.Cells(1, Columns.Count).End(xlToLeft).Column
'wenn der Monat im gefundenen Datumswert  _
aus Spalte A von Übersicht
'gleich ist mit den 2 rechten Zeichen aus  _
den Überschriften der Ländertabellen
'z Bsp "2009-07" --> 2 Zeichen von rechts =  _
"07", dann
If Format(Month(.Range("A" & liDate).Value), _
"00") = Right(lsh.Cells(1, liCol).Value, 2) Then

UND HIER NOCHMAL DER KOMPLETTE CODE:

Sub sbGesamt()
Dim liDate As Integer, liSh As Integer, lsh As Worksheet, liLaender As Integer, liCol As  _
Integer
With Sheets("Revenue Forecast")
For liDate = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If IsDate(.Range("A" & liDate).Value) Then
For liSh = 2 To Sheets.Count
Set lsh = Sheets(liSh)
liLaender = liDate + 1
Do Until IsDate(.Range("A" & liLaender).Value)
If InStr(lsh.Name, .Range("A" & liLaender).Value) > 0  _
Then
For liCol = 1 To lsh.Cells(1, Columns.Count). _
End(xlToLeft).Column
If Format(Month(.Range("A" & liDate).Value), _
"00") = Right(lsh.Cells(1, liCol).Value, 2) Then
.Range("C" & liLaender).Value = lsh. _
Cells(lsh.Cells(Rows.Count, liCol).End(xlUp).Row, liCol).Value
Exit For
End If
Next
Exit Do
End If
liLaender = liLaender + 1
Loop
Next
End If
Next
For liDate = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If IsDate(.Range("A" & liDate).Value) Then
liLaender = liDate + 1
Do Until IsDate(.Range("A" & liLaender).Value)
If .Range("A" & liLaender).Offset(10, 0).Value  "" Then
.Range("D" & liLaender).Offset(10, 0).Value = .Range("C" _
& liLaender).Value
Else
Exit Do
End If
liLaender = liLaender + 1
Loop
End If
Next
End With
End Sub

Anzeige
AW: Daten übertragen mit variabler Endsumme
07.07.2010 09:05:43
Maris
Hallo Oberschlumpf,
wäre es vielleicht möglich den Code anzupassem, das er auch die Jahre mitberücksichtigt? Desweiteren sollen immer nur im Folgemonat die Werte der einzelen Länder übertragen werden im Moment werden alle Werte wie TOTAL und YTD auch mit ünertragen.
Wäre mir ein große Hilfe, wenn du noch Zeit hast das kurz zusammen zu basteln. Ich schaff leider nicht, bin aber trotzalledem dabei ihn selbstständig anzupassen.
Thanks for all!
Gruß
Chris
AW: Daten übertragen mit variabler Endsumme
08.07.2010 10:34:49
Oberschlumpf
Hi Chris
Zeig mal bite eine Bsp-Datei mit Daten aus unterschiedlichen Jahren.
Ich versuch dann noch mal mein Glück.
Ciao
Thorsten
Anzeige
AW: Daten übertragen mit variabler Endsumme
08.07.2010 11:03:26
Maris
Hi Oberschlumpf ich habs nochmal gepostet mit ausführlicher Fehlerbeschreibung am Ende vom Code, sollte ganz oben in der Forumsliste sein mit Beispieldatei angehängt! Sorry erstmal wenn ichs noch in ein wenig veränderter Form gepostet habe verweise auch gerne nochmal auf dich!
AW: Daten übertragen mit variabler Endsumme
08.07.2010 12:20:27
Maris
Anbei nochmal der aktuelle Post:

Hallo,
wer kann mir den mit diesem Code helfen :-(((
Das war die Aufgabenstellung und wurde per folgendem Makro auch gelöst:
https://www.herber.de/bbs/user/70488.xls
Ich möchte das in dem Übersichtstabellenblatt die Endsummen aus dem betreffenden Monat in den Betreffenden Monat übernommen werden.
Im Übersichtstabs steht ein Datum bspw. 01.07.2010, darunter ein Land. Ich kriege ein Datenfeed, welches ich nicht verändern möchte allerdings sind die Monate in folgendem Format für Juli: 07-2010.
Die Zeilen in den Datentabs änderns sich ständig und es ergibt sich immer eine andere Summe, deswegen soll immer die letzte Zeile verwendet werden. Die Funktion soll folgende sein:
Setze mir in dem Übersichtstab die Endsumme aus dem Datentab in den richtigen Monat und zum richtigen Land. Also im Juli ist die Ensumme für UK 2128845 ... Also soll im Übersichtstab im Juli in der Zeile UK der Wert eingetragen werden.
Da ich die DAten immer nur für 3 Monate bekomme und die Datenquelle fortlaufend ist sollen nicht gefundene Monate ignoriert werden. Da ich im August nicht mehr die Wert vom Juli habe und des wegen soll dieses Datum ausgelassen werden.
Ist es noch möglich die Funktion einzubauen das er mir den Vormonat in Spalte D schreibt?
Die Lösung von dem mit dem Makro schaut folgendermaßen aus:
Sub sbGesamt()
Dim liDate As Integer, liSh As Integer, lsh As Worksheet, liLaender As Integer, liCol As  _
Integer
With Sheets("Revenue")
For liDate = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If IsDate(.Range("A" & liDate).Value) Then
For liSh = 2 To Sheets.Count
Set lsh = Sheets(liSh)
liLaender = liDate + 1
Do Until IsDate(.Range("A" & liLaender).Value)
If InStr(lsh.Name, .Range("A" & liLaender).Value) > 0   _
_
Then
For liCol = 1 To lsh.Cells(1, Columns.Count). _
End(xlToLeft).Column
If Format(Month(.Range("A" & liDate).Value), _
_
"00") = Right(lsh.Cells(1, liCol).Value, 2) Then
.Range("C" & liLaender).Value = lsh. _
Cells(lsh.Cells(Rows.Count, liCol).End(xlUp).Row, liCol).Value
Exit For
End If
Next
Exit Do
End If
liLaender = liLaender + 1
Loop
Next
End If
Next
For liDate = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If IsDate(.Range("A" & liDate).Value) Then
liLaender = liDate + 1
Do Until IsDate(.Range("A" & liLaender).Value)
If .Range("A" & liLaender).Offset(10, 0).Value  "" Then
.Range("D" & liLaender).Offset(10, 0).Value = .Range("C" _
_
& liLaender).Value
Else
Exit Do
End If
liLaender = liLaender + 1
Loop
End If
Next
End With
End Sub

Das PROBELM bei diesem Makro ist, das nur die MONATE berücsichtigt. Da aber dasa File über Jahresübergreifend ist muß auch die Jahreszahl berücksichtigt werden. Also 2010-06 und bsw. 2011-07. Das nächste Problem ist das der Vormonat übertragen wird, jedoch werden alle Zeilen aus dem Vormonat übertragen... es soll aber nur die Zeilen übertragen werden in denen ein Ländername steht.
Wie ihr beim ausführen des Makros sehen könnt werden auf die daten vom Vormaonat in Zeile15+16 in Teile 25+26 übertragen und die Daten für die Monate 02-05 von 2010 in die Zeilen für die Monate 2011 übernommen
Es ist wahrscheinlich nur eine kleine Anpassung... aber ich schaffs leider nicht :-(((
Krass viel zu lesen ich weiss.!
Bitte um Hilfe :-)!
Vielen lieben Dank an alle schon mal!
Gruß
Maris
Anzeige
AW: Daten übertragen mit variabler Endsumme
02.07.2010 11:06:47
fcs
Hallo Maris,
das folgende Makro sollte die gewünschte Funktionalität haben.
Gruß
Franz
Sub Uebersicht_aktualisieren()
'Übersicht aktualisieren
Dim wksLand As Worksheet, SpalteMonat As Variant, sMonat As String
Dim Datum As Date
Dim wksUeber As Worksheet, dblSumme, Zeile As Long
On Error GoTo Fehler
Set wksUeber = Worksheets("Übersicht")
With wksUeber
For Zeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If IsDate(.Cells(Zeile, 1)) Then
Datum = .Cells(Zeile, 1)
sMonat = Format(Datum, "YYYY-MM")
Else
Set wksLand = Worksheets("Daten " & .Cells(Zeile, 1))
SpalteMonat = Application.WorksheetFunction.Match(sMonat, wksLand.Cells(1, 1).EntireRow, _
0)
If IsError(SpalteMonat) Then
'do nothing
Else
'Summe aus letzter Zeile im Länderblatt holen und eintragen
With wksLand
dblSumme = .Cells(.Rows.Count, SpalteMonat).End(xlUp).Value
End With
.Cells(Zeile, 2) = dblSumme
End If
End If
NextZeile:
Next
End With
Fehler:
With Err
Select Case .Number
Case 0 'alles ok
Case 1004 'Monat in Daten-Tabellenblatt nicht gefunden
Resume NextZeile
Case 9 'Daten-Tabelle zu Land nicht vorhanden
wksUeber.Cells(Zeile, 2) = "Datentabelle fehlt"
MsgBox "Fehler-Nr.: " & .Number & vbNewLine _
& "Datentabelle zu Land """ & wksUeber.Cells(Zeile, 1) & """ fehlt!"
Resume NextZeile
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbNewLine & .Description
End Select
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige