Collapse column

Autor Thema: VBA TIP -> nächste freie Zeile  (Gelesen 3545 mal)

Offline MDO75

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
VBA TIP -> nächste freie Zeile
« am: November 12, 2012, 08:57:58 Vormittag »
Hallo Leute,

versuche mich seit gestern mit VBA auseinander zu setzten. Habe hier einen Code der eigentlich funktioniert aber ein Fehler ist scheinbar noch drin. Zum Ablauf : Wenn ich im Arbeitsblatt1 (Projekte) in der Spalte E einen Dropdown mit Erledigt auswähle, soll
die Zeile in das Arbeitsblatt 2 (erledigte Projekte) verschoben werden. Dieses macht es auch, aber leider im in die gleiche Zeile. Hätte es aber lieber fortlaufend in die nächstfreie Zeile verschoben.

hier der Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Erledigte Zeile in Blatt 1
'ausschneiden und in Blatt 2 - in nächste freie Zeile einfügen
'
Dim Zeile As Long
Set Target = Intersect(Target, Range("E1:E2000"))
If Target Is Nothing Then Exit Sub
If Target = "Erledigt" Then
Zeile = Target.Row
Range(Cells(Zeile, 1), Cells(Zeile, 9)).Copy _
Destination:=Sheets("erledigte Projekte").Cells(Rows.Count, 1).End(xlUp).Offset(4, 0)
Target.EntireRow.Delete
End If
End Sub

Vieleicht habt ihr da einen Lösungsansatz für mich.. :D

Gruß
Markus




Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Beverly

  • Full Member
  • ***
  • Beiträge: 129
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2010
Antw: VBA TIP -> nächste freie Zeile
« Antwort #1 am: November 12, 2012, 10:09:03 Vormittag »
Hi Markus,

Private Sub Worksheet_Change(ByVal Target As Range)
'Erledigte Zeile in Blatt 1
'ausschneiden und in Blatt 2 - in nächste freie Zeile einfügen
'
   Dim Zeile As Long
   Set Target = Intersect(Target, Range("E1:E2000"))
   If Not Target Is Nothing Then
      If Target = "Erledigt" Then
         With Worksheets("erledigte Projekte")
            Zeile = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
            If Zeile < 5 Then Zeile = 5
            Range(Cells(Target.Row, 1), Cells(Target.Row, 9)).Copy .Cells(Zeile, 1)
            Target.EntireRow.Delete
         End With
      End If
   End If
End Sub

Bis später,
Karin

Offline MDO75

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: VBA TIP -> nächste freie Zeile
« Antwort #2 am: November 12, 2012, 16:07:36 Nachmittag »
Hallo nochmal,

Kommando zurück, leider klappt der Code nur in einem "jungfräulichen" Excelsheet, wenn ich den Code in mein vorhandenes Blatt einfüge,
verschiebt auch dieser Code die Zeile immer an die gleiche Stelle und springt nicht 1 Zeile weiter.
Hänge meine Datei mal an.. Irgendwo muss der Hund doch begraben sein...  :-\

Gruß
Markus
« Letzte Änderung: November 12, 2012, 16:10:57 Nachmittag von MDO75 »

Offline Beverly

  • Full Member
  • ***
  • Beiträge: 129
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2010
Antw: VBA TIP -> nächste freie Zeile
« Antwort #3 am: November 12, 2012, 17:23:40 Nachmittag »
Hi Markus,

das ist auch logisch, weil du ja keine Daten in Spalte A einfügst, in Spalte A aber die erste freie Zeile ermittelt wird. Ändere diese Zeile:

Zeile = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, .Rows.Count) + 1
Es muss dafür also Spalte B (2) und nicht A (1) benutzt werden.

Bis später,
Karin

Offline MDO75

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: VBA TIP -> nächste freie Zeile
« Antwort #4 am: November 13, 2012, 12:42:03 Nachmittag »
Hi Karin,

jetzt wo Du es schreibst....stimmt ist logisch :o :-[...

Vielen Dank für deine Mühe.

Gruß
Markus


Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.