Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Mehrere Zeilen verschieben VBA
03.05.2017 08:32:03
Trodler
Hallo Excelfreunde, ich benötige Eure Hilfe. Meine bescheidenen VBA- Kenntnisse lassen mich verzweifeln. Ich möchte mittels CommandButton die Projekte von Sheet "Projekte offen" nach Sheet "Projekte Auftrag" verschieben (ans Ende der Tabelle dort einfügen), wenn in Spalte M ein Ja steht. Wenn dort Nein steht, sollen sie nach Sheet "Projekte verloren" geschoben werden, dort dann auch wieder ans Ende. Mein Problem ist, dass jedes Projekt aus 5 Zeilen besteht, die in so einem Fall komplett verschoben werden müssen.
Wie würdet ihr das angehen?
Userbild
https://www.herber.de/bbs/user/113267.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Zeilen verschieben VBA
03.05.2017 09:19:12
Daniel
Hi
da du mit verbundenen Zellen arbeitest, kannst du von einer Zelle (die "ja" oder "nein" enthält) über die MergeArea auf die zum Zellverbund gehörenden Zellen schließen und über EntireRow dann die ganze Zeile bearbeiten.
Private Sub CommandButton1_Click()
Dim Zelle As Range
Dim shZiel As Worksheet
For Each Zelle In Sheets("Projekte offen").Columns(13).SpecialCells(xlCellTypeConstants, 2)
Select Case Zelle.Value
Case "ja", "nein"
If Zelle.Value = "ja" Then
Set shZiel = Sheets("Projekte Auftrag")
Else
Set shZiel = Sheets("Projekte verloren")
End If
With Zelle.MergeArea.EntireRow
.Copy
With shZiel.Cells(Rows.Count, 1).End(xlUp)
.Offset(.MergeArea.Rows.Count).PasteSpecial xlPasteAll
End With
.Delete
End With
Case Else
End Select
Next
End Sub
Gruß Daniel
Anzeige
AW: Mehrere Zeilen verschieben VBA
03.05.2017 16:35:03
Daniel
dann so.
ich habe als Entscheidungsspalte die Spalte 7 genommen, weil da schon "ja" oder "nein" drin steht und ich das in Spalte 13 nicht ändern kann.
musst halt ggf für deine Datei anpassen.
Private Sub CommandButton1_Click()
Dim Zelle As Range
Dim shZiel As Worksheet
For Each Zelle In Sheets("Projekte offen").Columns(7).SpecialCells(xlCellTypeConstants, 2)
Select Case Zelle.Value
Case "ja", "nein"
If Zelle.Value = "ja" Then
Set shZiel = Sheets("Projekte Auftrag")
Else
Set shZiel = Sheets("Projekte verloren")
End If
With Zelle.MergeArea.EntireRow
.Copy
With shZiel.Cells(Rows.Count, 1).End(xlUp).Resize(1, 1)
.Offset(1, 0).PasteSpecial xlPasteAll
End With
End With
Case Else
End Select
Next
With Sheets("Projekte offen").Columns(7)
.Replace "ja", 1, xlWhole
.Replace "nein", 1, xlWhole
If WorksheetFunction.Sum(.Cells) > 0 Then
.SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
End If
End With
End Sub

Gruß Daniel
Anzeige
AW: Mehrere Zeilen verschieben VBA
04.05.2017 06:38:23
Steffen
Danke Daniel, du bist mein Held! ;-)
Funktioniert genau so, wie ich es brauche.
AW: Mehrere Zeilen verschieben VBA
03.05.2017 14:43:33
Steffen
Hallo Daniel, ich habe es gerade mal laufen lassen, das ist schon fast perfekt. Allerdings lässt er mir bei den "verlorenen Projekten" und bei "Projekt Auftrag" jeweils 4 Zeilen (nach der letzten) frei und fügt dann ein. Idealerweise sollte das alles als Schleife laufen.
Kannst du bitte nochmal drüberschauen?

143 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige