Servus zusammen,
ich hab das auch ein bisschen im Code der angehängten Datei reingeschrieben - also hier die Zusammenfassung:
Ich ziehe in einer Tabelle über Matrixformeln die WErte aus einem andere Tabellenblatt - funzt wunderbar.
(Das sind Infos zu einem Versuch die ich zu faul bin zum abtippen)
Wenn ich aber mit der Bearbeitung von einem Versuch beginne (also etwas in die Checkliste eintrage, in dem Fall in Spalte S-AG) sollen die Werte übernommen werden, die Formeln aber verwschwinden (WErte einfügen), ich will verhindern dass die eingetragenen Werte verschwinden wenn ich in der Datentabelle aus der ich die Info hatte den entsprechenden Versuch lösche (ja, das kann passieren....)
Also das vorgehen soll so sein:
Erkennen dass in Spalte S, T, U, V oder W ein Wert verändert wurde
--> Feststellen in welcher Zeile das passiert ist und den Wert an einen Parameter ('Zeile') übergeben
Dann Spalten C bis Q von der Zeile auswählen und die Werte die dort stehen direkt als Werte einfügen
Ich hoff mal es ist verständlich, ich danke schon jetzt für eure Hilfe
Daniel
Hat dazu wirklich niemand eine brauchbare Idee???
Ich verzweifel an dem Thema langsam aber sicher....
:22:
Grüße
Daniel
Hi Daniel,
(19.11.2015, 14:43)Daniel.Haering schrieb: [ -> ]Hat dazu wirklich niemand eine brauchbare Idee???
Ich verzweifel an dem Thema langsam aber sicher....
versuche es mal so (ungetestet):
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ThisWorkbook.Names.Add "AktiveZelle", Target(1)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
If Target.Column = "S" Or Target.Column = "T" Or Target.Column = "U" Or Target.Column = "V" Or Target.Column = "W" Then 'die Spalten mag ich überwachen
Zeile = Target.Row 'da versuche ich die Zeile zu bestimmen in der die Zelle (in Spalte S, T, U, V oder W) geändert wurde
'Sinn der Sache wäre die Formeln rauszubringen, sobald eine Wert in S-W geändert wurde.
'Dazu war der Plan, den Bereich C bis Q von der entsprechenden Zeile auszuwählen und direkt in dem Bereich die Werte einzufügen
Range("C" & Zeile & ":Q" & Zeile).Copy
Range("C" & Zeile).PasteSpecial Paste:=xlPasteValues
End If
End Sub
VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0
(19.11.2015, 15:38)Rabe schrieb: [ -> ]versuche es mal so (ungetestet):
oder so:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ThisWorkbook.Names.Add "AktiveZelle", Target(1)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
Dim rngUnion As Range
Set rngUnion = Application.Union(Range("S:S", "T:T", "U:U", "V:V", "W:W"))
If Not Intersect(rngUnion, Target) Is Nothing Then
Zeile = Target.Row 'da versuche ich die Zeile zu bestimmen in der die Zelle (in Spalte S, T, U, V oder W) geändert wurde
'Sinn der Sache wäre die Formeln rauszubringen, sobald eine Wert in S-W geändert wurde.
'Dazu war der Plan, den Bereich C bis Q von der entsprechenden Zeile auszuwählen und direkt in dem Bereich die Werte einzufügen
Range("C" & Zeile & ":Q" & Zeile).Copy
Range("C" & Zeile).PasteSpecial Paste:=xlPasteValues
End If
End Sub
VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0
Hat beides nicht funktioniert - so geht es:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ThisWorkbook.Names.Add "AktiveZelle", Target(1)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
If Target.Column = 19 Or Target.Column = 20 Or Target.Column = 21 Or Target.Column = 22 Or Target.Column = 21 Then 'die Spalten mag ich überwachen
Zeile = Target.Row 'da versuche ich die Zeile zu bestimmen in der die Zelle (in Spalte S, T, U, V oder W) geändert wurde
'Sinn der Sache wäre die Formeln rauszubringen, sobald eine Wert in S-W geändert wurde.
'Dazu war der Plan, den Bereich C bis Q von der entsprechenden Zeile auszuwählen und direkt in dem Bereich die Werte einzufügen
Range("C" & Zeile & ":Q" & Zeile).Select
Selection.Copy
Range("C" & Zeile).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
End Sub
Vielen Dank für die Hilfe!
Grüße
Daniel
(19.11.2015, 20:16)Daniel.Haering schrieb: [ -> ]Hat beides nicht funktioniert - so geht es:
so müßte es auch gehen:
Code:
'Sinn der Sache wäre die Formeln rauszubringen, sobald eine Wert in S-W geändert wurde.
'Dazu war der Plan, den Bereich C bis Q von der entsprechenden Zeile auszuwählen und direkt in dem Bereich die Werte einzufügen
Range("C" & Zeile & ":Q" & Zeile).Copy
Range("C" & Zeile).PasteSpecial Paste:=xlPasteValues
End If
End Sub
Servus,
ich hab jetzt damit noch eine kleines Problem
Wenn ich den Wert verändert habe und das kopieren gelaufen ist springt der Cursor immer in Spalte "C"...
Ich würde aber gerne in der Zelle bleiben die ich gerade verändert habe
Ich glaube dass es so gehen müsste:
Feststellen welche Zelle ich verändert habe
kopieren
die gleiche Zelle auswählen
ich bekomme das aber nicht hin - kann mir da jmd. helfen?
Danke
Daniel
Hallo Daniel,
wie sieht dein Code aktuell aus?
Hallo Daniel,
im Grunde reicht dann als Letzte Zeile:
Target.Select
Falls Du Deinen zuletzt eingestellten Code nutzt und auch das SelectionChange Ereignis so verwendest, wie Du zeigst, dann solltest Du auf Stefan Rat eingehen und am besten den gesamten genutzten Code zeigen.