Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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
Inhaltsverzeichnis

wenn Zelle nicht leer Zeile kopieren in Tabelle

wenn Zelle nicht leer Zeile kopieren in Tabelle
03.03.2016 16:34:32
Frank
Hallo!
Ich brauche noch mal Hilfe!
Ich brauche einen VBA Code.
Wenn in Tabelle3 Zellen in Spalte Q, R und S ausgefüllt sind, dann gesammte Zeile in Tabelle7 kopieren und in Tabelle1 entsprechende gesammte Zeile löschen.
Dabei sollten dann die darunter stehenden Zeilen auch eine Position nach oben rutschen um keine leere Zeile zu hinterlassen.
Bisher sieht mein Code so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
Application.DisplayAlerts = False
If Target.Column  17 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If UCase(Target.Value) >= 1 Then
With Worksheets("Order-History")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(Target.Row).Copy .Rows(iRow)
With Worksheets("Comparison")
Rows(Target.Row).Delete .Rows(iRow) + 4
End With
End With
End If
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
Ich habe es aber leider nur geschafft die Zeile aus der Tabelle3 in die Tabelle7 zu kopieren.
Wäre super wenn mir jemand beim Rest helfen könnte.
Danke!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
03.03.2016 16:42:53
Michael
Hallo,
ungeprüft meine ich, dass es nicht möglich ist, zwei 'with' so zu vershachteln.
Mfg

AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
03.03.2016 16:45:02
Frank
Hallo, Michael Weber!
Ja, das habe ich auch schon gemerkt! :-)

AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
03.03.2016 19:08:28
Frank
Bin etwas ungeduldig da es drängt. Hat vielleicht noch jemand eine Lösung für mich?
Ich sage schon mal. . . Vielen Dank!

AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
04.03.2016 13:17:10
Jürgen
Hallo Frank,
kurz zum Verständnis:
-Wo prüfst du hier ob in Q,R,S etwas steht?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
Application.DisplayAlerts = False
select case Target.Column
case 17,18,19
If IsEmpty(Target) Then Exit Sub
If not range(cells(target.row,17)) = "" and not range(cells(target.row,18)) = "" and  _
not _
range(cells(target.row,19)) = ""  Then
With Worksheets("Order-History")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(Target.Row).Copy
.Rows(iRow).insert shift:=xlDown
end with
With Worksheets("Comparison")
Rows(Target.Row).Delete Shift:=xlUp
End With
end if
end select
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub

Select case prüft, ob in QRS etwas eingetragen wurde.
If not range... prüft ob alle Zellen der spalten QRS gefüllt sind.
Dann wird kopiert und eingefügt.
Das Delet im aktiven Worksheet löscht nun die ganze Zeile.
Was dies aber noch mit Tabelle 1 zu Tun hat ist mir unklar.
Gruß Jürgen

Anzeige
AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
04.03.2016 14:06:43
Frank
Gebe zu habe mich etwas undeutlich ausgedrückt!
Mein Code hatte sich bisher nur auf die Prüfung der Spalte Q bezogen. Die Erweiterung auf R und S konnte ich nicht integrieren. :-)
Tabelle 1 ist das Comparison Tabellenblatt.
Ich Teste dein Code gleich mal.
Schon jetzt vielen Dank! Ich befürchte nur das ich dem Zusammenhang des kopierens und löschens noch Probleme bekommen werde.
Es dürfen nur die Werte in den Reihen kopiert werden und nicht die dahinterliegenden Formeln.
Genauso beim löschen dürfen nur die Werte in den Zellen gelöscht werden und nicht die eigentliche Zelle. Die Zellen mit den dahinterliegenden Formeln müssen weiterhin bestehen.
Ich hoffe man versteht mich! :-)
Vielen Dank an dich Jürgen!!

Anzeige
AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
04.03.2016 14:41:11
Frank
Habe den Code von Jürgen noch etwas verändert. Ist das Plausibel?
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:=""
Dim iRow As Integer
Application.DisplayAlerts = False
Select Case Target.Column
Case 17, 18, 19
If IsEmpty(Target) Then Exit Sub
If Not Range(Cells(Target.Row, 17)) = "" And Not Range(Cells(Target.Row, 18)) = "" And  _
Not Range(Cells(Target.Row, 19)) = "" Then
With Worksheets("Order-History")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(Target.Row).Copy
.Rows(iRow).Insert Shift:=xlDown
ActiveWorkbook.Sheets("Comparison").Select
ActiveSheet.Unprotect Password:=""
ActiveSheet.Rows(Target.Row + 4).Delete Shift:=xlUp
End With
End If
End Select
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
Ich habe noch die Password-Sache mit reingebracht und beim Tabellenblatt COMPARISON die plus 4 bei (Target.Row +4) gesetzt. Das ist nötig weil im Tabellenblatt COMPARISON die Zeilen um 4 nach unten verschoben sind.
Jetzt spuckt er mir eine Fehlermeldung aus.
Laufzeitfehler 1004
Die Methode 'Range' für das Objekt '_WorkSheet' ist fehlgeschlagen.
Beim Debuggen wird diese Zeile makiert:
If Not Range(Cells(Target.Row, 17)) = "" And Not Range(Cells(Target.Row, 18)) = "" And Not Range(Cells(Target.Row, 19)) = "" Then

Anzeige
AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
04.03.2016 15:00:38
Frank
So gibt es keine Fehlermeldung mehr!!!
Jetzt habe ich nur immer noch das Problem das er die Zellen mit hinterlegter Formel kopiert...
Er soll mir nur die Werte aus den Zellen kopieren!!!
Wie mache ich das?
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="leonardtony!1"
Dim iRow As Integer
Application.DisplayAlerts = False
Select Case Target.Column
Case 17, 18, 19
If IsEmpty(Target) Then Exit Sub
If UCase(Cells(Target.Row, 17)) >= 1 And UCase(Cells(Target.Row, 18)) >= 1 And UCase( _
Cells(Target.Row, 19)) >= 1 Then
With Worksheets("Order-History")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(Target.Row).Copy
.Rows(iRow).Insert Shift:=xlDown
ActiveWorkbook.Sheets("Comparison").Select
ActiveSheet.Unprotect Password:="leonardtony!1"
ActiveSheet.Rows(Target.Row + 4).Delete Shift:=xlUp
End With
End If
End Select
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub

Anzeige
AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
07.03.2016 15:29:35
Jürgen
Hallo Frank,
nach dem
.rows(iRow).insert shift:=xldown

einfach noch
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Gruß
Jürgen

AW: wenn Zelle nicht leer Zeile kopieren in Tabelle
07.03.2016 16:05:07
Frank
Vielen Dank! Funktioniert super!

388 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige