Microsoft Excel

Herbers Excel/VBA-Archiv

Mein erstes Makro (copy+paste Schleife)

Betrifft: Mein erstes Makro (copy+paste Schleife) von: Marius
Geschrieben am: 05.09.2014 11:48:27

Hallo zusammen,

ich habe jetzt erstmals per Aufzeichnung ein Makro erstellt.
Dieses funktionert soweit ich es ihm gezeigt habe auch.
Allerdings wären ein paar Dinge noch schön, welche ich nicht mit der Aufzeichnung bewerkstelligen kann. Und zwar würde ich gerne eine Schleife einbauen, allerdings komm ich hier mit Hilfe von Youtube nicht weiter.

Und zwar möchte ich folgendes machen:

In "Tabelle4" soll es immer den nächsten Wert kopieren. Sowohl für A, als auch für B.
Und zwar solange bist A irgendwann leer ist.

Und in "Tabelle2" sollen die Werte logischerweise nicht immer überschrieben werden, sondern fortlaufend untereinander weg.

Kann mir dabei jm helfen?

Vielen Dank

Marius

--------------------------------

Sub MakroCopy()
'
' MakroCopy Makro
'

'
    Sheets("Tabelle4").Select
    Range("A2").Select
    Selection.Copy
    Sheets("Tabelle5").Select
    Range("B4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Tabelle4").Select
    Range("B2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Tabelle5").Select
    Range("B5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("E6:L6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Tabelle2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

------------------------

  

Betrifft: AW: Mein erstes Makro (copy+paste Schleife) von: Adis
Geschrieben am: 05.09.2014 12:48:08

Hallo

anbei eine verkürzte Version das Makrorecorder und ein Beispiel für For Next Schleifen
Die unteren Angaben können bei Text kopieren entfallen, Excel setzt sie auf Standard
'Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wenn ich das kopieren richtig verstanden habe werden die Spalten A+B in Tabelle5
in Spalte B untereinander kopiert. So jedenfalls ist die For Next Schleife aufgebaut.
Bei Range("xxxx 1000") muss die Spalte eingefügt werden in die kopiert werden soll.
Die Anweisung End(xlUp) sucht ab Zeile 200/1000 die letzte Zelle noch oben zum anfügen.

Bitte ausprobieren, würde mich freuen wenn es klappt.

Sub MakroCopy_Neu()
    Sheets("Tabelle4").Range("A2").Copy
    Sheets("Tabelle5").Range("B4").PasteSpecial Paste:=xlPasteValues
    
    Sheets("Tabelle4").Range("B2").Copy
    Sheets("Tabelle5").Range("B5").PasteSpecial Paste:=xlPasteValues
    
    Sheets("Tabelle5").Range("E6:L6").Copy
    Sheets("Tabelle2").Selection.PasteSpecial Paste:=xlPasteValues
End Sub
Sub MakroCopy_Schleife()
Dim Tab4 As Object, Tab5 As Object   'Tabellen als Objekt
Dim Tab2 As Object, Zell As Variant
Dim EdrA As String, EdrN As String, n
Set Tab2 = Sheets("Tabelle2")
Set Tab4 = Sheets("Tabelle4")
Set Tab5 = Sheets("Tabelle5")

   EdrA = Range("A200").End(xlUp).Address
'Schleişfe für jede Zelle
For Each Zell In Range("A2", EdrA)
    Tab4.Zell.Copy
    Tab5.Range("B4").Offset(n, 0).PasteSpecial Paste:=xlPasteValues
    
    Tab4.Zell.Offset(0, 1).Copy
    Tab5.Range("B5").Offset(n, 0).PasteSpecial Paste:=xlPasteValues
      n = n + 2
Next Zell
   
   EdrN = Range("xxxx 1000").End(xlUp).Offset(1, 0).Address
   Tab5.Range("E6:L6").Copy
   Tab2.Range(EdrN).PasteSpecial Paste:=xlPasteValues
End Sub
Gruss Adis


 

Beiträge aus den Excel-Beispielen zum Thema "Mein erstes Makro (copy+paste Schleife)"