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

VBA Schleife programmieren

Forumthread: VBA Schleife programmieren

VBA Schleife programmieren
12.09.2016 09:49:55
Liana
Hallo,
ich möchte in Excel eine Schleife programmieren. Da meine VBA Kenntnisse äußerst bescheiden sind, komme ich einfach nicht weiter.
Das Problem sieht folgendermaßen aus:
Ich habe eine Tabelle "Muster6" mit 286 Einträgen. In Spalte M steht die Bausumme welche ich per Copy&Paste in die Tabelle "§34_KG300 HOAI 2009" in Zelle A46 einfüge. Dann wird in Zelle D61:E61 ein Mindest- und Höchstsatz ermittelt, welchen ich per Copy&Paste in die Tabelle "Honorare" Zelle G4:H4 einfüge.
Mein einfaches Makro, welches noch zu einer Schleife programmiert werden soll, sieht folgendermaßen aus:
Sub KG300()
' KG300 Makro
' Tastenkombination: Strg+q
Sheets("Muster6").Select
Range("M4").Select
Selection.Copy
Sheets("§34_KG300 HOAI 2009").Select
Range("A46").Select
ActiveSheet.Paste
Range("D61:E61").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Honorare").Select
Range("G4").Select
ActiveSheet.Paste
End Sub

Ich möchte nun das Excel in Spalte M (Tabelle "Muster6") immer eine Zelle weiter springt und die berechneten Honorare immer in die nächste Zelle in Spalte G:H (Tabelle "Honorare") einfügt.
Sicher ist das total einfach zu lösen, wenn man Ahnung hat.
Ich danke schon mal für jede Hilfe!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Schleife programmieren
12.09.2016 10:35:44
UweD
Hallo
ein Tipp vorab: auf select kann in 99% der Fälle verzichtet werden.
Sub KG300()
    Dim Tb1, Tb2, Tb3
    Dim i As Integer, ZE1 As Integer
    Dim LR1 As Integer, LR3 As Integer
    Set Tb1 = Sheets("Muster6")
    Set Tb2 = Sheets("§34_KG300 HOAI 2009")
    Set Tb3 = Sheets("Honorare")
    ZE1 = 4 ' erste Zeile 
    LR1 = Tb1.Cells(Tb1.Rows.Count, "M").End(xlUp).Row 'letzte Zeile der Spalte M 
    
    For i = ZE1 To LR1
        Tb1.Range("M" & i).Copy Tb2.Range("A46")
        LR3 = Tb3.Cells(Tb3.Rows.Count, "G").End(xlUp).Row + 1 'erste freie Zeile der Spalte G 
        Tb2.Range("D61:E61").Copy
        Tb3.Range("G" & LR3).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
    Next
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD
Anzeige
AW: VBA Schleife programmieren
12.09.2016 10:46:44
Liana
Vielen Dank für die schnelle Antwort!
Der Code funktioniert und spart mir jede Menge Arbeit!
Vielen Vielen Dank dafür!!
Danke für die Rückmeldung owT
12.09.2016 12:03:03
UweD
AW: VBA Schleife programmieren
12.09.2016 10:45:41
Werner
Hallo Liana,
oder so, ohne Copy und Paste, dürfte bei größeren Datemengen schneller sein:
Public Sub Test()
Dim loLetzte As Long
Dim loLetzte1 As Long
Dim i As Long
loLetzte = Sheets("Muster6").Cells(Rows.Count, 13).End(xlUp).Row
For i = 2 To loLetzte
With Sheets("Muster6")
loLetzte1 = Sheets("Honorare").Cells(Rows.Count, 7).End(xlUp).Row + 1
Sheets("§34_KG300 HOAI 2009").Range("A46").Value = .Cells(i, 13).Value
Sheets("Honorare").Cells(loLetzte1, 7).Value = Sheets("§34_KG300 HOAI 2009").Cells(61,  _
4).Value
Sheets("Honorare").Cells(loLetzte1, 8).Value = Sheets("§34_KG300 HOAI 2009").Cells(61,  _
5).Value
End With
Next
End Sub
Gruß Werner
Anzeige
;

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