Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wertübergabe in anderes Tabellenblatt

Wertübergabe in anderes Tabellenblatt
09.05.2007 07:05:00
Josef
Hallo!
Mit folgendem Code wird bei einer Eingabe in der nächsten freien Zelle der Spalte 10 der Wert in die Tabelle1 in die nächste freie Zelle der spalte C kopiert.
Mein Problem ist jetzt, das in der Spalte 10 der Wert nicht eingegeben wird, sondern über eine Formel eingetragen wird. Daher wird auch nicht der Wert in die Tabelle1 eingetragen. Wie müßte man bitte den Code ändern, damit der Wert doch in der Tabelle1 eingetragen wird?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim efz&, c As Range
If Target.Column = 10 And Target.Row > 1 Then
With Worksheets("tabelle1")
Set c = .Columns(100).Find(Target.Row, LookAt:=xlWhole)
If Not c Is Nothing Then
.Cells(c.Row, 3).Value = Target
Else
efz = .Cells(Rows.Count, 3).End(xlUp).Row + 1
.Cells(efz, 3).Value = Target
.Cells(efz, 100).Value = Target.Row
End If
End With
End If
End Sub


Danke
Josef

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change-Ereignis bei Formel-Wertänderung
09.05.2007 08:33:00
Erich
Hallo Josef,
da gibt es mehrere Möglichkeiten. Welche man wählen würde, hängt davon ab,
aus welchen Quellzellen sich ein Wert in Spalte 10 errechnet, also zunächst von der Formel in Spalte 10.
Das Change-Ereignis müsste bei Änderung mindestens einer der Quellzellen ausgelöst werden.
Dabei ist nebenbei auch möglich, dass sich der Wert in Spalte 10 bei Quell-Änderung nicht ändert:
Bsp.: In Spalte 10 steht die Formel "=RUNDEN(A1; 1)", man ändert A1 von 1,1 zu 1,2.
Eine andere Möglichkeit:
Man merkt sich die Werte der Spalte 10 in einem Array
(zuerst im Workbook_Open oder Worksheet_Activate) und stellt (bei bestimmten Ereignissen)
Änderungen mittels Vergleich der neuen mit den gemerkten Werten fest.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Change-Ereignis bei Formel-Wertänderung
09.05.2007 08:51:00
Josef
Hallo Erich!
Danke für Deine Antwort.
Also die Werte werden im Tabellenblatt "Leistungen" in der Spalte A der Reihe nach eingegeben.
Der Wert wird dann im Tabellenblatt "Ausprägungen" in der Spalte 10 (J) über die Formel
"=Leistungen!A2" eingetragen.
Die Formel in der Spalte 10 im Tabellenblatt "Lotus Notes" lautet
=WENN(Ausprägungen!J2="";"";LINKS(Ausprägungen!J2;6)&REST(LINKS(Ausprägungen!J2;6);7))
Im Tabellenblatt "Lotus Notes" ist dieser Code hinterlegt:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim efz&, c As Range
If Target.Column = 10 And Target.Row > 1 Then
With Worksheets("tabelle1")
Set c = .Columns(100).Find(Target.Row, LookAt:=xlWhole)
If Not c Is Nothing Then
.Cells(c.Row, 3).Value = Target
Else
efz = .Cells(Rows.Count, 3).End(xlUp).Row + 1
.Cells(efz, 3).Value = Target
.Cells(efz, 100).Value = Target.Row
End If
End With
End If
End Sub


Gebe ich jetzt den Wert 1551790 ein so wird die letzte Stelle des Wertes auf Grund der Formel im Tabellenblatt im Tabellenblatt "Leistungen" geändert und eingetragen. Danach sollte dieser Wert in der Tabelle1 eingetragen werden. Und das funktioniert leider nicht.
Josef

Anzeige
AW: Change-Ereignis bei Formel-Wertänderung
09.05.2007 09:55:45
Erich
Hallo Josef,
ich habs mal versucht nachzubauen. Den Sinn der Zeilennummern in Spalte 100 verstehe ich nicht.
In "Lotus Notes" stehen zusammengehörige Einträge (die blauen) nicht in einer Zeile.
Hätte die grün unterlegte Formel nicht das bessere Ergebnis?
Noch eine Bemerkung:
Wenn Leistungen!A10 leer ist, ist der Wert in Ausprägungen!J10 eine Null,
in 'Lotus Notes'!J10 wird daraus "00". Willst du das so?
Vermutlich fehlen mir da noch einige Infos...
Probier bitte das mal aus:
https://www.herber.de/bbs/user/42364.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Change-Ereignis bei Formel-Wertänderung
09.05.2007 10:23:29
Josef
Hallo Erich!
Hier ist eine Musterdatei:
https://www.herber.de/bbs/user/42365.xls
Eingabe der Nummer immer im Tabellenblatt"Leistungen" in der Spalte A. und zwar immer siebenstellig mit einer 0 am Ende.
Im Tabellenblatt Lotus Notes wird die Zahl in der spalte J umgewnadelt und zwar am Schluß mit der jeweiligen Prüfzimmer aus den ersten 6 Stellen der Zahl.
diese Nummer möchte ich dann in das Tabellenblatt "Tabelle1 kopieren und das funktioniert nicht.
Zum Wert 100 hier der Link dazu:
https://www.herber.de/forum/messages/868281.html
Danke Josef

Anzeige
AW: Change-Ereignis bei Formel-Wertänderung
09.05.2007 12:55:34
Erich
Hallo Josef,
unter der Voraussetzung, dass in Tabelle1 keine POSNR (invl. Prüfziffer) doppelt vorkommen kann,
kannst du auf die Zeillennr. irgendwo in Spalte 100 verzichten und nach der POSNR suchen.
Die anderen Kopien kommen dann auch in Zeile efz der Tabelle1.
Probier mal

Private Sub Worksheet_Change(ByVal Target As Range)
Dim efz As Long, c As Range, strS As String
If Target.Column = 1 And Target.Row > 1 Then
strS = Left(Target, 6) & (CLng(Left(Target, 6)) Mod 7)
With Worksheets("Tabelle1")
Set c = .Columns(3).Find(strS, LookAt:=xlWhole)
If c Is Nothing Then
efz = .Cells(Rows.Count, 3).End(xlUp).Row + 1
Else
efz = c.Row
End If
.Cells(efz, 3).Value = strS
End With
End If
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Change-Ereignis bei Formel-Wertänderung
09.05.2007 13:12:47
Josef
Hallo Erich!
Danke für Deine Mühe. Könnte so passen. Praktisch umgehe ich den Eintrag im Blatt Lotus Notes und die richtige umgewandelte Zahl wird gleich in die Tabelle1 eingetragen.
eine Frage hätte ich bitte noch:
Wenn jetzt irrtümlich eine Zahl doppelt vorkommen würde, was ja grundsätzlich nicht auszuschliessen wäre, kann man hier vielleicht den Fehler abfangen mit einer Meldung wie, Pos. bereits vorhanden?
Josef

AW: Change-Ereignis bei Formel-Wertänderung
09.05.2007 15:27:00
Erich
Hallo Josef,
wenn die POSNR in Tab1 bereits vorhanden ist - ist das nicht der Änderungsfall?
Du kannst das verdeutlichen mit einer MsgBox in einer zusätzlichen Zeile:

Else
efz = c.Row
MsgBox strS & " ist schon vorhanden."
End If

Doppelt kann mit dem Makro keine POSNR mehr vorkommen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Change-Ereignis bei Formel-Wertänderung
10.05.2007 06:14:00
Josef
Hallo Erich!
Danke, jetzt passt alles.
Schönen Tag noch
Josef

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige