Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel von Makrorekorder verbessern!!??

Formel von Makrorekorder verbessern!!?
11.02.2007 13:48:09
Makrorekorder
Hi Leute,
da mein Makro nicht wirklich schnell ist, versuch ich gerade ein wenig verweifelnd das mit dem Rekorder aufgenommene Makro zu verbessern.
ursprüngliches Makro:


'hier beginnt der Code für Diagramm5
' Lkw-Verkehrsstärke berechnen lassen
Sheets("Wertetabelle").Select
'fügt Straßennamen in F1 ein
Range("F1").Select
ActiveCell.FormulaR1C1 = "=LEFT(R[4]C[-2],15)" '12 als 15
Range("A1").Select
'weiter mit Verkehrsstärke Lkw
Range("X5").Select
ActiveCell.FormulaR1C1 = "=RC[-13]-RC[-11]"
Range("X5").Select
Selection.AutoFill Destination:=Range("X5:X22400"), Type:=xlFillDefault
Range("X5:X22400").Select
'Einschub Filtereintrag erste Zeile


Kann man das ursprüngliche Makro in das folgende Makro umschreiben, um wesentlich schneller zu werden?


'hier beginnt der Code für Diagramm5
Sheets("Wertetabelle").Range("F1").Select
' Lkw-Verkehrsstärke berechnen lassen
Sheets("Wertetabelle").Range("F1").Formula = "=LEFT(R[4]C[-2],15)" '12 als 15
'weiter mit Verkehrsstärke Lkw
Sheets("Wertetabelle").Range("X5").Select
Sheets("Wertetabelle").Range("X5").Formula = "=RC[-13]-RC[-11]"
Dim z
z = Range("W5").End(xlDown).Row
Selection.AutoFill Destination:=Range(Cells(5, 5), Cells(z, 5)) ', Type:=xlFillDefault
'Einschub Filtereintrag erste Zeile


Die Select Zeilen kann ich dann wohl auch weglassen, da sie wohl auch bremsen und außerdem überflüssig sind, oder?
Danke schon mal!
Gruß Till

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel von Makrorekorder verbessern!!?
11.02.2007 13:57:55
Makrorekorder
Hallo Till,
räume noch konsequenter auf:

Sub Probieren()
With Worksheets("Wertetabelle")
.Range("F1").FormulaR1C1 = "=LEFT(R[4]C[-2],15)" '12 als 15
With .Range("X5")
.FormulaR1C1 = "=RC[-13]-RC[-11]"
.AutoFill Destination:=.Range("X5:X22400"), _
Type:=xlFillDefault
End With
End With
End Sub

Wenn Du dich sowieso schon im Blatt "Wertetabelle" befindest, kannst Du Dir diesen Rahmen auch sparen.
gruss hans
AW: Formel von Makrorekorder verbessern!!?
11.02.2007 13:58:33
Makrorekorder
Hallo,
ohne Select.
'hier beginnt der Code für Diagramm5
' Lkw-Verkehrsstärke berechnen lassen
With Sheets("Wertetabelle")
'fügt Straßennamen in F1 ein
.Range("F1").FormulaR1C1 = "=LEFT(R[4]C[-2],15)" '12 als 15
'weiter mit Verkehrsstärke Lkw
.Range("X5:X22400").FormulaR1C1 = "=RC[-13]-RC[-11]"
End With
Gruß aus’m Pott
Udo

Anzeige
AW: Formel von Makrorekorder verbessern!!?
11.02.2007 14:29:18
Makrorekorder
Hallo Leute,
das war sehr hilfreich, danke...
Genauso werde ich noch ein paar andere Codepassagen korrigieren.
Schönen Sonntag noch!
Gruß Till
AW: Formel von Makrorekorder verbessern!!?
11.02.2007 18:50:42
Makrorekorder
Hallo Leute,
hab mir jetzt Eure Vorschläge noch mal genauer angeschaut!
Irgendetwas ist immer noch nicht so ganz richtig an dem verbesserten Code.
Richtig ist, dass jetzt alles wesentlich schneller geht....
Aber zuvor wollte ich in Zelle "X5" die Subtraktion "K5-M5" eingetragen haben und dann entsprechend bis zur letzten Zeile (hier Zeile 22400) runterziehen.
Außerdem sollte in Zelle "F1" die Formel "LINKS(D5;15)" eingetragen werden, um die ersten 15 Stellen der Zelle "D5" angezeigt zu bekommen.
Leider ist jetzt das Ergebnis, dass ich in "X5" die Formel ("IJ1-IL1") stehen habe, und die Formel, die in "F1" landen soll, ist ganz verschwunden?
Komisch eigentlich! Eigentlich haben wir doch mit den Codes nichts wesentlich geändert, oder?
Also momentan steht da folgendes, was o.g. Ergebnis zur Folge hat:


   'hier beginnt der Code für Diagramm5
   ' Lkw-Verkehrsstärke berechnen lassen
   With Sheets("Wertetabelle")
      'fügt Straßennamen in F1 ein
      .Range("F1").FormulaR1C1 = "=LEFT(R[4]C[-2],15)"   '12 als 15
      'weiter mit Verkehrsstärke Lkw
      .Range("X5:X22400").FormulaR1C1 = "=RC[-13]-RC[-11]"
   End With


Vielleicht könnt Ihr da noch mal drübergucken? Schön wär's natürlich, wenn die "Runterziehformel"! noch dazu so weit geht, wie in der Spalte davor der Text geht, also entsprechend variabel!
Danke!
Gruß Till
Anzeige
AW: Formel von Makrorekorder verbessern!!?
12.02.2007 09:00:25
Makrorekorder
Hallo,
.Range("F1").FormulaR1C1 = "=LEFT(R5C4,15)"
.Range("X5:X22400").FormulaR1C1 = "=RC11-RC13"
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Formel von Makrorekorder verbessern!!?
12.02.2007 10:00:35
Makrorekorder
Hallo Rudi,
danke für den Tipp. Meine Lösung, die ich in der Zwischenzeit herausgefunden hatte, holte sich die Referenz von der rechten Seite.
Also:
.Range("X5:X22400").FormulaR1C1 = "=R[4]C[-246]-R[4]C[-244]"
Deine Lösung ist es aber auch gut, vielleicht sogar schneller?
Richtig heißt es aber:
.Range("X5:X22400").FormulaR1C1 = "=R[4]C11-R[4]C13"
Damit in Zeile 5 angefangen werden kann!
Trotzdem Danke!
Gruß Till
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige