PDA

Vollständige Version anzeigen : Wenn Zelle Rot - dann Datensatz kopieren


rooki_1
27.07.2012, 08:01
Hy@all

ich habe eine Tabelle mit 3 Blättern in der jeweils Teile von A7- A300 angelegt sind.
Ich möchte nun erreichen, wenn in Spalte K die Zelle Rot eingefärbt wird, der gesamte Datensatz in ein anderes Blatt "Bestellen" geschrieben wird.

Ich habe unten den Code mal angehängt. Die Teile (Datensätze) die also in "Bestelliste" geschrieben wurden, werden bestellt wenn einige Datensätze aufgelaufen sind.

In Spalte "K" wird in jedem Tabellenblatt der momentane Status angezeigt "grün" OK, "rot" Bestellen.

Das Problem ist momentan wenn man den Status von Rot auf Grün ändert, daß in der "Bestelliste" nicht genau der Datensatz verschwindet, sondern immer von Zeile 3 abwärts.

Weiß jemand Rat ??

Gruß
Rooki


Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
Dim i As Long
Dim zeile As Long
If ActiveSheet.Name <> "Bestelliste" Then
If Target.Column = 11 And Target.Row > 6 And Target.Row < 301 Then
Cancel = True
With Sheets("Bestelliste")
If Target.Interior.Color = vbRed Then
Target.Interior.Color = vbGreen
zeile = Application.Match(Cells(Target.Row, 1), .Range("A:A"), 0)
If Not IsError(zeile) Then .Rows(zeile).Delete
Else
Target.Interior.Color = vbRed
i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(i, 1).Resize(1, 10).Value = Cells(Target.Row, 1).Resize(1, 10).Value
End If
End With
End If
End If
End Sub

Hajo_Zi
27.07.2012, 08:07
ich hätte aus Deinem Beitrag angenommen das von einer Tabelle in die andere kopiert wird. Dein Code arbeitet aber nur in einer Tabelle, wenn ich das richtig sehe. Die auslösende Aktion iist auch nicht die Farbveränderung (die kein Aktion auslöst) sondern Doppelklick.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

rooki_1
27.07.2012, 08:16
Hallo Hajo,

ja es ist ein Doppelklick in Spalte "K" wenn bestellt werden soll, dann wird die Zelle Rot dass man den Status sieht.
Der entsprechende Datensatz wird auch in das Tabellenblatt "Bestelliste" geschrieben.
Nur möchte ich wenn ich in "K" selbigen wider auf grün Setze, genau dieser dann in "bestelliste" auch wieder verschwindet. Im Moment ist es so das immer der erste gelöscht wird.

(Es ist eine Tabelle mit 4 Blättern 1,2 und 3 sind die Teile (Datensätze) 4 ist die Bestelliste

Gruß
Rooki

Hajo_Zi
27.07.2012, 08:17
Ich baue keine Datei nach, die Zeit hat schon jemand investiert. Ein Link zur Datei wäre nicht schlecht.
Ich bin immer noch der Auffassung das passiert alles in einer Tabelle.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

hary
27.07.2012, 08:38
Hallo Rooki
Hab mal in etwa nachgebaut. Je nach Farbe wird auch die richtige geloescht. Kommt in Bestelliste die Nummer evtl.doppelt vor? Sonst liegt der "Wurm" wo anders.
gruss hary

rooki_1
27.07.2012, 09:07
Hy Hary,

die Nummern kommen nicht doppelt vor, aber wie siehts aus, wenn aus Blatt Zeile 8 kopiert wird und zB aus Blatt 2 auch Zeile 8. das sind ja eigentlich völlig verschiedene Datensätze.

Gruß
Rooki

hary
27.07.2012, 09:13
Hallo
Null Problemo. ;-)
siehe Anhang.
gruss hary

rooki_1
27.07.2012, 09:20
Hy Hary,

das Problem besteht auch in Deiner Tabelle.

Doppelklick in Tab 1 Teil 1 ---> rot ---> zur Bestelliste hinzugefügt
Doppelklick in Tab 2 Teil1 (bitte in Spalte B noch was eintragen, zum Unterscheiden) Doppelklick ----> rot ----> hinzugefügt.

Dann setze bitte das Teil 1 aus Blatt 2 wieder auf Grün, das heist es müsste aus der Liste verschwinden. Tut es aber nicht, das andere ist weg ;-(

Kannst ja mal rumprobieren, es wird immer das erste gelöscht.

Gruß
Rooki

hary
27.07.2012, 09:28
Hallo
Dann gibt es Nummer aus SpaltenA doch mehrfach. Der Unterschied ist also SpalteB. Richtig so?
gruss hary

rooki_1
27.07.2012, 09:30
Hy

ja in Spalte B wäre zB die Laufende Nr. die es nur 1. gibt

Gruß
Rooki

hary
27.07.2012, 11:08
Hallo
Lad mal eine Bsp.-Mappe hoch. Wie die Tabellen wirklich ausehen.
gruss hary

rooki_1
27.07.2012, 11:38
Hy Hary,

schau mal hier

Gruß Rooki

hary
27.07.2012, 12:38
Hallo
dann nimm doch einfach SpalteB.
zeile = Application.Match(Cells(Target.Row, 2), .Range("B:B"), 0)
gruss hary

rooki_1
27.07.2012, 12:49
Hy hary,

jetzt siehts gut aus. Ich hatte das auch schon versucht, hatte aber vergessen

"Target.Row, 1 auf 2 umzustellen.

zeile = Application.Match(Cells(Target.Row, 2), .Range("B:B"), 0)

Danke nochmal dafür.

Gruß
Rooki