Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

langsamen VBA code mit Array beschleunigen

Forumthread: langsamen VBA code mit Array beschleunigen

langsamen VBA code mit Array beschleunigen
13.02.2025 22:16:34
Tobi_84
Hallo,
ich lese ein Zelle mit vielen Werten (getrennt dur Zeilenumbruch) aus einem Tabellenblatt aus,
und schreibe die Einzelwerte in mehrere Zellen einer Reihe auf einem anderen Tabellenblatt.
Die Einzelwerte werden dann ausgeschnitten und an den gewünschten Stellen eingefügt.
Diese Prozedur wird x-mal wiederholt und verlangsamt dadurch den VBA code.

Meine VBA Kenntnisse sind begrenzt um den Code in Array umzuwandeln.



Worksheets("Druck").Cells(19, 4).Value = Worksheets("EplSheet").Cells(2, 7).Value

Text = Worksheets("EplSheet").Cells(2, 8).Value
' Zeichenkette trennen & in ein Tabellenblatt eintragen
EinzelneWorte = Split(Text, ";;;")

' Spalte Bezeichnungstext #1
For i = 0 To UBound(EinzelneWorte)
Worksheets("Druck").Cells(20, i + 4) = EinzelneWorte(i)
Next i
' Folgezellen mit Verbrauchertext verschieben(Reihe, Spalte)
Sheets("Druck").Cells(20, 5).Cut Cells(21, 4)
Sheets("Druck").Cells(20, 6).Cut Cells(22, 4)
Sheets("Druck").Cells(20, 7).Cut Cells(23, 4)
Sheets("Druck").Cells(20, 8).Cut Cells(24, 4)
Sheets("Druck").Cells(20, 9).Cut Cells(25, 4)
Sheets("Druck").Cells(20, 10).Cut Cells(26, 4)
Sheets("Druck").Cells(20, 11).Cut Cells(27, 4)
Sheets("Druck").Cells(20, 12).Cut Cells(28, 4)
Sheets("Druck").Cells(20, 13).Cut Cells(29, 4)
Sheets("Druck").Cells(20, 14).Cut Cells(30, 4)
Sheets("Druck").Cells(20, 15).Cut Cells(31, 4)
Sheets("Druck").Cells(20, 16).Cut Cells(32, 4)
Sheets("Druck").Cells(20, 17).Cut Cells(33, 4)
Sheets("Druck").Cells(20, 18).Cut Cells(34, 4)
Sheets("Druck").Cells(20, 19).Cut Cells(35, 4)
Sheets("Druck").Cells(20, 20).Cut Cells(36, 4)
Sheets("Druck").Cells(20, 21).Cut Cells(37, 4)
Sheets("Druck").Cells(20, 22).Cut Cells(38, 4)
Sheets("Druck").Cells(20, 23).Cut Cells(39, 4)
Sheets("Druck").Cells(20, 24).Cut Cells(40, 4)
Sheets("Druck").Cells(20, 25).Cut Cells(41, 4)

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: langsamen VBA code mit Array beschleunigen
13.02.2025 22:37:12
Uduuh
Hallo,
einfach so:
EinzelneWorte = Split(Text, ";;;")

Cells(21, 4).Resize(UBound(EinzelneWorte) + 1) = Application.Transpose(EinzelneWorte)


Gruß aus'm Pott
Udo
AW: langsamen VBA code mit Array beschleunigen
13.02.2025 23:33:34
Piet
Nachtrag

Pardon, ich hatte Cut übersehen, dabei klappt Transpose Nicht. Aber mit Copy!!
Sheets("Druck").Cells(20, 5).Resize(1, 21).Copy
Cells(21, 4).PasteSpecial xlPasteAll, Transpose:=True
Sheets("Druck").Cells(20, 5).Resize(1, 21).ClearContents

mfg Piet
Anzeige
AW: langsamen VBA code mit Array beschleunigen
14.02.2025 12:17:00
Yal
Hallo Tobias,

helfe uns bitte, Dir zu helfen: Du beschreibst dein Vorhaben für jemand, der null Vorkenntnisse hat, was Du tust. Und Gedanken lesen kann keiner.
Sei in deiner Beschreibung dementsprechend ausführlich genug, aber auf deinem Ziel fokussiert (so viel wie nötig, so wenig wie möglich).

Poste den Code vom "Sub .." bis "End Sub". Man versteht auch nicht ein Buch, wenn man nur ein paar Seiten in der Mitte liest.

Zum Lesbarkeit vom Code:
- achte auf das Einrücken!
- setze im Menü "Extras", "Optionen", "Variablendeklaration erforderlich". Wirkt lästig, Profis machen aber immer so. Warum wohl?

Verwende so weit es geht den Makrorecorder, und in kurzen Abschnitt. Schaue dir den Code an.

Dein Code (erster Beitrag) könnte so aussehen:
Sub Test()

Dim EinzelneWorte
Dim Text As String

With Worksheets("Druck")
.Cells(19, 4).Value = Worksheets("EplSheet").Cells(2, 7).Value
Text = Worksheets("EplSheet").Cells(2, 8).Value
' Zeichenkette trennen & in ein Tabellenblatt eintragen
EinzelneWorte = Split(Text, ";;;")
' Spalte Bezeichnungstext #1
.Cells(20, 4).Resize(1, UBound(EinzelneWorte) + 1) = EinzelneWorte
' Folgezellen mit Verbrauchertext verschieben(Reihe, Spalte)
Range(.Cells(20, 5), .Cells(20, 25)).Copy
.Cells(21, 4).PasteSpecial Transpose:=True
Range(.Cells(20, 5), .Cells(20, 25)).ClearContents
End With
End Sub

VG
Yal
Anzeige
AW: langsamen VBA code mit Array beschleunigen
14.02.2025 15:03:57
Tobi_84
Hallo Piet, Hallo Yal,

@Piet: Sorry, das hat leider nicht geklappt.

Bitte entschuldigt, ich hätte mehr Informationen teilen sollen.
Ich habe einen Excel Export aus einem Programm und möchte diesen Export weiter verarbeiten.
Dafür benötige ich aber die ausgelesenen Daten an entsprechender Stelle.

Das Problem welches ich habe ist, das mein VBA Code zu groß und zu langsam ist :(.

Wichtig ist die Stelle mit den Datenpaaren ("1 Pärchen = 2 durch Zeilenumbruch getrennte Daten").
Im Tabellenblatt EPLSheet sind Zellen mit beliebig langen Daten getrennt durch Zeilenumbrüche.
Jede einzelne von diesen Zellen soll nach dem Zeilenumbruch getrennt werden und die dadurch entstehenden Daten
benötige ich abwechselnd über 2 Spalten untereinander verteilt.

Ich habe den Code etwas aufbereitet, hoffe es hilft.

Sub export_Label()

'
' export_Label Makro
'

Dim EinzelneWorte() As String, Text As String
Dim i As Integer, lastRow As Integer, intRow As Integer, intLastRow As Integer
Dim cell As Range

' Bildschirmaktualisierung & Mitteilungen aus
Application.ScreenUpdating = False
Application.DisplayAlerts = False

With Worksheets("Druck")


'Tabellenblatt leeren und als Text formatieren
.Range(Cells(3, 1), Cells(1000, 26)).Clear
.Range(Cells(3, 1), Cells(1000, 26)).NumberFormat = "@"
.Cells(1, 5).Interior.ColorIndex = xlNone


' #1 (Reihe 10 - 50)

' 1. Zelle aus Programmexport übertragen
.Cells(10, 1).Value = Worksheets("EplSheet").Cells(2, 5).Value

'---------------------------------------------------------------------------------------------

' Lässt sich hier etwas optimieren?

' Wichtig ist, dass die Pärchen abwechselend über Spalte B und C verteilt werden.


' 2. Zelle aus Programmexport übertragen
Text = Worksheets("EplSheet").Cells(2, 6).Value
' Zeichenkette trennen & in ein Tabellenblatt eintragen

'Teil 1 von Pärchen #1 in Spalte -B- einfügen: Zelle (10, 2)
EinzelneWorte = Split(Text, Chr(10))
For i = 0 To UBound(EinzelneWorte)
.Cells(10, i + 2) = EinzelneWorte(i)
Next i

'Teil 2 von Pärchen #1 in Spalte -B- einfügen: Zelle (10, 3)
.Cells(10, 3).Cut Cells(11, 2)

'Pärchen #2 in Spalte -C- einfügen: Zelle (10, 4) & (10, 5)
.Cells(10, 4).Cut Cells(10, 3)
.Cells(10, 5).Cut Cells(11, 3)

'Pärchen #3 in Spalte -B- einfügen: Zelle (10, 6) & (10, 7)
.Cells(10, 6).Cut Cells(12, 2)
.Cells(10, 7).Cut Cells(13, 2)

'Pärchen #4 in Spalte -C- einfügen: Zelle (10, 8) & (10, 9)
.Cells(10, 8).Cut Cells(12, 3)
.Cells(10, 9).Cut Cells(13, 3)

'Pärchen #5 in Spalte -B- einfügen: Zelle (10, 10) & (10, 11)
.Cells(10, 10).Cut Cells(14, 2)
.Cells(10, 11).Cut Cells(15, 2)

'Pärchen #6 in Spalte -C- einfügen: Zelle (10, 12) & (10, 13)
.Cells(10, 12).Cut Cells(14, 3)
.Cells(10, 13).Cut Cells(15, 3)

'---------------------------------------------------------------------------------------------

' 3. Zelle aus Programmexport übertragen
.Cells(19, 4).Value = Worksheets("EplSheet").Cells(2, 7).Value

' 4. Zelle aus Programmexport übertragen
Text = Worksheets("EplSheet").Cells(2, 8).Value
' Zeichenkette trennen & in ein Tabellenblatt eintragen
For i = 0 To UBound(EinzelneWorte)
EinzelneWorte = Split(Text, ";;;")
Cells(21, 4).Resize(UBound(EinzelneWorte) + 1) = Application.Transpose(EinzelneWorte)
Next i

' #2 (Reihe 60 - 100)

' 1. Zelle aus Programmexport übertragen
.Cells(60, 1).Value = Worksheets("EplSheet").Cells(3, 5).Value

' 2. Zelle aus Programmexport übertragen
Text = Worksheets("EplSheet").Cells(3, 6).Value
' Zeichenkette trennen & in ein Tabellenblatt eintragen

'Teil 1 von Pärchen #1 in Spalte -B- einfügen: Zelle (60, 2)
EinzelneWorte = Split(Text, Chr(10))
For i = 0 To UBound(EinzelneWorte)
.Cells(60, i + 2) = EinzelneWorte(i)
Next i

'Teil 2 von Pärchen #1 in Spalte -B- einfügen: Zelle (60, 3)
.Cells(60, 3).Cut Cells(61, 2)

'Pärchen #2 in Spalte -C- einfügen: Zelle (60, 4) & (60, 5)
.Cells(60, 4).Cut Cells(60, 3)
.Cells(60, 5).Cut Cells(61, 3)

'Pärchen #3 in Spalte -B- einfügen: Zelle (60, 6) & (60, 7)
.Cells(60, 6).Cut Cells(62, 2)
.Cells(60, 7).Cut Cells(63, 2)

'Pärchen #4 in Spalte -C- einfügen: Zelle (60, 8) & (60, 9)
.Cells(60, 8).Cut Cells(62, 3)
.Cells(10, 9).Cut Cells(63, 3)

'Pärchen #5 in Spalte -B- einfügen: Zelle (60, 10) & (60, 11)
.Cells(60, 10).Cut Cells(64, 2)
.Cells(60, 11).Cut Cells(65, 2)

'Pärchen #6 in Spalte -C- einfügen: Zelle (60, 12) & (60, 13)
.Cells(60, 12).Cut Cells(64, 3)
.Cells(60, 13).Cut Cells(65, 3)

' 3. Zelle aus Programmexport übertragen
.Cells(69, 4).Value = Worksheets("EplSheet").Cells(3, 7).Value

' 4. Zelle aus Programmexport übertragen
Text = Worksheets("EplSheet").Cells(3, 8).Value
' Zeichenkette trennen & in ein Tabellenblatt eintragen
For i = 0 To UBound(EinzelneWorte)
EinzelneWorte = Split(Text, ";;;")
Cells(71, 4).Resize(UBound(EinzelneWorte) + 1) = Application.Transpose(EinzelneWorte)
Next i

'---------------------------------------------------------------------------------------------

' #3 (Reihe 110 - 150)

' x beliebige Wierderholung in 50er Reihenschritten




'---------------------------------------------------------------------------------------------

' max. Zeichen zählen und Schrift rot färben Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Druck")
lastRow = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row

For Each cell In ws.Range("D3:N" & lastRow)
If Len(cell.Value) > 25 Then
cell.Font.Color = RGB(255, 0, 0)
Else
cell.Interior.ColorIndex = xlNone
End If
Next cell

' leere Zellen löschen
intLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
For intRow = intLastRow To 1 Step -1
If Application.CountA(Rows(intRow)) = 0 Then
Rows(intRow).Delete
End If
Next intRow

' Auswertung ob alle Werte erfasst wurden
If Not WorksheetFunction.CountA(Sheets("EplSheet").Range("E2:E200")) = WorksheetFunction.CountA(Sheets("Druck").Range("A2:A200")) Then
.Cells(1, 5).Interior.ColorIndex = 3
Else
.Cells(1, 5).Interior.ColorIndex = 4
End If

' Zelle (Offset 1) mit Leerzeichen am Ende einfügen
.Range("D" & Rows.Count).End(xlUp).Offset(1, 0).Value = " "

End With

' Bildschirmaktualisierung & Mitteilungen aus
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub
Anzeige
AW: langsamen VBA code mit Array beschleunigen
17.02.2025 21:02:57
Yal
Hallo Tobi,

das einzige, was Du beschleunigen kannst, ohne das gesamte Algo auf dem Kopf zu stellen, ist eine direkte Zuweisung der Werte in der Zelle und anschliessend die Quelle zu leeren, anstatt Cut+paste verwenden, weil das zeitintensiv ist.

Code-mässig lässt sich ein Muster in 50 Schritte erkennen, das die Wiederholung in einer Schleife ermöglicht. Hier nur 4 mal (0 bis 3):

Sub export_Label()

' export_Label Makro
Dim EinzelneWorte() As String
Dim Text As String
Dim i As Integer
Dim lastRow As Integer
Dim intRow As Integer
Dim intLastRow As Integer
Dim cell As Range

' Bildschirmaktualisierung & Mitteilungen aus
Application.ScreenUpdating = False
Application.DisplayAlerts = False

With Worksheets("Druck") 'ausser das Lesen von einzige Werte passiert alles auf dem Blatt "Druck"
'Tabellenblatt leeren und als Text formatieren
.Range(Cells(3, 1), Cells(1000, 26)).Clear
.Range(Cells(3, 1), Cells(1000, 26)).NumberFormat = "@"
.Cells(1, 5).Interior.ColorIndex = xlNone
For i = 0 To 3 ' x beliebige Wierderholung in 50er Reihenschritten
.Cells(10 + i * 50, 1).Value = Worksheets("EplSheet").Cells(2 + i, 5).Value ' 1. Zelle aus Programmexport übertragen
Text = Worksheets("EplSheet").Cells(2 + i, 6).Value ' 2. Zelle aus Programmexport übertragen
EinzelneWorte = Split(Text, Chr(10)) ' Zeichenkette trennen
.Cells(10 + i * 50, 2).Resize(1, UBound(EinzelneWorte) + 1) = EinzelneWorte 'in ein Tabellenblatt eintragen
.Cells(11 + i * 50, 2) = .Cells(10 + i * 50, 3).Value 'Teil 2 von Pärchen #1 in Spalte -B- einfügen: Zelle (10, 3)
.Cells(10 + i * 50, 3) = .Cells(10 + i * 50, 4).Value 'Pärchen #2 in Spalte -C- einfügen: Zelle (10, 4) & (10, 5)
.Cells(11 + i * 50, 3) = .Cells(10 + i * 50, 5).Value
.Cells(12 + i * 50, 2) = .Cells(10 + i * 50, 6).Value 'Pärchen #3 in Spalte -B- einfügen: Zelle (10, 6) & (10, 7)
.Cells(13 + i * 50, 2) = .Cells(10 + i * 50, 7).Value
.Cells(12 + i * 50, 3) = .Cells(10 + i * 50, 8).Value 'Pärchen #4 in Spalte -C- einfügen: Zelle (10, 8) & (10, 9)
.Cells(13 + i * 50, 3) = .Cells(10 + i * 50, 9).Value
.Cells(14 + i * 50, 2) = .Cells(10 + i * 50, 10).Value 'Pärchen #5 in Spalte -B- einfügen: Zelle (10, 10) & (10, 11)
.Cells(15 + i * 50, 2) = .Cells(10 + i * 50, 11).Value
.Cells(14 + i * 50, 3) = .Cells(10 + i * 50, 12).Value 'Pärchen #6 in Spalte -C- einfügen: Zelle (10, 12) & (10, 13)
.Cells(15 + i * 50, 3) = .Cells(10 + i * 50, 13).Value
.Cells(10 + i * 50, 3).Resize(12).clearcontens

.Cells(19 + i * 50, 4).Value = Worksheets("EplSheet").Cells(2 + i, 7).Value ' 3. Zelle aus Programmexport übertragen
Text = Worksheets("EplSheet").Cells(2 + i, 8).Value ' 4. Zelle aus Programmexport übertragen
EinzelneWorte = Split(Text, ";;;") ' Zeichenkette trennen &
Cells(21 + i * 50, 4).Resize(UBound(EinzelneWorte) + 1) = Application.Transpose(EinzelneWorte) ' in ein Tabellenblatt eintragen
Next i
'---------------------------------------------------------------------------------------------
' max. Zeichen zählen und Schrift rot färben Dim ws As Worksheet
lastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
For Each cell In .Range("D3:N" & lastRow)
If Len(cell.Value) > 25 Then
cell.Font.Color = RGB(255, 0, 0)
Else
cell.Interior.ColorIndex = xlNone
End If
Next cell

' leere Zellen löschen
intLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
For intRow = intLastRow To 1 Step -1
If Application.CountA(Rows(intRow)) = 0 Then Rows(intRow).Delete
Next intRow

' Auswertung ob alle Werte erfasst wurden
If Not WorksheetFunction.CountA(Sheets("EplSheet").Range("E2:E200")) = WorksheetFunction.CountA(.Range("A2:A200")) Then
.Cells(1, 5).Interior.ColorIndex = 3
Else
.Cells(1, 5).Interior.ColorIndex = 4
End If
' Zelle (Offset 1) mit Leerzeichen am Ende einfügen
.Range("D" & Rows.Count).End(xlUp).Offset(1, 0).Value = " "
End With
' Bildschirmaktualisierung & Mitteilungen aus
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub


Die "Auswertung durch Farbe" könntest Du in einem bedingte Formatierung umwandeln, sodass hier nicht jede einzelne Zelle nochmal angefasst werden muss.

VG
Yal
Anzeige
AW: langsamen VBA code mit Array beschleunigen
17.02.2025 22:28:44
Tobi_84
Hallo Yal,
danke für den Code, bis auf eine Zeile funktioniert der Code so wie ich es mir vorstelle.

".Cells(10 + i * 50, 3).Resize(12).clearcontens" führt zum Fehler.

Hast du noch eine Idee?
Gruß Tobias
AW: langsamen VBA code mit Array beschleunigen
17.02.2025 22:49:34
Yal
Hallo Tobi,

ja, folgende Idee: öffne einen Browser, tippe in der Adressfenster "vba cle". Spätestens da wird die Autovervollständungsvorschläge relativ präzis aufzeigen was fehlt.
(Spoiler: einen "t")

Alternativ 2:
VBA-Editor öffnen und
Range("A1").Clea
tippen, dann Strg+Leertaste (zugegeben, das richtige Ergebnis ist erst an der dritte Stelle)

Alternativ 3:
der sogenannte Objekt-Katalog öffnen: Ansicht, Objekt Katalog, oder einfach F2. Nach "Range" als Klasse suchen, dann entdecken welche Eigenschaften und Methode diesem Objekt/Klasse zugeordnet sind (für die Unterschied zw. Objekt & Klasse bitte goo...) und einen Clearcontents mit meinem fehlenden "t" entdecken.

Sorry, wenn ich sarkastisch bin, immerhin habe ich den Tipp-Fehler gemacht.
Competence is a state of mind. Das Vorteil: wenn man damit angefangen hat, wird es immer besser und schneller.

VG
Yal

Anzeige
AW: langsamen VBA code mit Array beschleunigen
18.02.2025 20:40:53
Tobi_84
Hallo Yal,

danke für deine Geduld mit mir ;-).

Ich habe weiterhin Probleme mit dieser Code-Zeile.
Wie bekomme ich es hin, dass die Zellen D10:M10 (+50er Schritte) horizontal gelöscht werden und nicht vertikal?

.Cells(10 + i * 50, 4).Resize(12).ClearContents 'löscht vertikal

Gruß Tobias
Anzeige
AW: langsamen VBA code mit Array beschleunigen
18.02.2025 20:56:21
Tobi_84
Hat sich erledigt, danke an alle Beteiligten für eure Mühe.

Gruß Tobias
AW: langsamen VBA code mit Array beschleunigen
19.02.2025 10:30:05
Yal
;-) gleich umgesetzt, oder?

nach "vba resize" goo...
Am besten immer die Seiten von learn.microsoft.com nehmen, nicht weil sie besser sind, sondern weil deren Erscheinung inkl. Beispiel immer dieselbe ist, was das Herausfinden der wichtigste Information beschleunigt.
https://learn.microsoft.com/de-de/office/vba/api/Excel.Range.Resize

VG
Yal
Anzeige
AW: langsamen VBA code mit Array beschleunigen
19.02.2025 20:41:21
Tobi_84
Hallo Yal,

ja, ich hab den Code gleich umgesetzt.
Nach der Freude kam aber gleich wieder die Ernüchterung.
Meine Tabellenquelle ist dynamisch, also musste ich den Kopf der Schleife nochmal anpassen, was aber nur ein paar Stunden gedauert hat :-).
Jetzt läuft die Schleife so wie ich es mir vorgestellt habe.

Gruß Tobias
Anzeige
AW: langsamen VBA code mit Array beschleunigen
13.02.2025 23:23:53
Piet
Hallo

die aufwendige Cut Programmierung lässt sich auf eine Zeile verkürzen. Spart Zeit
Sheets("Druck").Cells(20, 5).Resize(1, 21).Cut Cells(21, 4)

mfg Piet
AW: langsamen VBA code mit Array beschleunigen
14.02.2025 08:30:44
Tobi_84
Hallo Udo, Hallo Piet,
vielen Dank für eure Hilfe, einfach super wie kurz und einfach ihr es aussehen lasst.

Leider habe ich noch ein weiteres Problem, wo der ausgelesene Text in einem bestimmten Raster wieder gegeben werden soll.
Ist hier auch noch Optimierung möglich?

' Einstellwerte einlesen

Text = Worksheets("EplSheet").Cells(2, 6).Value
' Zeichenkette trennen & in ein Tabellenblatt eintragen
EinzelneWorte = Split(Text, Chr(10))

' Spalte Ir #1
For i = 0 To UBound(EinzelneWorte)
Worksheets("Druck").Cells(10, i + 2) = EinzelneWorte(i)
Next i
' Folgezellen mit Einstellungen verschieben (Reihe, Spalte)
Sheets("Druck").Cells(10, 3).Cut Cells(11, 2)
Sheets("Druck").Cells(10, 4).Cut Cells(10, 3)
Sheets("Druck").Cells(10, 5).Cut Cells(11, 3)
Sheets("Druck").Cells(10, 6).Cut Cells(12, 2)
Sheets("Druck").Cells(10, 7).Cut Cells(13, 2)
Sheets("Druck").Cells(10, 8).Cut Cells(12, 3)
Sheets("Druck").Cells(10, 9).Cut Cells(13, 3)
Sheets("Druck").Cells(10, 10).Cut Cells(14, 2)
Sheets("Druck").Cells(10, 11).Cut Cells(15, 2)
Sheets("Druck").Cells(10, 12).Cut Cells(14, 3)
Sheets("Druck").Cells(10, 13).Cut Cells(15, 3)


Anzeige
AW: langsamen VBA code mit Array beschleunigen
14.02.2025 07:09:56
JacksonWorthington
Hallo zusammen. Ich bin neu hier.
AW: langsamen VBA code mit Array beschleunigen
14.02.2025 11:58:54
Piet
Hallo

freut mich das wir beide dir helfen konnten. Für Arrays ist Udo der bessere Fachmann.
Hier dein gekürzter Code. Freut mich wenn es damit klappt.
Sheets("Druck").Cells(10, 3).Resize(1, 11).Copy
Cells(11, 2).PasteSpecial xlPasteAll, Transpose:=True
Sheets("Druck").Cells(10, 3).Resize(1, 11).ClearContents

mfg Piet
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige