Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Summen Matrix als VBA/ Daten in die richtigen Zeilen einfügen





Frage

Hallo, ich brauch Eure Hilfe!! Ich hab zwei Tabellen erstellt. In Tabelle 1 sind alle Artikel aufgeführt und in Tabelle 2 alle Verkaufsposten pro Artikel pro Monat aufgeführt. Tabelle 1 soll eine Übersicht werden wie oft sich ein Artikel im Monat verkauft hat (die Monatszahlen stehen neben der Artikelnummer ab Spalte F). Da das so eine große Datenmenge ist wollte ich gerne das per VBA lösen. Der Code müsste den aus der Tabelle 1 aus Spalte A die Artikelnummer in der Tabelle 2 suchen und dann aus der Spalte Monat 1 den Wert in die Spalte Monat 1, dann für Monat 2 usw. (soll dann jeden Monat bzw. Woche aktualisiert werden) bis in die Tabelle 1 in die richtige Zeile schreiben. Sollte ein Artikel noch nicht in dem Monat verkauft worden sein, soll 0 eingetragen werden. Vielen Dank für Eure Mühe!!!!!!!!! Gruß Elhamplo

Antwort 1 von Saarbauer

Hallo,

müsste mit Summenprodukt() machbar sein und um den richtigen Monat zu ermitteln, müsste mit Bereich.Verschieben() der Monat zu berücksichten sein.

Gruß

Helmut

Antwort 2 von Elhamplo

Hallo,

danke für deine Hilfe!!!!!

Hab das mit Summenprdukt nicht hinbekommen. Hab das dann einfach Summen-Matrix formel gemacht. Das Problem dabei ist die große Datenmenge (30000 Artikel).

Ich hab die Artikelposten Jetzt so in Excel eingefügt das man das vielleicht mit einem Sverweis machen könnet. Gibt es für den Sverweis eine VBA Möglichkeit, nur das man nicht für jede zeile ein Artikel braucht??? Die Monatsspalten stehen alle fest.

z.B.

Für Monat 1 ist die Zielspalte F Monat 2 G

Tabelle 1 Artikelnummer aus Spalte 1suche in Tabelle 2 den Wert aus Spalte B (für Monat 1) und schreibe den Wert in die Zeile des Artikels in Spalte F für Monat 1.

Hast Du eine Idee????

Danke für deine Hilfe!!!!

Gruß


Elhamplo

Antwort 3 von achim_13086

uten Tag,

wie wäre es, die Funktionen Zählenwenn für die Mengen und Summwenn für die Umsätze zu benutzen, um damit eine Verkaufsstatisitk auf z bauen.

Ich selbst würde ein drittes Tabellenblatt anlegen und in der Spalte A die Artikelnummern und in Spalte B die Artikelbezeichnungen übernehmen.
Von Spalte C bis Spalte Z würde ich in Zeile 1 die Monate im Format : MMM. eintragen.
In Spalte AA würde ich für jede Zeile, hier ab Zeile 3, die Summen der Mengen und in Spalte AB die Summen für die zwölf Spalten bilden.

Spalte C und D markieren, über Zellen formatieren und Registerkarte Ausrichtung über Spalte zentrieren auswählen und mit OK bestätigen.
In Zelle C1 Jan. eintragen. C1 und D2 markieren und mit dem Griffpunkt unten rechts bis zur Spalte Z automatisch erweitern.

In Zelle C2 Menge und D2 Umsätze eintragen. C2 und D2 wieder markieren und bis Spalte Z mit Autoausfüllen kopieren.

In dieses Grundgerüst würde ich dann in die jeweilige Spalten die Formeln zum Auslesen der Verkaufsdaten eintragen.

Wie gesagt: Zählenwenn für die Menge und Summewenn für die Umsätze.

Über VBA solltest Du ein Funktionsmakro erstellen, wenn es unbedingt über VBA erledigt werden soll.

Das Ganze ist zwar ein umfangreicher Hinweis ich hoffe dennoch, dass er zur Lösung beitragen kann.

Gruß
Joachim

Antwort 4 von nighty

hi Elhamplo :-)

30 000 oder gar 60 000 formeln ist wohl eher schmarn :-)

schick mir eine mustertabelle tabelle mit konkreten wünschen und aussagekräftigen betreff,die antwort stelle ich zusätzlich dann ins sn

gruss nighty

oberley@t-online.de

Antwort 5 von nighty

hi all :-)

das kam dabei heraus ,fuer einen automatismus

einzufuegen
alt f11/projektexplorer/tabelle1

gruss nighty

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column > 1 And Target.Column < 14 Then
Dim w1y As Long
Dim zaehler As Integer
Dim suche As Range
w1y = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
Set suche = Sheets(1).Range("A3:A" & w1y).Find(Cells(Target.Row, 1), Lookat:=xlWhole)
If Not suche Is Nothing Then
Sheets(1).Cells(suche.Row, Target.Column) = Sheets(2).Cells(Target.Row, Target.Column)
Sheets(1).Cells(suche.Row, 14) = 0
For zaehler = 2 To 13
If Sheets(1).Cells(suche.Row, zaehler) = "" Then Sheets(1).Cells(suche.Row, zaehler) = "0"
Sheets(1).Cells(suche.Row, 14) = Sheets(1).Cells(suche.Row, 14) + Sheets(1).Cells(suche.Row, zaehler)
Next zaehler
End If
End If
Application.EnableEvents = True
End Sub

Antwort 6 von Elhamplo

Hallo,

Danke für die super Hilfe!!!

Noch eine frage hab ich dazu. Sobald ich Testweise einen neuen Monat in Tabelle 2 einfüge, aktualisiert der Code nur die ersten beiden Zeilen (Zeile 4 und Zeile 5 ) in der Übersicht. Wo muss ich denn was ändern??? Und wenn ich in der Tabelle 1 ncoh eine Spalte zwischen der Artikelnummer un dem ersten Monat einfügen möchte, wo muss ich den Bezug ändern??

Danke für die Mühe!!

Gruß

Elhamplo

Antwort 7 von Elhamplo

Hallo,

sorry ich hab noch eine Frage:

Muss ich in der Tabelle 2, wenn ein neuer Monat oder sich noch Zahlen aus dem Vormonat änder, manuell die Zällen reinschreiben bzw. ändern??

Danke!!!

Gruß

Elhamplo

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: