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

array - bereich statt zellen

array - bereich statt zellen
13.11.2022 17:02:45
Fred
Hallo Excel Profis,
die letzte Frage am heutigen Tag (voraussichtlich :-)
Ich habe ein Ratzfatz Makro von snb

  sn = Sheets("Spieltag").ListObjects(1).DataBodyRange
sp = Sheets("Wert").ListObjects(1).DataBodyRange
With CreateObject("scripting.dictionary")
For J = 1 To UBound(sp)
.Item(sp(J, 1)) = Array(sp(J, 2), sp(J, 3)) ' Wert
Next
For J = 1 To UBound(sn)
If .Exists(sn(J, 9)) Then
sn(J, 38) = .Item(sn(J, 9))(0)
sn(J, 39) = .Item(sn(J, 9))(1)
End If
Next
End With
Sheets("Spieltag").ListObjects(1).DataBodyRange = sn
Hier werden ( wenn "J=1" identisch sind) 2 Werte einer Zeile im anderen Blatt zugeordnet.
Alles klar,- funzt "Lichtschnell"
Meine Frage:
Ich möchte nun

= Array(sp(J, 2), .. bis ...sp(J, 100))
übertragen.
Nun 100x die entsprechenden Zellen anschreiben macht aber auch nicht viel Spaß.
Wie trage ich die 100 zusammenhängenden Zellen,- also den Bereich ein,--- bei

sn(J, 38)
?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: array - bereich statt zellen
13.11.2022 18:40:38
snb

sn = Sheets("Spieltag").ListObjects(1).DataBodyRange
sp = Sheets("Wert").ListObjects(1).DataBodyRange
With CreateObject("scripting.dictionary")
For J = 1 To UBound(sp)
.Item(sp(J, 1)) =application.index(sp,j)
Next
For J = 1 To UBound(sn)
If .Exists(sn(J, 9)) Then
sn(J, 38) = .Item(sn(J, 9))(0)
sn(J, 39) = .Item(sn(J, 9))(1)
End If
Next
End With
Sheets("Spieltag").ListObjects(1).DataBodyRange = sn  

AW: array - bereich statt zellen
13.11.2022 20:10:27
Fred
Hallo snb,
bei Ausführung deines "update" kommt die Fehlermeldung: "Typen unverträglich"
Ich habe mal ein Beispiel angefügt
https://www.herber.de/bbs/user/156165.xlsb
Kannst du bitte - bei Zeit und Lust . nochmals drauf schauen?
Gruss
Fred
Anzeige
AW: array - bereich statt zellen
13.11.2022 20:50:45
snb

Sub M_snb()
sn = Sheets("Spieltag").ListObjects(1).DataBodyRange
sp = Sheets("Wert").ListObjects(1).DataBodyRange
With CreateObject("scripting.dictionary")
For J = 1 To UBound(sp)
.Item(sp(J, 1)) = Application.Index(sp, J, 0)
Next
For J = 1 To UBound(sn)
If .Exists(sn(J, 9)) Then
sn(J, 38) = .Item(sn(J, 9))(1)
sn(J, 39) = .Item(sn(J, 9))(2)
End If
Next
End With
Sheets("Spieltag").ListObjects(1).DataBodyRange = sn
End Sub

AW: array - bereich statt zellen
13.11.2022 23:24:13
Fred
Hallo snb,
au Backe! Das update macht das, was es in der ersten Version schon tat .
Ich wollte wissen, das wenn der AF6:DU6 kopiert werden soll, ich dies schreiben muss.
Mache ich das wie bisher (und auch in deinem letzten Beispiel) müßte ich 94 Zellen "einzeln" schreiben.
Gibt es nicht bei diesen Makro die Möglichkeit, den Bereich (AF6:DU6) in "einem Wisch" nach entsprechender Zeile zu kopieren?
Heute ist die Zeit schon sehr weit fortgeschritten,- vieleicht morgen?
Gruss
Fred
Anzeige
AW: array - bereich statt zellen
14.11.2022 07:09:48
Fred
Hallo snb,
das meine ich: Wenn ich diese "Schreibweise" durchziehe und den Bereich "AF6:DU6" kopiert haben möchte, kommt dieses "lange" Makro raus:

'  von snb
sn = Sheets("Spieltag").ListObjects(1).DataBodyRange
sp = Sheets("Wert").ListObjects(1).DataBodyRange
With CreateObject("scripting.dictionary")
For J = 1 To UBound(sp)
.Item(sp(J, 1)) = Application.Index(sp, J, 0)
Next
For J = 1 To UBound(sn)
If .Exists(sn(J, 9)) Then
sn(J, 34) = .Item(sn(J, 9))(2)
sn(J, 35) = .Item(sn(J, 9))(3)
sn(J, 36) = .Item(sn(J, 9))(4)
sn(J, 37) = .Item(sn(J, 9))(5)
sn(J, 38) = .Item(sn(J, 9))(6)
sn(J, 39) = .Item(sn(J, 9))(7)
sn(J, 40) = .Item(sn(J, 9))(8)
sn(J, 41) = .Item(sn(J, 9))(9)
sn(J, 42) = .Item(sn(J, 9))(10)
sn(J, 43) = .Item(sn(J, 9))(11)
sn(J, 44) = .Item(sn(J, 9))(12)
sn(J, 45) = .Item(sn(J, 9))(13)
sn(J, 46) = .Item(sn(J, 9))(14)
sn(J, 47) = .Item(sn(J, 9))(15)
sn(J, 48) = .Item(sn(J, 9))(16)
sn(J, 49) = .Item(sn(J, 9))(17)
sn(J, 50) = .Item(sn(J, 9))(18)
sn(J, 51) = .Item(sn(J, 9))(19)
sn(J, 52) = .Item(sn(J, 9))(20)
sn(J, 53) = .Item(sn(J, 9))(21)
sn(J, 54) = .Item(sn(J, 9))(22)
sn(J, 55) = .Item(sn(J, 9))(23)
sn(J, 56) = .Item(sn(J, 9))(24)
sn(J, 57) = .Item(sn(J, 9))(25)
sn(J, 58) = .Item(sn(J, 9))(26)
sn(J, 59) = .Item(sn(J, 9))(27)
sn(J, 60) = .Item(sn(J, 9))(28)
sn(J, 61) = .Item(sn(J, 9))(29)
sn(J, 62) = .Item(sn(J, 9))(30)
sn(J, 63) = .Item(sn(J, 9))(31)
sn(J, 64) = .Item(sn(J, 9))(32)
sn(J, 65) = .Item(sn(J, 9))(33)
sn(J, 66) = .Item(sn(J, 9))(34)
sn(J, 67) = .Item(sn(J, 9))(35)
sn(J, 68) = .Item(sn(J, 9))(36)
sn(J, 69) = .Item(sn(J, 9))(37)
sn(J, 70) = .Item(sn(J, 9))(38)
sn(J, 71) = .Item(sn(J, 9))(39)
sn(J, 72) = .Item(sn(J, 9))(40)
sn(J, 73) = .Item(sn(J, 9))(41)
sn(J, 74) = .Item(sn(J, 9))(42)
sn(J, 75) = .Item(sn(J, 9))(43)
sn(J, 76) = .Item(sn(J, 9))(44)
sn(J, 77) = .Item(sn(J, 9))(45)
sn(J, 78) = .Item(sn(J, 9))(46)
sn(J, 79) = .Item(sn(J, 9))(47)
sn(J, 80) = .Item(sn(J, 9))(48)
sn(J, 81) = .Item(sn(J, 9))(49)
sn(J, 82) = .Item(sn(J, 9))(50)
sn(J, 83) = .Item(sn(J, 9))(51)
sn(J, 84) = .Item(sn(J, 9))(52)
sn(J, 85) = .Item(sn(J, 9))(53)
sn(J, 86) = .Item(sn(J, 9))(54)
sn(J, 87) = .Item(sn(J, 9))(55)
sn(J, 88) = .Item(sn(J, 9))(56)
sn(J, 89) = .Item(sn(J, 9))(57)
sn(J, 90) = .Item(sn(J, 9))(58)
sn(J, 91) = .Item(sn(J, 9))(59)
sn(J, 92) = .Item(sn(J, 9))(60)
sn(J, 93) = .Item(sn(J, 9))(61)
sn(J, 94) = .Item(sn(J, 9))(62)
sn(J, 95) = .Item(sn(J, 9))(63)
sn(J, 96) = .Item(sn(J, 9))(64)
sn(J, 97) = .Item(sn(J, 9))(65)
sn(J, 98) = .Item(sn(J, 9))(66)
sn(J, 99) = .Item(sn(J, 9))(67)
sn(J, 100) = .Item(sn(J, 9))(68)
sn(J, 101) = .Item(sn(J, 9))(69)
sn(J, 102) = .Item(sn(J, 9))(70)
sn(J, 103) = .Item(sn(J, 9))(71)
sn(J, 104) = .Item(sn(J, 9))(72)
sn(J, 105) = .Item(sn(J, 9))(73)
sn(J, 106) = .Item(sn(J, 9))(74)
sn(J, 107) = .Item(sn(J, 9))(75)
sn(J, 108) = .Item(sn(J, 9))(76)
sn(J, 109) = .Item(sn(J, 9))(77)
sn(J, 110) = .Item(sn(J, 9))(78)
sn(J, 111) = .Item(sn(J, 9))(79)
sn(J, 112) = .Item(sn(J, 9))(80)
sn(J, 113) = .Item(sn(J, 9))(81)
sn(J, 114) = .Item(sn(J, 9))(82)
sn(J, 115) = .Item(sn(J, 9))(83)
sn(J, 116) = .Item(sn(J, 9))(84)
sn(J, 117) = .Item(sn(J, 9))(85)
sn(J, 118) = .Item(sn(J, 9))(86)
sn(J, 119) = .Item(sn(J, 9))(87)
sn(J, 120) = .Item(sn(J, 9))(88)
sn(J, 121) = .Item(sn(J, 9))(89)
sn(J, 122) = .Item(sn(J, 9))(90)
sn(J, 123) = .Item(sn(J, 9))(91)
sn(J, 124) = .Item(sn(J, 9))(92)
sn(J, 125) = .Item(sn(J, 9))(93)
sn(J, 126) = .Item(sn(J, 9))(94)
sn(J, 127) = .Item(sn(J, 9))(95)
End If
Next
End With
Sheets("Spieltag").ListObjects(1).DataBodyRange = sn
Für "zukünftige Generationen"; Kann das nicht entsprechend gekürzt werden?
Einen schönen Wochenbeginn
&
Gruss
Fred
Anzeige
AW: array - bereich statt zellen
14.11.2022 10:40:37
Rudi
Hallo,
mit ner zusätzlichen Schleife.

    For J = 1 To UBound(sn)
If .Exists(sn(J, 9)) Then
For K=2 to 95
sn(J, K+32) = .Item(sn(J, 9))(K)
Next K
End If
Next J
Gruß
Rudi
AW: array - bereich statt zellen
14.11.2022 13:27:16
Fred
Hallo Rudi & snb,
vielen Dank für die Unterstützung!!
Rudi,- deine "zweite Schleife" macht natürlich den Unterschied zu meinen vorherigen "Fernglas-Makro"
Gruss
Fred

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige