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

Makro kürzen

Makro kürzen
15.08.2022 16:46:14
Fred
Hallo Excel Profis,
ich habe vor längerer Zeit ein Makro von SNB erhalten:

Sub Ergebnis()
sn = Sheets("Depot").ListObjects(1).DataBodyRange
sp = Sheets("Ergebnisse").ListObjects(1).DataBodyRange
With CreateObject("scripting.dictionary")
For j = 1 To UBound(sp)
.Item(sp(j, 1)) = Array(sp(j, 12), sp(j, 13), sp(j, 14), sp(j, 15), sp(j, 16))
Next
For j = 1 To UBound(sn)
sn(j, 12) = .Item(sn(j, 1))(0)
sn(j, 13) = .Item(sn(j, 1))(1)
sn(j, 14) = .Item(sn(j, 1))(2)
sn(j, 15) = .Item(sn(j, 1))(3)
sn(j, 16) = .Item(sn(j, 1))(4)
Next
End With
Sheets("Depot").ListObjects(1).DataBodyRange = sn
End Sub
Hier werden Daten von Sheet "Ergebnisse" nach Sheet "Depot" kopiert,- wenn in 1ter Spalte der Eintrag identisch ist.
Klappt
Meine Frage:
Wenn ich den zu kopierenden Bereich auf sp 12 bis sp 50 erweitern möchte, muss ich dann

.Item(sp(j, 1)) = Array(sp(j, 12), sp(j, 13), sp(j, 14), sp(j, 15), sp(j, 16))
entsprechend ergänzen
Oder geht es auch kürzer?
Gruss
Fred

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro kürzen
15.08.2022 17:30:27
Daniel
Hi
wenn du für das Array sp als Quelle nicht die ganze Tabelle nimmst sondern nur den Zellbereich von Spalte 12 bis Spalte x so dass du im Prinzip alle Spalten aus sp übernehmen kannst, dann geht vielleicht:

... = Index(sp, j, 0)
oder du definierst dir sp nicht als Array, sondern als Range:

dim sp as Range
set sp = Sheets("Ergebnisse").ListObjects(1).DataBodyRange
dann kannst du über Cells auf Teilbereiche in einem Stück zugreifen:

... =Range(sp.Cells(j, 12), sp.cells(j, 50)).value 
der zweite teil sollte sich über eine einfache Schleife verkürzen lassen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige