Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
676to680
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
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Teilergebnisse in VBA mit Spalteninformationen

Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 10:42:47
Gerry
Hallo,
kann mir jemand helfen?
Ich bräuchte eine Lösung in VBA bei der eine Tabelle in ein zweites Arbeitsblatt umgesetzt wird. Jedoch so, das für jeden Songtitel nur eine Zeile enthalten ist, aber mit der jeweiligen Gesamtsumme pro Song:
get it - mandrake, john, - 1,51
get it - mandrake, john - 1,72
get it - mandrake, john - 1,72
I love your smile - Klein, Art - 1,72
I love your smile - Klein, Art - 1,28
Einfach Liebe - Leiber, Michael - 1,28
I Can Fly - Murray, John - 0,58
I Can Fly - Murray, John - 1,28
I Can Fly - Murray, John - 1,28
Eigentlich wie die Funktion Teilergebnisse, nur dass die Information über Titel und Komponist einmal übertragen wird und rechts die Gesamtsumme steht.
Wäre super, wenn mir jemand helfen könnte!
Danke,
Gerry

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 11:02:37
Klaus-Dieter
Hallo Gerry,
versuche es mal damit:
Option Explicit

Sub liste_auswerten()
' findet in einer Liste, die nicht sortiert sein muss
' alle vorkommenden Artikel. Diese werden mit der Gesamtanzahl
' in einer neuen Liste ausgegeben.
' Geschrieben von Klaus-Dieter Oppermann, Oktober 2005
' Variablen deklarieren
Dim iZiel As Integer                        ' Letzte gefüllte Zelle
Dim az As Integer                           ' Zähler für Arrayfelder
Dim i As Integer                            ' Schleifenzähler (Arrays füllen)
Dim t As Integer                            ' Schleifenzähler (Gesamtpreise und Gesamtanzahl ermitteln)
Dim arr() As Variant                        ' Array für Artikelausgabe
Dim arr2() As Variant                       ' Array für Einzelpreisausgabe
iZiel = Range("A65536").End(xlUp).Row       ' Letzte gefüllte Zelle ermitteln (in Spalte A)
' Arrays dimensionieren
ReDim arr(iZiel, 0)                         ' Artikel
ReDim arr2(iZiel, 0)                        ' Einzelpreise
' Arrays mit Werten füllen
For i = 2 To UBound(arr)                                                ' laufe von Zeile 2 bis Tabellenende
If Application.WorksheetFunction.CountIf(Range(Cells(i, 1), _
Cells(1, 1)), Cells(i, 1).Value) = 1 Then                           ' wenn Artikel das erste Mal vorkommt, dann ...
arr(az, 0) = Cells(i, 1).Value                                  ' ... Name in Array einlesen
arr2(az, 0) = Cells(i, 3).Value2                                ' ... Einzelpreis in Array einlesen
az = az + 1                                                     ' ... Zähler für Arrayfeld plus 1
End If                                                              ' Ende der Auswertung
Next i                                                                  ' Schleifenzähler plus 1
' Inhalte ausgeben
Range("E2", "E" & UBound(arr)) = arr                                    ' Artikelnamen in Ausgabebereich schreiben
For t = 2 To az + 1                                                     ' laufe von Zeile 2 bis Listenende
Cells(t, 6) = Application.WorksheetFunction.SumIf(Range _
(Cells(iZiel, 1), Cells(2, 1)), Cells(t, 5), Range("C2","C" & iZiel))        ' Gesamtmenge berechnen
Next t                                                                  ' Schleifenzähler plus 1
Columns("E:H").EntireColumn.AutoFit                                     ' Spalten auf optimale Breite
End Sub

Viele Grüße Klaus-Dieter

Online-Excel
Anzeige
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 17:26:58
Gery
Hallo Klaus-Dieter,
erst mal vielen Dank für die prompte Hilfe.
Leider ist das ganze so kompakt, dass ich damit gnadenlos überfordert bin und es somit nicht entsprechend meiner Anforderung umbauen kann.
Es handelt sich um drei Spalten und zig Zeilen, die jeweils zusammengezogen werden sollen, wenn sich das Kriterium (Songtitel) in der ersten Spalte ändert.
Die Gesamtinformation einer Zeile, also Song, Composer und Betrag soll in ein zweites Arbeitsblatt übertragen werden, wobei der Betrag die Summe aller Zeilen sein soll, die dasselbe Kriterium in der ersten Spalte haben.
Ich denke, man kann deinen Vorschlag entsprechend umbauen aber ich bekomms nicht hin.
Gerry
Anzeige
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 17:37:24
Klaus-Dieter
Hallo Gerry,
dann wäre es am sinnvollsten, du lädst die Tabelle mal hoch.
Viele Grüße Klaus-Dieter

Online-Excel
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 18:37:07
Gerry
Hallo Klaus-Dieter,
die Tabelle liegt jetzt in verkürzter Form bei.
Hätte ich gleich machen sollen - sorry.
https://www.herber.de/bbs/user/27402.xls
wäre super wenn du mir helfen könntest.
Gerry
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 20:07:59
Klaus-Dieter
Hallo Gerry,
versuche es mal damit:
Option Explicit

Sub liste_auswerten()
' findet in einer Liste, die nicht sortiert sein muss
' alle vorkommenden Artikel. Diese werden mit der Gesamtanzahl
' in einer neuen Liste ausgegeben.
' Geschrieben von Klaus-Dieter Oppermann, Oktober 2005
' Variablen deklarieren
Dim iZiel As Integer                        ' Letzte gefüllte Zelle
Dim az As Integer                           ' Zähler für Arrayfelder
Dim i As Integer                            ' Schleifenzähler (Arrays füllen)
Dim t As Integer                            ' Schleifenzähler (Gesamtpreise ermitteln)
Dim arr() As Variant                        ' Array für Song
Dim arr1() As Variant                       ' Array für Compuser
iZiel = Worksheets("Tabelle1").Range _
("A65536").End(xlUp).Row                    ' Letzte gefüllte Zelle ermitteln (in Spalte A)
' Arrays dimensionieren
ReDim arr(iZiel, 0)                         ' Song
ReDim arr1(iZiel, 0)                        ' Compuser
' Arrays mit Werten füllen
For i = 2 To UBound(arr)                                                ' laufe von Zeile 2 bis Tabellenende
If Application.WorksheetFunction.CountIf(Range(Worksheets _
("Tabelle1").Cells(i, 1), Worksheets("Tabelle1").Cells(1, 1)) _
, Worksheets("Tabelle1").Cells(i, 1).Value) = 1 Then                ' wenn Artikel das erste Mal vorkommt, dann ...
arr(az, 0) = Worksheets("Tabelle1").Cells(i, 1).Value           ' ... Name in Array einlesen
arr1(az, 0) = Worksheets("Tabelle1").Cells(i, 2).Value          ' ... Name in Array einlesen
az = az + 1                                                     ' ... Zähler für Arrayfeld plus 1
End If                                                              ' Ende der Auswertung
Next i                                                                  ' Schleifenzähler plus 1
' Inhalte ausgeben
Worksheets("Tabelle2").Range("A2", "A" & UBound(arr)) = arr             ' Artikelnamen in Ausgabebereich schreiben
Worksheets("Tabelle2").Range("B2", "B" & UBound(arr)) = arr1            ' Artikelnamen in Ausgabebereich schreiben
For t = 2 To az + 1                                                     ' laufe von Zeile 2 bis Listenende
Worksheets("Tabelle2").Cells(t, 3) = Application.WorksheetFunction. _
SumIf(Range(Worksheets("Tabelle1").Cells(iZiel, 1), Worksheets _
("Tabelle1").Cells(2, 1)), Worksheets("Tabelle1").Cells(t, 5), _
Worksheets("Tabelle1").Range("C2", "C" & iZiel))                    ' Gesamtmenge berechnen
Next t                                                                  ' Schleifenzähler plus 1
With Range("C2", "C" & az)                                              ' Bereich definieren
.NumberFormat = "#,##0.00 €"                                        ' Euroformat setzen
End With
Worksheets("Tabelle2").Columns("A:C").EntireColumn.AutoFit              ' Spalten auf optimale Breite
End Sub

Viele Grüße Klaus-Dieter

Online-Excel
Anzeige
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 20:38:55
Gerry
Hallo Klaus-Dieter,
Nochmal vielen Dank!
Die Songs werden jetzt auf jeweils eine Zeile zusammengefasst, das ist schon mal super.
Bei den Beträgen steht jetzt allerdings noch ausschließlich 0 drin.
Kann es sein, dass das Progamm die falsche Spalte aufaddiert? - ich kann einfach nicht erkennen, wo ich was ändern müsste.
Gerry
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 20:59:18
Klaus-Dieter
Hallo Gerry,
Mist, Fehler von mir. So geht es:
Option Explicit

Sub liste_auswerten()
' findet in einer Liste, die nicht sortiert sein muss
' alle vorkommenden Artikel. Diese werden mit der Gesamtanzahl
' in einer neuen Liste ausgegeben.
' Geschrieben von Klaus-Dieter Oppermann, Oktober 2005
' Variablen deklarieren
Dim iZiel As Integer                        ' Letzte gefüllte Zelle
Dim az As Integer                           ' Zähler für Arrayfelder
Dim i As Integer                            ' Schleifenzähler (Arrays füllen)
Dim t As Integer                            ' Schleifenzähler (Gesamtpreise ermitteln)
Dim arr() As Variant                        ' Array für Song
Dim arr1() As Variant                       ' Array für Compuser
iZiel = Worksheets("Tabelle1").Range _
("A65536").End(xlUp).Row                    ' Letzte gefüllte Zelle ermitteln (in Spalte A)
' Arrays dimensionieren
ReDim arr(iZiel, 0)                         ' Song
ReDim arr1(iZiel, 0)                        ' Compuser
' Arrays mit Werten füllen
For i = 2 To UBound(arr)                                                ' laufe von Zeile 2 bis Tabellenende
If Application.WorksheetFunction.CountIf(Range(Worksheets _
("Tabelle1").Cells(i, 1), Worksheets("Tabelle1").Cells(1, 1)) _
, Worksheets("Tabelle1").Cells(i, 1).Value) = 1 Then                ' wenn Artikel das erste Mal vorkommt, dann ...
arr(az, 0) = Worksheets("Tabelle1").Cells(i, 1).Value           ' ... Name in Array einlesen
arr1(az, 0) = Worksheets("Tabelle1").Cells(i, 2).Value          ' ... Name in Array einlesen
az = az + 1                                                     ' ... Zähler für Arrayfeld plus 1
End If                                                              ' Ende der Auswertung
Next i                                                                  ' Schleifenzähler plus 1
' Inhalte ausgeben
Worksheets("Tabelle2").Range("A2", "A" & UBound(arr)) = arr             ' Artikelnamen in Ausgabebereich schreiben
Worksheets("Tabelle2").Range("B2", "B" & UBound(arr)) = arr1            ' Artikelnamen in Ausgabebereich schreiben
For t = 2 To az + 1                                                     ' laufe von Zeile 2 bis Listenende
Worksheets("Tabelle2").Cells(t, 3) = Application.WorksheetFunction. _
SumIf(Range(Worksheets("Tabelle1").Cells(iZiel, 1), Worksheets _
("Tabelle1").Cells(2, 1)), arr(t - 2, 0), _
Worksheets("Tabelle1").Range("C2", "C" & iZiel))                    ' Gesamtmenge berechnen
Next t                                                                  ' Schleifenzähler plus 1
With Range("C2", "C" & az + 1)                                          ' Bereich definieren
.NumberFormat = "#,##0.00 €"                                        ' Euroformat setzen
End With
Worksheets("Tabelle2").Columns("A:C").EntireColumn.AutoFit              ' Spalten auf optimale Breite
End Sub

Viele Grüße Klaus-Dieter

Online-Excel
Anzeige
AW: Teilergebnisse in VBA mit Spalteninformationen
11.10.2005 21:30:57
Gerry
Hallo Klaus-Dieter,
Einfach Super! ! !
Du hast mir unheimlich geholfen.
Danke!
Gerry

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige