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

Range-Variable selektiv Bereiche zuweisen

Range-Variable selektiv Bereiche zuweisen
26.04.2017 19:31:59
Herms
Hallo zusammen!
Ich würde gerne einer als Range deklarierten Variable selektiv verschiedene Zellen einer Zeile zuweisen. Es sollen nämlich nur die Zellen "markiert" bzw. zugewiesen werden, die eine bestimmte Bedingung erfüllen.
Konkret geht es um die Spalten G bis M in Zeile 4. Jede Zelle in dem Bereich G4:M4 soll der Range-Variable zugewiesen werden, wenn der Wert eines Array "soll_werte(1,i_spalte)" für die entsprechende Spalte 1 beträgt.
Hat das Array beispielsweise folgende Werte "soll_werte(1, 1 bis 7) = (1, 0, 0, 1, 0, 1, 1)", soll die Range-Variable folgendermaßen aussehen:
Dim rg as Range
Set range = ActiveSheet.Range("G4","J4","L4","M4")
Könnt ihr mir auf die Sprünge helfen, wie ich dieses Konzept dynamisieren kann?
Danke im voraus & beste Grüße!
Herms

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range-Variable selektiv Bereiche zuweisen
26.04.2017 20:37:23
AlterDresdner
Hallo Herms,
so sollte es gehen:

Sub nn()

Dim soll_werte(1 To 1, 1 To 7) As Integer
soll_werte(1, 1) = 1
soll_werte(1, 4) = 1
soll_werte(1, 6) = 1
soll_werte(1, 7) = 1
'= (1, 0, 0, 1, 0, 1, 1) ' 
Dim rg As Range
Dim i, j As Integer, a As String
  i = 71 '="G" 
  For j = Lbound(soll_werte, 2) To Ubound(soll_werte, 2)
    If soll_werte(1, j) = 1 Then
      a = IIf(a = "", "", a & ",")
      a = a & Chr(i) & "4"
    End If
    i = i + 1
  Next j
  Set rg = ActiveSheet.Range(a)
  rg.Select
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0


Gruß der AlteDresdner
Anzeige
AW: Range-Variable selektiv Bereiche zuweisen
26.04.2017 21:12:17
Herms
Hallo AlterDresdner!
Danke für die schnelle und kompetente Hilfe!
Nachdem ich ein paar Minuten gebraucht habe, um zu verstehen, warum 71 = G ist, habe ich "Chr()" nun begriffen und den Code erfolgreich implementiert!
Vielen Dank & einen schönen Abend noch!
Herms
AW: Range-Variable selektiv Bereiche zuweisen
26.04.2017 20:43:45
Fennek
Hallo,
teste mal diesen Code:

Sub Fen()
Dim rng As Range
Z = 4
Tx = Array(1, 0, 0, 1, 0, 1, 1)
For i = 0 To UBound(Tx)
If Tx(i) Then Ra = Ra & Chr(71 + i)
Next i
Debug.Print Ra
For i = 1 To Len(Ra)
R = Mid(Ra, i, 1) & Z
If rng Is Nothing Then
Set rng = Range(R)
Else
Set rng = Union(rng, Range(R))
End If
Next i
Debug.Print rng.Address
End Sub
mfg
Anzeige
AW: Range-Variable selektiv Bereiche zuweisen
26.04.2017 21:16:41
Herms
Hallo Fennek!
Vielen Dank für deine schnelle Hilfe, habe deinen Code als Alternative zur Lösung von AlterDresdner in meine Sammlung aufgenommen. Im Grunde war ja die mir bisher unbekannte Chr()-Funktion der Schlüssel zum Erfolg, die ihr beide verwendet habt :-)
Beste Grüße!
Herms
AW: Range-Variable selektiv Bereiche zuweisen
27.04.2017 09:46:24
Daniel
Hi
ggf so:
Dim SollWerte
dim i as Long
dim rng As Range
SollWerte = Array(1, 0, 0, 1, 0, 1, 1)
with Range("G4").Offset(0, -Ubound(SollWerte))
for i = Lbound(SollWerte) to ubound(SollWerte)
if SollWert(i) = 1 Then
if rng is Nothing then
Set rng = .Offset(0, i)
else
Set rng = Union(rng, .Offset(0, i))
end if
end if
next
der Code ist jetzt so geschrieben, dass er mit 0 und 1-basierten Arrays gleichermaßen funktioniert
Gruß Daniel
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige