4.7k Aufrufe
Gefragt in Tabellenkalkulation von acr Mitglied (215 Punkte)
Hallo liebe Exelgemeinde
Ich habe hier eine Tabelle, bei der Exel nicht das macht, was ich eigentlich erwarte.
Es werden Zellen von A8 bis J8 ausgefüllt. Hierbei bleiben zunächst die Zellen F8 und G8 leer.
Nachdem dann später in beiden Zellen ein Betrag eingegeben wurde, werden die Werte der Zellen A8 bis J8 auf ein zweites Tabellenblatt verschoben. In meiner Tabelle funktioniert das auch tadellos, wenn zuerst ein Wert in Zelle F8 eingegeben wird. Bei Eingabe in Zelle G8 überträgt Exel die Zeile sofort auf das andere Tabellenblatt.
Also, die Bedingung müßte zum Verschieben auf BEIDE Zellen ausgeweitet werden, wobei es unerheblich ist, welche Zelle zuerst einen Wert erhält.
Ich hoffe, ich habe mich klar genug ausgedrückt, um Hilfe zu bekommen.
Mit vielen Dank im Voraus

Gruß ACR

PS: Zur Veranschaulichung habe ich eine Tabelle, die bei Bedarf geschickt wird.

14 Antworten

0 Punkte
Beantwortet von acr Mitglied (215 Punkte)
Hallo Rainer

Diese Möglichkeit funktioniert genauso wie die in meinem VBA-Code, wobei bei meinem Beispiel der Eintrag in Zelle G8 die Verschiebung veranlaßt. Vermutlich hast Du meine Tabelle nicht heruntergeladen, denn dann erklärt sich das von allein. Die einzufügenden Daten kommen zu verschiedenen Zeiten bei mir an, um dann eingetragen zu werden. Erst wenn alle Daten ( 4 Zellinhalte) vorhanden sind, soll die Verschiebung automatisch in das 2. Tabellenblatt erfolgen. Hoffentlich habe ich mich jetzt ein wenig verständlicher ausgedrückt.


M.f.G.
ACR
0 Punkte
Beantwortet von acr Mitglied (215 Punkte)
Hallo Exelfreaks

Möchte mich für Eure Bemühungen bedanken. Habe in einem anderen Forum bereits eine Antwort auf mein Problem erhalten.

Frohes Pfingstfest wünscht ACR
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

dann wäre es auch gut dieses hier preiszugeben, da andere User mit vergleichbarem Problem diese Antwort nutzen könnten und die Helfer auch gern wissen wie die Lösung aussieht.

Gruß

Helmut
0 Punkte
Beantwortet von acr Mitglied (215 Punkte)
Aber klar doch. Hier der Code:

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet

With Target
'--- Prüfungen------
If .Column = 6 Or .Column = 7 Or .Column = 9 Or .Column = 10 Then
If .Row > 7 And .Row < 34 Then
If Application.CountA(Cells(.Row, 6), Cells(.Row, 7), Cells(.Row, 9), Cells(.Row, 10)) = 4 Then
On Error Resume Next
Set Sh = Sheets(Right(Cells(.Row, 12), 4))
Err.Clear
On Error GoTo 0
If Not Sh Is Nothing Then
'----Kopieren und löschen-----------------------
On Error GoTo ErrExit
Application.EnableEvents = False
Application.ScreenUpdating = False
Sh.Unprotect
Me.Unprotect
Sh.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Rows(.Row)
Rows(.Row).Delete
Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
MsgBox "kein passendes Arbeitsblatt gefunden"
End If
End If
End If
End If
End With

ErrExit:

Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub

Gruß ACR
...