Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code vereinfachen

Forumthread: Code vereinfachen

Code vereinfachen
10.01.2019 09:26:36
Nomanarmy
Hallo zusammen,
kann man diese Formel noch irgendwie vereinfachen?
Dim intRow As Integer
For intRow = 1 To Tabelle3.Range("H3").Value
Cells(intRow + 23, 2) = Tabelle3.Range("B3")
Next intRow
Dim intRow1 As Integer
For intRow1 = 1 To Tabelle3.Range("H4").Value
Cells(intRow + 22 + intRow1, 2) = Tabelle3.Range("B4")
Next intRow1
Dim intRow2 As Integer
For intRow2 = 1 To Tabelle3.Range("H5").Value
Cells(intRow + intRow2 + 21 + intRow1, 2) = Tabelle3.Range("B5")
Next intRow2
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code vereinfachen
10.01.2019 09:57:32
Daniel
Hi
1. wenn mehrere direkt nebeneinanderliegende Zellen den gleichen Wert oder die gleiche Formel bekommen sollen, dann kann man diesen wert auch in alle Zellen gleichzeitig schreiben und benötigt keine Schleife:
2. sollte man ein bestimmtes Objekt (z.B. bei dir Tabelle3) im Code häufiger benötigen, kann man die WITH-Klammer verwenden, um sich Schreibarbeit zu sparen.
in der WITH-Klammer wird das Objekt beschrieben und in der Folge reicht dann der Punkt, wenn dieses Objetk verwendet werden soll:
3. die .Value-Eigentschaft ist in vielen Fällen die Default-Eigenschaft.
dh wenn nach einem Objekt wie Range oder Cells nichts weiter angegeben ist, verwendet VBA die Werte aus der Default-Eigenschaft, dh statt Range("B5").Value reicht oft Range("B5")
(wobei ich das nicht so gerne anwende sondern hier lieber ausschreibe, dann bin ich sicher was verwendet wird)
With Tabelle3
Cells(24, 2).Resize(.Range("H3"), 1) = .Range("B3")
Cells(24 + .Range("H3"), 2).Resize(.Range("H4"), 1) = .Range("B4")
Cells(24 + Range("H3") + Range("H4"), 2).Resize(.Range("H5"), 1) = .Range("B5")
End With
wenn man hier eine sinnvoll eine Schleife anwenden will, dann über die Zeilen 3-5 der Tabelle 3:

dim z as Long
dim i as Long
dim j as Long
with Tabelle3
i = 24
for z = 3 to 5
j = .Cells(z, 8)
Cells(i, 2).Resize(j, 1) = .Cells(z, 2)
i = i + j
next
End with

Anzeige
AW: Code vereinfachen
10.01.2019 10:08:41
Nomanarmy
Super Danke klappt!
AW: Code vereinfachen
10.01.2019 09:58:02
UweD
Hallo
ohne Schleife..
    Dim intRow As Integer, Start As Long, Anz As Integer
    
    Start = 24
    
    Anz = Tabelle3.Range("H3")
    Cells(Start, 2).Resize(Anz, 1) = Tabelle3.Range("B3")
    Start = Start + Anz
    
    Anz = Tabelle3.Range("H4")
    Cells(Start, 2).Resize(Anz, 1) = Tabelle3.Range("B4")
    Start = Start + Anz
   
    Anz = Tabelle3.Range("H5")
    Cells(Start, 2).Resize(Anz, 1) = Tabelle3.Range("B5")
LG UweD
Anzeige
AW: Code vereinfachen
10.01.2019 10:08:02
Nomanarmy
Krass vielen Dank!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige