Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
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

rng nur in VBA nicht in der Arbeitsmappe

rng nur in VBA nicht in der Arbeitsmappe
19.06.2017 16:55:17
Marc
Hallo,
ich möchte aus zwei Spalten den kleinsten Wert des Produktes A wiedergeben. Mit der Funktion DBmin muss man ja einen Bereich als "Suchkritieren" angeben. Diese Bereichen möchte ich aber nur in VBA definieren. Ist sowas überhaupt möglich? Ich möchte es gern umgehen das ganze in einem Worksheet zwischen zu speichern.
Ich hoffe durch das Bsp wird meine Frage verständlicher :)
Sub DBmin()
Rng = ThisWorkbook.Worksheets("Produkte").Range("A:B")
strValue = "Zeit"
VarA = "Produkt"
VarB = "Preis"
VarC = "A"
VarD = ""
VarE = Array(VarA, VarB, VarC, VarD)
min = Application.WorksheetFunction.DMin(Rng, strValue, VarE)
ThisWorkbook.Worksheets("Tab2").Cells(1, 1) = min
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: rng nur in VBA nicht in der Arbeitsmappe
19.06.2017 17:31:40
Daniel
Hi
die Funktion DBMin braucht im ersten und dritten Parameter einen Zellbereich (range) als Wert.
Arrays können hier nicht verarbeitet werden.
Warum du als 2. Parameter die Überschrift "Zeit" wählst, wenn du den geringsten Preis ermitteln willst, erschließt sich aus den von dir gegeben Informationen auch nicht ganz.
andererseits, das "Zwischenspeichern" sollte kein Problem darstellen.
du kannst den verwendeten Zellbereich ja wieder löschen bevor das Makro durchgelaufen ist.
Gruß Daniel
AW: rng nur in VBA nicht in der Arbeitsmappe
19.06.2017 18:12:54
Marc
Servus Daniel,
ja das war ein Tippfehler beim umschreiben als Bsp. es geht natürlich um die Spalte Preis.
Ein Problem wäre das nicht, da hast du recht! Aber ich möchte ja auch mehr über VBA lernen und daher dachte ich ich setzte mich mit dieser Frage mal auseinander. Beim googln hab ich dazu nicht viel gefunden, die Fragestellung ist da aber auch keine leichte.
Also kann man abschließend festhalten, man kann sich keine "virtuelle Range" innerhalb von VBA zusammenbauen?
Anzeige
AW: rng nur in VBA nicht in der Arbeitsmappe
19.06.2017 18:15:51
Daniel
Hi
soweit sich weiß, geht das nicht.
Gruß Daniel
Jein, denn VBA ist 1e objektorientierte Sprache …
20.06.2017 00:43:00
Luc:-?
…und Objekte sind hier immer real existierende wie zB ein Xl-Range, Marc;
aber in anderen OOLs gibt's auch noch andere Objekte, zB Arrays (in VBA sind sie idR keine), und ein solches kann man auch in VBA adaptieren, ein Dictionary, das so etwas wie ein assoziatives Array darstellt: Set sDict = CreateObject("Scripting.Dictionary")
Wenn man das auch unter die VBE-Verweise zum VBA-Projekt aufnimmt und sDict As Dictionary deklariert, erhält man sogar Unterstützung durch den VBE-Intellisense.
Aber ein Range ist das natürlich nicht; man kann darin aber, wie in allen anderen Arrays, ZellVerweise (references) speichern, so dass darüber auch konkrete ZellEigenschaften erreichbar sind.
Eine andere Variante, die als Objekt eine Sammlung ganz unterschiedlicher ObjektVerweise sein kann, ist die Collection. Das entspräche in etwa einer Universalisierung des ObjektListen-Prinzips von VBA.
Morrn, Luc :-?
Besser informiert mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige