- Registriert
- 03.08.10
- Beiträge
- 59
Hallöchen,
ich brauche mal wieder eure Hilfe. Ich probiere schon den ganzen Tag herum und komme nicht weiter.
Ich versuche, in Excel ein Makro zu bauen, das mir eine Zeile von Tabelle A in Tabelle B kopiert, sobald in einer Spalte ein bestimmter Wert aus der dortigen Drop-Down-Liste gewählt wird.
Ich habe schon auf diversen Seiten gesucht und fand zwei Makros eigentlich ganz nett vom Aufbau.
1. Version =
Dim x, i, ergo
x = 5
For i = 1 To 65535
ergo = Range("P" & i)
If ergo="ja" Then
x = x + 1
Worksheets("Tabelle1").Rows(i).Copy _
Destination:=Worksheets("Tabelle2").Rows(x)
Worksheets("Tabelle1").Rows(i).Delete
End If
Next i
Hier ist das Problem, dass ich das Makro kein zweites Mal laufen lassen kann, weil sonst die Zeilen in Tabelle B überschrieben werden.
2. Version =
Private Sub Worksheet_Change(ByVal Target As Range)
Const cTZielTabelle = "Historie" ' Anpassen ...wohin kopieren ?
Const cTLoeschZ = "ja" ' Eintrag => Kopieren/Löschen
Const cLSpalteX = 16 ' Spaltennummer für LöschKennzeichen
Dim lRow As Long
If Target.Column <> cLSpalteX Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If UCase(Target.Value) = cTLoeschZ Then
Application.EnableEvents = False
With Worksheets(cTZielTabelle)
lRow = Application.Max(.Cells(.Rows.Count, cLSpalteX).End(xlUp).Row + 1, 15)
Rows(Target.Row).Copy Destination:=.Rows(lRow)
Rows(Target.Row).Delete Shift:=xlUp
End With
Application.EnableEvents = True
End If
End Sub
Hier ist das größte Problem, dass ich das Makro nicht mal gestartet bekomme. Klicke ich auf das Play-Symbol, öffnet sich ein Fenster, wo ich ein Makro wählen bzw benennen soll, aber die Liste ist leer. Erstelle ich ein neues Makro fügt es unter den o.g. Code ein neues Sub und EndSub ein.... Ich weiß auch nicht, ob das mit der 15 in der 6letzten Zeile so richtig ist; hatte es einfach aus nem Forum kopiert...
Hoffe, hier sind ein paar VBA-Experten, die mir weiterhelfen können!
Danke!
ich brauche mal wieder eure Hilfe. Ich probiere schon den ganzen Tag herum und komme nicht weiter.
Ich versuche, in Excel ein Makro zu bauen, das mir eine Zeile von Tabelle A in Tabelle B kopiert, sobald in einer Spalte ein bestimmter Wert aus der dortigen Drop-Down-Liste gewählt wird.
Ich habe schon auf diversen Seiten gesucht und fand zwei Makros eigentlich ganz nett vom Aufbau.
1. Version =
Dim x, i, ergo
x = 5
For i = 1 To 65535
ergo = Range("P" & i)
If ergo="ja" Then
x = x + 1
Worksheets("Tabelle1").Rows(i).Copy _
Destination:=Worksheets("Tabelle2").Rows(x)
Worksheets("Tabelle1").Rows(i).Delete
End If
Next i
Hier ist das Problem, dass ich das Makro kein zweites Mal laufen lassen kann, weil sonst die Zeilen in Tabelle B überschrieben werden.
2. Version =
Private Sub Worksheet_Change(ByVal Target As Range)
Const cTZielTabelle = "Historie" ' Anpassen ...wohin kopieren ?
Const cTLoeschZ = "ja" ' Eintrag => Kopieren/Löschen
Const cLSpalteX = 16 ' Spaltennummer für LöschKennzeichen
Dim lRow As Long
If Target.Column <> cLSpalteX Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If UCase(Target.Value) = cTLoeschZ Then
Application.EnableEvents = False
With Worksheets(cTZielTabelle)
lRow = Application.Max(.Cells(.Rows.Count, cLSpalteX).End(xlUp).Row + 1, 15)
Rows(Target.Row).Copy Destination:=.Rows(lRow)
Rows(Target.Row).Delete Shift:=xlUp
End With
Application.EnableEvents = True
End If
End Sub
Hier ist das größte Problem, dass ich das Makro nicht mal gestartet bekomme. Klicke ich auf das Play-Symbol, öffnet sich ein Fenster, wo ich ein Makro wählen bzw benennen soll, aber die Liste ist leer. Erstelle ich ein neues Makro fügt es unter den o.g. Code ein neues Sub und EndSub ein.... Ich weiß auch nicht, ob das mit der 15 in der 6letzten Zeile so richtig ist; hatte es einfach aus nem Forum kopiert...
Hoffe, hier sind ein paar VBA-Experten, die mir weiterhelfen können!
Danke!