Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formel entfernen aber Werte behalten wenn Zelle verändert
#1
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


Angehängte Dateien
.xlsm   Kopie_Forum.xlsm (Größe: 62,23 KB / Downloads: 5)
Antworten Top
#2
Hat dazu wirklich niemand eine brauchbare Idee???
Ich verzweifel an dem Thema langsam aber sicher....

:22:
Grüße
 Daniel
Antworten Top
#3
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

Antworten Top
#4
(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

Antworten Top
#5
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
Antworten Top
#6
(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
Antworten Top
#7
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
Antworten Top
#8
Hallo Daniel,

wie sieht dein Code aktuell aus?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#9
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.
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste