VBA/Makro Excel 2010 Verschieben

Fr34k8885

Lt. Junior Grade
Registriert
Juli 2007
Beiträge
384
Guten Abend,

ich versuche denn ganzen Tag in Excel ein Makro zu schreiben aber ich weis nicht wie ich des angehen soll. Habe keine Programmier Kentnisse (außer CNC und SPS).

Folgedene Funktion soll erfüllt werden
In der Arbeitsmappe1 ist folgende Tabelle

221488


Über den Button soll der komplette inhalt der Zeile, in der unter gekauft ein "x" steht, in der Tabelle von Arbeitsmappe2 angehängt/verschoben werden.

Wie gehen ich da vor ? Womit fängt man an ?

Ich dachte daran so vorzugehen:
Wenn in Spalte gekauft="x" dann scheide zeile aus und füge in mappe2 an das ende der Tabelle an.
 
Ich seh das Bild leider nicht, aber theoretisch geht das so:

Code:
Dim wksTab1 As Worksheet
Dim wksTab2 As Worksheet
Dim iZeilenTab1 As Integer
Dim iZeilenTab2 As Integer

Set wksTab1 = Worksheets("Tabelle1")
Set wksTab2 = Worksheets("Tabelle2")

iZeilenTab1 = wksTab1.Range("A1").CurrentRegion.Rows.Count
iZeilenTab2 = wksTab2.Range("A1").CurrentRegion.Rows.Count

For i = 1 to iZeilenTab1
  If wksTab1.Range("Spaltenbuchstabe" & i + 1).Value = "x" Then
    wksTab1.Range("Spaltenbuchstabe" & i).EntireRow.Cut Destination:=wksTab2.Range("A" & iZeilenTab2 + 1)
  End If
Next i
 
danke für die schnelle Antwort,
habe es angepasst aber leider bekomme ich einen Fehler (Laufzeitfehlr 1004, Die Methode "Range" für das Objekt "_Worksheet" ist fehlgeschlagen.

Code:
Sub neu()
Dim wksTab1 As Worksheet
Dim wksTab2 As Worksheet
Dim iZeilenTab1 As Integer
Dim iZeilenTab2 As Integer

Set wksTab1 = Worksheets("Bücher die ich kaufen möchte")
Set wksTab2 = Worksheets("Bücher die ich besitze")

iZeilenTab1 = wksTab1.Range("Tabelle1[gekauft]").CurrentRegion.Rows.Count
iZeilenTab2 = wksTab2.Range("F4").CurrentRegion.Rows.Count

For i = 1 To iZeilenTab1
  If wksTab1.Range("Spaltenbuchstabe" & i + 1).Value = "x" Then
    wksTab1.Range("Spaltenbuchstabe" & i).EntireRow.Cut Destination:=wksTab2.Range("A" & iZeilenTab2 + 1)
  End If
Next i
End Sub
 
Bei Range muss eine Zellenangabe gemacht werden.
Code:
iZeilenTab1 = wksTab1.Range("[COLOR="Red"]Tabelle1[gekauft][/COLOR]").CurrentRegion.Rows.Count

CurrentRegion.Rows.Count ermittelt, wieviele Zeilen es in der Tabelle - in der sich diese Zelle befindet (= current region) - bis zur nächsten Leerzeile gibt.
 
Zuletzt bearbeitet:
Hi Zusammen,

dieser Beitrag ist zwar schon ein wenig älter aber ich hoffe ich könnt mir trotzdem helfen.
Ich habe mir mal ein Makro gebaut bin aber längst dein Spezi in Makros.

Habe nun folgendes Problem:

Durch Eingabe eines Datums soll die aktuelle Spalte in das nächste Arbeitsblatt kopiert werden.
Dies funktioniert auch Einwandfrei aber ich kann dies leider nur mit der letzten Spalte in meiner Tabelle tun. Ich weiß auch wo mein Fehler liegt aber bekomme es selbst nicht gelöst.
Um die aktuelle Spalte anzusprechen müsste ich ja nur sowas Aktiv.Cell nehmen aber das funktioniert alles nicht.

Ich hoffe ihr könnt mir da weiter helfen und mir meinen kleinen Fehler beheben!! :D Vielen Dank schon mal!!! ;)

Hier mal mein Makro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim lRow, zRow As Long

lRow = Sheets("Mängelliste").Range("A65536").End(xlUp).Row
zRow = Sheets("Abgeschlossen").Range("A65536").End(xlUp).Row + 1

Set Bereich = Range("L12:L" & lRow)

If Not Intersect(Target, Bereich) Is Nothing Then
If IsDate(Target.Value) = True And Target.Value <> "" Then

With Range("A" & Target.Row & ":L" & Target.Row)
.Copy

Sheets("Abgeschlossen").Paste Destination:=Sheets("Abgeschlossen").Range("B" & zRow)
If IsNumeric(Sheets("Abgeschlossen").Range("A" & zRow - 1)) = True Then
Sheets("Abgeschlossen").Range("A" & zRow) = Sheets("Abgeschlossen").Range("A" & zRow).Offset(-1, 0) + 1
Else
Sheets("Abgeschlossen").Range("A" & zRow) = 1
End If
Application.EnableEvents = False
.Delete shift:=xlShiftUp
Sheets("Mängelliste").Range("A" & lRow).Value = ""
MsgBox "Mangel in den Reiter Abgeschlossen verschoben"
End With
End If
End If

Application.EnableEvents = True
End Sub
Ergänzung ()

Kann mir denn keiner Helfen? Wäre sehr Wichtig!!
 
Zurück
Oben