mit meinem Excelproblem komme ich gerade absolut nicht mehr weiter und hoffe, ihr könnt mir helfen.
Im ersten Tabellenblatt meiner Datei soll eine Auswertung über die Daten der anderen Tabellenblätter gemacht werden. Dabei soll der Wert/Text aus der ersten Spalte des ersten Tabellenblattes in den ersten Spalten der anderen Tabellenblättern gesucht werden und für alle entsprechenden Ausgabewerte in deren zweiten Spalte der Durchschnitt im ersten Tabellenblatt in der zweiten Spalte ausgegeben werden. Da die Anzahl und die Benennung der Tabellenblätter variabel ist, habe ich zwei Hilfstabellenblätter (=Start & Stop) eingefügt. Idee ist, alle Tabellenblätter zwischen diesen für die Auswertung heranzuziehen.
Haltet mich nicht für faul, aber ich habe schon einiges versucht, was nicht funktioniert hat. Mit meinem Latein bin ich am Ende Daher habe ich euch eine Beispieldatei angehängt, die mein Problem veranschaulicht. Ich hoffe, ihr könnt mir weiterhelfen! Über jede Hilfe bin ich dankbar.
Ich habe mal eine Lösung ausprobiert, bin aber mit dem Ergebnis nicht zufrieden. Nach jedem Button Klick veraendern sich die Werte, ich nehme an Zufallszahlen-
es freut mich das mein Makro als Beispieşl funktioniert. Zum Anpassen hier eine Code Beschreibung Achte im Code auf dieses Zeichen: '##
Dieses Zeichen dieint zur Programm Erklaerung und was du dort aendern kannst. Wenn es nicht klappt gib mir einfach die richtigen Spalten in deinen Tabellen an. Probier es aber bitte zuerst mal selbst. Bringt Erfahrung. Ich nehme an die Auswertung Tabelle bleibt in Spalte A+B bestehen? Mein Programm geht davon aus das in den Tabellen xxx die Spalte für den 2. Wert immer rechts neben der 1. Suchspalte ist.
mfg Gast 123
Code:
With Worksheets("Auswertung") 'LastZell in Spalte A Auswertung ermitteln '## LastZell in Tabelle Auswertung Hier Spalte A lz = Cells(Rows.Count, 1).End(xlUp).Row '## die Zahl 1 steht für 1.Spalte Cells(Rows, 1)
'1.Schleife für alle Suchkriterien laden '## der .Punkt for Range besagt: Tabelle Auswertung! For Each AC In .Range("A2:A" & lz) '## hier kannst du die Spalten in Auswertung aendern '2.Schleife für alle Blaetter auswerten For j = a To b '## a + b sind 1. + letzte Tabellen Index Nr '## Worksheets(j).Columns(1) = Columns(1) ist Spalte A oder so schreiben ("A") '## stehen die Daten in einer anderen Spalte nur die Spalte aendern, als (2) od. ("B") '## und bitte beim Text After:= den Range immer mit aendern!! z.B. auf "B1" Set rFind = Worksheets(j).Columns(1).Find(What:=AC, After:=Range("A1"), LookIn:=xlValues, _ LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
'## mit der Auswertung kannst du auch spielen, es gibt drei Varianten '## die 1.Variante ist als lange Kommazahl, die anderen als kurze Zahl gedacht '** Auswertung drei Varianten: 'Werte als Kommazahl (6 Stellen) AC.Cells(1, 2).Value = Wert2 / n 'Kommazahl
'Werte als Ganzzahl oder 2 Kommastellen 'AC.Cells(1, 2).Value = CInt(Wert2) 'Ganzzahl 'AC.Cells(1, 2).Value = Round(Wert2 / n, 2) '2 Kommastellen