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

Erster & letzter Wert in variablen Bereiche

Erster & letzter Wert in variablen Bereiche
15.11.2007 09:39:45
Christoph
Hallo,
wie krieg ich es denn hin, einen variablen Bereich mit VBA festzulegen?
Ich will beispielsweise die Mittelwerte verschiedener Produkte haben, deren Bezeichnung in Spalte A steht.
Das dumme daran ist nur, dass das Produkt manchmal nur 2 mal (A1,A2) vorkommen kann und manchmal aber 20 mal (A20:A39).
Wie kann ich da jetzt jeweils den ersten Wert und den letzten Wert des Bereichs für jeweils ein Produktpaket aus Spalte A abfragen?
Danke für die Hilfe

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erster & letzter Wert in variablen Bereiche
15.11.2007 09:47:48
Renee
Hi Christoph,
Angenommen:
Spalte A = Produktbezeichnungen
Spalte B = Werte
dann probier mal:

=SUMMEWENN(A:A;"Produkt";B:B)/ZÄHLENWENN(A:A;"Produkt")


GreetZ Renee

AW: Erster & letzter Wert in variablen Bereiche
15.11.2007 09:48:00
Rudi
Hallo,
Mittelwert ist doch prinzipiell Summewenn()/Zählenwenn()
Mittelwert=worksheetfunction.sumif(Range("A:A"),"Artikel",Range("B:B"))/Worksheetfunction.Countif(Range("A:A"),"Artikel")
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Formel = see me / VBA see Rudi (owT)
15.11.2007 09:49:51
Renee

Mittelwert bringt mich nicht weiter
15.11.2007 10:08:00
Christoph
Das mit dem Mittelwert war nur ein Beispiel um zu verdeutlichen was ich für Start- und Endwerte brauche.
Ich benötige den Start- und Endwert um festzulegen, welche Werte er für die Erstellung eines Charts nehmen soll.
Quasi: Nehme die Werte aus B, für die A gleich ist und mache einen Chart draus, dann nehme die nächsten Werte die gleich sind und mache ein neues Chart draus....
Ich hab den Code ja soweit fertig, nur brauche ich hierfür

ActiveChart.SetSourceData Source:=Sheets("Tabelle").Range("B2:B21")


noch eine Variable, die "B2:B21" mit "Startwert:Endwert" ersetzt.
Ich lasse also eine Schleife solang laufen, wie ich verschiedene Werte habe, in der ich jeweils den Start -und Endwert des Bereichs ändere.

Anzeige
AW: Mittelwert bringt mich nicht weiter
15.11.2007 10:19:00
Rudi
Hallo,
ersteZeile=Application.match("Artikel",Range("A:A"),0)
letzteZeile=ersteZeile-1+Worksheetfunction.CountIf(Range("A:A"),"Artikel")
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Mittelwert bringt mich nicht weiter
15.11.2007 10:42:56
Christoph
Fast,

ersteZeile=Application.match("Artikel",Range("A:A"),0)
letzteZeile=ersteZeile-1+Worksheetfunction.CountIf(Range("A:A"),"Artikel")


da machen mich nur die "Artikel" unglücklich drin. So wie oben muss ich ja jeden Artikel erst deklarieren.
Ziemliches Aufwand bei knapp 500 Artikeln.
Hab schonmal selbst wieder ein bisschen weiter gefunden, allerdings fehlt mir noch der passende "Schleifenbefehl":


Do/ For ?
If Cells(reihe + 1, 1).Value = Cells(reihe, 1).Value Then
ende = reihe + 1
reihe = reihe + 1
Else: Exit ?


Anzeige
dein Code bringt mich nicht weiter...
15.11.2007 10:50:00
Renee
, denn jetzt weiss ich nicht mehr was Du eigentlich willst.
GreetZ Renee

kleine Erklärung
15.11.2007 11:06:00
Christoph
A A A B B C C C C C C Startwert ist erstmal auf 1 gesetzt, dann kommt mein Code, der sich den Endwert von A sucht.
Dann kommt mein Anderer Code, den ich nicht gepostet habe, weil er nix zur Sache tut und nur das Diagramm malt. Danach wird Startwert auf Endwert+1 gesetzt und es kommt wieder mein Code um den Endwert von B zu erhalten, wieder Diagramm, Startwert= Endwert+1, Code,.......usw.usf.
Rein theoretisch, müsste ja mein Code von oben klappen, wenn ich nur wüsste, wie ich die Schleife um ihn darum machen müsste.
Hab jetzt mal das hier probiert, aber da meckert er rum, es wäre ein Loop ohne Do?!

Do
If Cells(reihe + 1, 1).Value = Cells(reihe, 1).Value Then
ende = reihe + 1
Else: abbruch = 1
reihe = reihe + 1
Loop Until abbruch = 1


Ist halt alles nicht so einfach, wenn man wie ich keinen Plan von VBA hat

Anzeige
AW: kleine Erklärung
15.11.2007 11:21:07
Rudi
Hallo,
das ist kein Loop ohne Do sondern ein If ohne End If.
als Anregung:

Sub tt()
Dim intStart, intEnde
intStart = 1
Do While Cells(intEnde + 1, 1)  ""
intEnde = intStart - 1 + WorksheetFunction.CountIf(Range("A:A"), Cells(intStart, 1))
diagramm_malen intStart, intEnde
intStart = intEnde + 1
Loop
End Sub



Sub diagramm_malen(intStart, intEnde)
MsgBox intStart & " " & intEnde
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
Das war ja einfach
15.11.2007 11:36:00
Christoph
Dankeschön
das war ja dann eigentlich ganz einfach. Muss ich mir mal merken wie das geht. Mit den Bereichen hab ich immer schwierigkeiten.
Vielen Dank

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige