Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
vba prozedur zu lang (sehr linear)- vereinfachen?
zurück: Schaltfläche "Tabellenblatt einfügen" manipulieren weiter: Funktion (Filterung anzeigen) geht nach Office-Wechsel nicht Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
flo0
Gast


Verfasst am:
11. Aug 2011, 16:30
Rufname:

vba prozedur zu lang (sehr linear)- vereinfachen? - vba prozedur zu lang (sehr linear)- vereinfachen?

Nach oben
       Version: Office 2007

hi

ich hab einen sehr linearen code geschrieben, dadurch ist die prozedur zu lang geworden ich kopier mal einen teil hinein, hat jemand einen tipp für mich wie ich das ganze abkürzen bzw vereinfachen kann?

If kategorie.typ4.Text = "2010" Then
If kategorie.typ4.Text = "Sattelzug" Then
While Tabelle1.Cells(5, r) <> "W 41759 P"
r = r + 1
Wend
Tabelle6.Cells(3, 3) = Tabelle1.Cells(8, r)
Tabelle6.Cells(3, 4) = Tabelle1.Cells(8, r + 2)
Tabelle6.Cells(3, 5) = Tabelle1.Cells(9, r)
Tabelle6.Cells(3, 6) = Tabelle1.Cells(9, r + 2)
Tabelle6.Cells(3, 7) = Tabelle1.Cells(10, r)
Tabelle6.Cells(3, 8) = Tabelle1.Cells(10, r + 2)
Tabelle6.Cells(3, 9) = Tabelle1.Cells(11, r)
Tabelle6.Cells(3, 10) = Tabelle1.Cells(11, r + 2)
Tabelle6.Cells(3, 11) = Tabelle1.Cells(12, r)
Tabelle6.Cells(3, 12) = Tabelle1.Cells(12, r + 2)
Tabelle6.Cells(3, 13) = Tabelle1.Cells(13, r)
Tabelle6.Cells(3, 14) = Tabelle1.Cells(13, r + 2)
Tabelle6.Cells(3, 15) = Tabelle1.Cells(14, r)
Tabelle6.Cells(3, 16) = Tabelle1.Cells(14, r + 2)
Tabelle6.Cells(3, 17) = Tabelle1.Cells(15, r)
Tabelle6.Cells(3, 18) = Tabelle1.Cells(15, r + 2)
Tabelle6.Cells(3, 19) = Tabelle1.Cells(16, r)
Tabelle6.Cells(3, 20) = Tabelle1.Cells(16, r + 2)
Tabelle6.Cells(3, 21) = Tabelle1.Cells(17, r)
Tabelle6.Cells(3, 22) = Tabelle1.Cells(17, r + 2)
Tabelle6.Cells(3, 23) = Tabelle1.Cells(18, r)
Tabelle6.Cells(3, 24) = Tabelle1.Cells(18, r + 2)
Tabelle6.Cells(3, 25) = Tabelle1.Cells(19, r)
Tabelle6.Cells(3, 26) = Tabelle1.Cells(19, r + 2)
Tabelle6.Cells(3, 27) = Tabelle1.Cells(28, r)
Tabelle6.Cells(3, 28) = Tabelle1.Cells(28, r + 2)
While Tabelle1.Cells(5, r) <> "W 72948 S"
r = r + 1
.
.
.


das ist sehr sehr lang... geht für einige kategorien und unterkategorien! Bräuchte etwas um evt die sich linear ändernde spaltenzahl mit einer variable zu ersetzen? aber wie funktioniert das?

mfg
Nicolaus
Hobby-VBAler


Verfasst am:
11. Aug 2011, 17:04
Rufname: Nic
Wohnort: Rhein Main Gebiet


AW: vba prozedur zu lang (sehr linear)- vereinfachen? - AW: vba prozedur zu lang (sehr linear)- vereinfachen?

Nach oben
       Version: Office 2007

Hi,

ich vermute, dass das ganze einfacher funktionieren würde,
wenn mann erst mal mit Transpose die Spalten in Zeilen wandeln würde.

Das von dir angesprochene Teil könnte z.B. so gehen.
Code:
Wend
    For i = 0 To 11
        Tabelle6.Cells(3, 3 + i * 2) = Tabelle1.Cells(i + 8, r)
        Tabelle6.Cells(3, 4 + i * 2) = Tabelle1.Cells(i + 8, r + 2)
    Next i
    Tabelle6.Cells(3, 27) = Tabelle1.Cells(28, r)
    Tabelle6.Cells(3, 28) = Tabelle1.Cells(28, r + 2)
While Tabelle1.Cells(5, r) <> "W 72948 S"
Gruss
Nic

_________________
die Forenhelfer freuen sich über eine Antwort
Gast



Verfasst am:
11. Aug 2011, 17:23
Rufname:

AW: vba prozedur zu lang (sehr linear)- vereinfachen? - AW: vba prozedur zu lang (sehr linear)- vereinfachen?

Nach oben
       Version: Office 2007

Hi
alternativ könnte man auch Formeln in die Zellen schreiben, die die Zellbezüge mit Index, Zeile, Spalte und diesem Fall mit Rest ausrechnen:

Code:
With Tabelle6.Range("C3:AB3")
   .FormulaR1C1Local = "=Index(Tabelle1!S" & r & ":S" & r+2 & ";8+(Spalte()-3)/2;3-Rest(Spalte();2)*2)
   .Formula = .Value
End with


das wird bei grösseren Datenmengen auf jeden Fall deutlich schneller sein als Einzeleingaben oder Schleifen.

Gruß, Daniel
Gast



Verfasst am:
11. Aug 2011, 18:13
Rufname:

AW: vba prozedur zu lang (sehr linear)- vereinfachen? - AW: vba prozedur zu lang (sehr linear)- vereinfachen?

Nach oben
       Version: Office 2007

Wend
For i = 0 To 11
Tabelle6.Cells(3, 3 + i * 2) = Tabelle1.Cells(i + 8, r)
Tabelle6.Cells(3, 4 + i * 2) = Tabelle1.Cells(i + 8, r + 2)
Next i
Tabelle6.Cells(3, 27) = Tabelle1.Cells(28, r)
Tabelle6.Cells(3, 28) = Tabelle1.Cells(28, r + 2)
While Tabelle1.Cells(5, r) <> "W 72948 S"


hi

danke für eure beiden antworten! für das zweite hab ich leider keine zeit zum durchblicken das ist mir zu kompliziert ^^ - trotzdem danke!
aber zum ersten hätt ich noch eine frage! Wieso 0 zu 11 ?

und v.a. wieso dann unten mal 2 ? wie genau funktioniert das?
Gast



Verfasst am:
11. Aug 2011, 18:21
Rufname:

AW: vba prozedur zu lang (sehr linear)- vereinfachen? - AW: vba prozedur zu lang (sehr linear)- vereinfachen?

Nach oben
       Version: Office 2007

HI

weil deine Spalte 28 bei den letzen beiden aus der Reihe tanzt.
wenn dort 20 stehen würde, was in der Reihenfolge logsich das nächste wäre, dann wäre das hier ausreichend:
Code:
For i = 0 To 12
Tabelle6.Cells(3, 3 + i * 2) = Tabelle1.Cells(i + 8, r)
Tabelle6.Cells(3, 4 + i * 2) = Tabelle1.Cells(i + 8, r + 2)
Next i

die 28 weicht von der Regel ab, daher kann man den Wert nicht berechnen, sondern muss ihn seperat behandeln.

bzw meine Formeln machen auch nichts anderes, als den Zellbezug aus der Spalte der Formel zu berechnen, das solltest du dir mal anschauen, wenn du öfters solche aufgaben hast.
denn ersten kannst du dann die Aufgabe auch ohne Makro schnell lösen (machmal muss man auch "geschwind" was bearbeiten)
und zweitens ist diese Methode in Punkto verarbeitungsgeschwindigkeit der Schleife deutlich überlegen und machst sich bei grösseren Datenmengen schon bemerkbar.

gruß, Daniel
flo0
Gast


Verfasst am:
11. Aug 2011, 18:23
Rufname:


AW: vba prozedur zu lang (sehr linear)- vereinfachen? - AW: vba prozedur zu lang (sehr linear)- vereinfachen?

Nach oben
       Version: Office 2007

hi,

jo ich hab das mitlerweile schon ausprobiert und es funktioniert wunderbar!

danke für die erklärung, jetzt ist es mir auch klar Razz

mfg
schönen abend noch!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Formel zu lang bzw einem Namen eine Zahl zuordnen 1 Alfredo12 197 26. Sep 2010, 17:02
etron795 Formel zu lang bzw einem Namen eine Zahl zuordnen
Keine neuen Beiträge Excel Formeln: Summewenn vereinfachen 11 Prüfstelle 396 03. Aug 2010, 10:44
Prüfstelle Summewenn vereinfachen
Keine neuen Beiträge Excel Formeln: Meine Formel wird zu lang! 8 petlin 183 23. Jul 2010, 07:07
Gast Meine Formel wird zu lang!
Keine neuen Beiträge Excel Formeln: Linear Werte in Diagramm 1 Chrissi86 290 01. Apr 2010, 14:34
fiz Linear Werte in Diagramm
Keine neuen Beiträge Excel Formeln: Formel ist zu lang 13 Gast 387 24. März 2010, 15:40
Agneta123 Formel ist zu lang
Keine neuen Beiträge Excel Formeln: Formel zu lang!? 2 BjörnH 307 12. Dez 2009, 19:13
BjörnH Formel zu lang!?
Keine neuen Beiträge Excel Formeln: Formel vereinfachen 3 Nille81 195 09. Dez 2009, 17:33
Nille81 Formel vereinfachen
Keine neuen Beiträge Excel Formeln: zählenwenn vereinfachen ??? 4 neuling031280 182 27. Nov 2009, 17:12
neuling031280 zählenwenn vereinfachen ???
Keine neuen Beiträge Excel Formeln: Formel vereinfachen oder Makro? 4 ARTischocke 298 17. Jul 2009, 23:58
shift-del Formel vereinfachen oder Makro?
Keine neuen Beiträge Excel Formeln: Wenn dann sonst formel zu lang... 5 Arlie 906 10. Feb 2009, 16:09
Gast Wenn dann sonst formel zu lang...
Keine neuen Beiträge Excel Formeln: Formel zu lang 4 fred007 198 18. Sep 2008, 11:05
fred007 Formel zu lang
Keine neuen Beiträge Excel Formeln: Formel vereinfachen 1 horst143 509 26. Feb 2008, 07:23
Lukas Mosimann Formel vereinfachen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe