Hilfe bei Schleife für mein Macro

  • Excel

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Hilfe bei Schleife für mein Macro

    Hallo ich bin nicht sehr gut in VBA und komme selbt mit Hilfe nicht zu meinen Ziel

    Ich bräuchte eine Schleife die mein Macro so lange wiederholt bis in Zelle A nichts mehr steht bzw mein Macro nur dann anwendet wenn in Zelle A ein Wert (Datum) steht



    mein Ansatz

    Visual Basic-Quellcode

    1. Sub Makro1()
    2. '
    3. ' Makro1 Makro
    4. '
    5. '
    6. Range("A2,F2,G2").Select
    7. Range("G2").Activate
    8. Selection.Copy
    9. Windows("Batchverbrauchrev1_test06.09.2012.xls").Activate
    10. Range("D1").Select
    11. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    12. :=False, Transpose:=False
    13. Range("C4").Select
    14. Application.CutCopyMode = False
    15. Selection.Copy
    16. Windows("Produktionsauswertung_test06.09.2012.xlsx").Activate
    17. Range("N2").Select
    18. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    19. :=False, Transpose:=False


    ***

    End Sub

    ***

    Nexter Schritt wäre dann



    Visual Basic-Quellcode

    1. Range("A3,F1033,G3").Select
    2. Range("G3").Activate
    3. Selection.Copy
    4. Windows("Batchverbrauchrev1_test06.09.2012.xls").Activate
    5. Range("D1").Select
    6. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    7. :=False, Transpose:=False
    8. Range("C4").Select
    9. Application.CutCopyMode = False
    10. Selection.Copy
    11. Windows("Produktionsauswertung_test06.09.2012.xlsx").Activate
    12. Range("N3").Select
    13. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    14. :=False, Transpose:=False



    (der umfang beträgt ca. 2000 Zeilen )



    ich hoffe es kann geholfen werden

    MfG Sunny

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Sunny0312“ ()

    ok erste erfolge mit hilfe aber immer noch nicht ganz fertig :D


    Visual Basic-Quellcode

    1. Sub daten_kopieren()
    2. Dim Zieldatei As String
    3. Dim lzeile, zeile As Long
    4. 'Bildschirmaktualisierung ausschalten:
    5. Application.ScreenUpdating = False
    6. 'Name der anderen Datei festlegen
    7. Zieldatei = "Batchverbrauchrev1_test06.09.2012.xls"
    8. 'letzte Zeile in der aktiven Tabelle ermitteln
    9. lzeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    10. For zeile = 3 To lzeile
    11. 'A wird kopiert
    12. Workbooks(Zieldatei).Sheets("Synthese").Cells(1, 2) = ThisWorkbook.ActiveSheet.Cells(zeile, 1).Value
    13. 'F wird kopiert
    14. Workbooks(Zieldatei).Sheets("Synthese").Cells(2, 2) = ThisWorkbook.ActiveSheet.Cells(zeile, 6).Value
    15. 'G wird kopiert
    16. Workbooks(Zieldatei).Sheets("Synthese").Cells(3, 2) = ThisWorkbook.ActiveSheet.Cells(zeile, 7).Value
    17. 'Wert in N schreiben
    18. ThisWorkbook.ActiveSheet.Cells(zeile, 14) = Workbooks(Zieldatei).Sheets("Synthese").Cells(4, 2).Value
    19. Next zeile
    20. 'Bildschirmaktualisierung einschalten:
    21. Application.ScreenUpdating = True
    22. End Sub







    es läuft ohne fehlermeldung und es läuft auch aber die daten welche in spalte N übertragen werden sollen sind am ende nicht mehr da

    ??? gibt es eine lösund das der wert der in n ankommt fest gemacht wird egal was in den anderen arbeitsblatt steht ???


    mfg
    was ?
    kleiner Tip noch...
    Definiere am Anfang deine Workbooks und Worksheets.. kannste später einfacher drauf zugreifen. Und ThisWorkbook und ActiveWorksheet geht schon mal in die Hose..

    Visual Basic-Quellcode

    1. Dim wbUrsprung as Workbook
    2. Set wbUrsprung = Workbooks("Holla")
    3. Dim wsUrsprung as worksheet
    4. Set wsUrsprung = wbUrsprung.Worksheets("Tabelle123")

    haste vielleicht die Zuordnung in der letzten Zeile vertauscht

    Visual Basic-Quellcode

    1. xlCellTypeLastCell


    ist das die Variable, die das gleiche bewirkt wie Str Ende?

    Dann könnte es auch vorkommen, dass die Tabelle zwar nur 3 Zeilen hat,
    aber die letzte benutzte Zeile viel weiter unten liegt, falls vorher
    dort etwas stand.