Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1624to1628
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

VBA Code optimieren

VBA Code optimieren
19.05.2018 22:45:25
Marc
Servus nochmal,
ich würde gerne wissen ob mir jemand helfen könnte meinen zusammengestopselten VBA-Code zu optimieren und übersichtlichter zu gestalten. Ich habe an dem Code sehr viel rum probiert. Er funktioniert sogar, aber ich bin mir nicht mehr sicher was überflüssig ist und was benötigt wird. Des Weiteren gibt es Bereiche die ich umständlich gestaltet habe weil ich es nicht besser weiß. Vielleicht gibt es ja Varianten ihn schneller oder wenigstens kürzer zu machen.
Beispiel:
Private Function Erase_Unwanted_Data(Ws As Worksheet) As Boolean
'=============================================================================================== _
'  Importierte Daten aufbereiten und verarbeiten.
'=============================================================================================== _
With Ws
.Columns(53).Delete
.Columns(52).Delete
.Columns(51).Cut
.Columns(100).Insert
.Columns(49).Cut
.Columns(99).Insert
.Columns(47).Cut
.Columns(98).Insert
.Columns(45).Cut
.Columns(97).Insert
.Columns(43).Cut
.Columns(96).Insert
.Columns(41).Cut
.Columns(95).Insert
.Columns(39).Cut
.Columns(94).Insert
.Columns(37).Cut
.Columns(93).Insert
.Columns(35).Cut
.Columns(92).Insert
.Columns(33).Cut
.Columns(91).Insert
.Columns(31).Cut
.Columns(90).Insert
.Columns(29).Cut
.Columns(89).Insert
.Columns(27).Cut
.Columns(88).Insert
.Columns(25).Cut
.Columns(87).Insert
.Columns(23).Cut
.Columns(86).Insert
.Columns(21).Cut
.Columns(85).Insert
.Columns(19).Cut
.Columns(84).Insert
.Columns(17).Cut
.Columns(83).Insert
.Columns(15).Cut
.Columns(82).Insert
.Columns(13).Cut
.Columns(81).Insert
.Columns(11).Cut
.Columns(80).Insert
.Columns(9).Cut
.Columns(79).Insert
.Columns(7).Cut
.Columns(78).Insert
.Columns(5).Cut
.Columns(77).Insert
.Columns(76).Cut
.Columns(28).Insert
.Columns(77).Cut
.Columns(29).Insert
.Columns(78).Cut
.Columns(30).Insert
.Columns(79).Cut
.Columns(31).Insert
.Columns(80).Cut
.Columns(32).Insert
.Columns(81).Cut
.Columns(33).Insert
.Columns(82).Cut
.Columns(34).Insert
.Columns(83).Cut
.Columns(35).Insert
.Columns(84).Cut
.Columns(36).Insert
.Columns(85).Cut
.Columns(37).Insert
.Columns(86).Cut
.Columns(38).Insert
.Columns(87).Cut
.Columns(39).Insert
.Columns(88).Cut
.Columns(40).Insert
.Columns(89).Cut
.Columns(41).Insert
.Columns(90).Cut
.Columns(42).Insert
.Columns(91).Cut
.Columns(43).Insert
.Columns(92).Cut
.Columns(44).Insert
.Columns(93).Cut
.Columns(45).Insert
.Columns(94).Cut
.Columns(46).Insert
.Columns(95).Cut
.Columns(47).Insert
.Columns(96).Cut
.Columns(48).Insert
.Columns(97).Cut
.Columns(49).Insert
.Columns(98).Cut
.Columns(50).Insert
.Columns(99).Cut
.Columns(51).Insert
.Rows(1).Delete
End With
End Function
Wenn mir jemand helfen würde den Code hier rein stellen oder ist dafür die ganze Datei erforderlich?
Gruß Marc

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code optimieren
19.05.2018 23:24:21
Günther
Moin Marc,
wenn ich das richtig sehe, löscht du einige Spalten und andere verschiebst du. Normalerweise wirst du dazu eine Sub einsetzen und keine Function. Und ich würde das mit xl2010/13: Power Query, xl2016/365: Daten | Abrufen und transformieren machen, das geht garantiert schneller und du schreibst keine einzige Zeile Code.
Gruß
Günther
AW: VBA Code optimieren
20.05.2018 08:53:27
Marc
Das war ja nur ein Teil des Codes und nicht alles. Ich habe ja gefragt ob mir jemand helfen kann. Und deswegen nur den kleinen Teil des Codes als Beispiel gepostet. Wenn mir jemand helfen würde würde ich den ganzen code hier abbbilden.
Aber danke für den Tipp Günther
Anzeige
AW: VBA Code optimieren
20.05.2018 10:18:07
Tino
Hallo,
kannst du kurz schreiben
Zuerst welche Spalten gelöscht werden sollen,
danach wo wieder eingefügt?
Gruß Tino
AW: VBA Code optimieren
20.05.2018 11:27:01
Marc
Hi Tino,
ich kopiere Spalten aus einer CSV Datei und muss diese neu anordnen. Die CSV Datei hat 53 Spalten. Spalte 52 und 53 wird nicht benötigt. Spalte 1, 2 und 3 bleiben an ihrer Position. Spalte 4 bis 51 müssen getauscht werden dass heißt alle geraden Spalten Nummern 4, 6, 8 usw... müssen nebeneinander stehen und auch alle ungeraden. wenn das getan ist werden alle so wie sie sind kopiert. Mein Code funktioniert sieht aber nicht sehr elegant aus. Daher meine Frage ob mir da jemand helfen könnte meinen Code nach und nach zu opitmieren sprich schnell und übersichtlicher zu machen
Anzeige
AW: VBA Code optimieren
20.05.2018 11:29:40
Marc
Hi Tino,
ich kopiere Spalten aus einer CSV Datei und muss diese neu anordnen. Die CSV Datei hat 53 Spalten. Spalte 52 und 53 wird nicht benötigt. Spalte 1, 2 und 3 bleiben an ihrer Position. Spalte 4 bis 51 müssen getauscht werden dass heißt alle geraden Spalten Nummern 4, 6, 8 usw... müssen nebeneinander stehen und auch alle ungeraden. wenn das getan ist werden alle so wie sie sind kopiert. Mein Code funktioniert sieht aber nicht sehr elegant aus. Daher meine Frage ob mir da jemand helfen könnte meinen Code nach und nach zu opitmieren sprich schnell und übersichtlicher zu machen
AW: VBA Code optimieren
20.05.2018 12:08:47
Tino
Hallo,
kannst mal so versuchen.
Sollte die Sortierung andersherum sein mach aus "=MOD(COLUMN()-1,2)" diese "=MOD(COLUMN(),2)"
With WS
.Range("AZ:BA").Resize(, 2).Delete
With .Range("D:AY")
.Rows(1).FormulaR1C1 = "=MOD(COLUMN()-1,2)"
.Rows(1).Value = .Rows(1).Value
.Sort Key1:=.Cells, Order1:=xlAscending, Orientation:=xlSortRows, Header:=xlNo
End With
.Rows(1).Delete
End With
Gruß Tino
Anzeige
Spätes Danke
22.05.2018 00:40:34
Marc
Hi Tino,
vielen Dank für deine Hilfe. Mit der Variante hat es geklappt und ich muss sagen der Code ist schneller geworden =)
With WS
.Range("AZ:BA").Resize(, 2).Delete
With .Range("D:AY")
.Rows(1).FormulaR1C1 = "=MOD(COLUMN(),2)"
.Rows(1).Value = .Rows(1).Value
.Sort Key1:=.Cells, Order1:=xlAscending, Orientation:=xlSortRows, Header:=xlNo
End With
.Rows(1).Delete
End With
Kannst du noch andere Code Teile von mir anspecken oder schneller machen?
AW: Spätes Danke
22.05.2018 06:02:46
Tino
Hallo,
Danke für die Rückmeldung!
Kommt auf den Code und den Aufwand an!
Besser wäre auch eine Beispiel Datei zum testen.
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige