Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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
Range-Objekt: Zellwerte auslesen
05.12.2016 08:33:02
ChristianWeiss
Hallo,
kurze Neuling-Frage: per InputBox lasse ich vom User mehrere Zellen auf einem Worksheet markieren, deren Zellwerte ich brauche:
Public Function InputBoxRange(aPrompt As String) As Range
'lässt ein oder mehrere Zellen auswählen und liefert diese Range zurück
Set InputBoxRange = Application.InputBox(aPrompt, Type:=8)
End Function
...
Dim rng as Range
Set rng = InputRange("Wähle Zellen:")
..
Per CMD-Button (Mac) bzw. CTRL-Button (Windows) kann man ja eine Mehrfachselektion machen.
Ergebnis ist ein Range-Objekt der Art $B$44;$B$17;$B$50 o.Ä.
Nun möchte ich an die Zellwerte dieser Zellbezüge ran und diese durchiterieren (for i = 1 to rng.Count).
Ich weiß aber nicht, wie ich da ran komme.
rng(i) liefert nur beim Index 1 einen richtigen Wert
rng(i).value dasselbe
rng.address liefert die markierten Zellen, aber mit Komma statt Semikolon.
Am liebsten wäre mir, wenn ich aus dem Range-Objekt eine Liste machen könnte, in der die Zellwerte aufsteigend sortiert sind.
Ist vermutlich ein No-Brainer, aber ich beiße mir die Zähne daran aus. Weiß jemand Rat?
Christian

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range-Objekt: Zellwerte auslesen
05.12.2016 10:43:44
Rudi
Hallo,
Ist vermutlich ein No-Brainer
in der Tat!
Sub aaa()
Dim rng As Range, rngC As Range
Set rng = InputBoxRange("test")
For Each rngC In rng.Cells
MsgBox rngC.Value
Next
End Sub

Gruß
Rudi
AW: Range-Objekt: Zellwerte auslesen
05.12.2016 19:03:25
ChristianWeiss
Ha! Funktioniert. Danke Rudi!
Kannst Du auch sagen, wie ich diese Values nun sortiere?
Wohlgemerkt: die Vaues. Ich brauche diese aufsteigend sortiert BEVOR ich durchiteriere, also kleinster Value soll der erste Wert sein, den ich beim Iterieren zu fassen kriege.
Das wäre super!
BG
Christian
AW: Range-Objekt: Zellwerte auslesen
06.12.2016 13:25:56
Rudi
Hallo,
Sub aaa()
Dim rng As Range, rngC As Range, vArr(), i, j, tmp
Set rng = InputBoxRange("Test")
ReDim vArr(1 To rng.Cells.Count)
For Each rngC In rng.Cells
i = i + 1
vArr(i) = rngC.Value
Next rngC
For i = 1 To UBound(vArr) - 1
For j = i + 1 To UBound(vArr)
If vArr(i) > vArr(j) Then
tmp = vArr(i)
vArr(i) = vArr(j)
vArr(j) = tmp
End If
Next j
Next i
'mehr Code
End Sub

Anzeige
AW: Range-Objekt: Zellwerte auslesen
06.12.2016 19:57:16
ChristianWeiss
Oha, okay.
Also doch nicht einfach rng.AsSortedArry ;-)
Ist eingebaut und funzt wunderbar!
DANKE!!
dann doch zu. owT
06.12.2016 23:01:45
Rudi
AW: dann doch zu. owT
07.12.2016 06:58:09
Christian
Öh, oh. Wollte ich getan haben.
Deswegen hatte ich extra brav den Haken gesetzt.
Aber nun sehe ich: da steht NICHT.
Sorry.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige