Anzeige
Archiv - Navigation
1512to1516
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

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!

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige