Anzeige
Archiv - Navigation
1664to1668
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige