Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
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
Inhaltsverzeichnis

Bei Änderung Inhalt übertragen

Bei Änderung Inhalt übertragen
20.02.2017 23:06:19
David
Hallo zusammen,
folgendes Problem an dem in schon eine ganze Weile sitze:
Ich habe eine Arbeitsmappe mit zwei Tabellenblättern VIEW und DATA beide beinhalten je zwei Spalten mit Einträgen, wobei die Erste Spalte ("A:A") jeweils den gleichen Satz an IDs beinhaltet, jedoch in unterschiedlicher Sortierung.
Nun soll auf dem Tabellenblatt VIEW eine Zelle in der Spalte "B" geändert werden und diese in dem Blatt DATA übertragen werden.
Kurzbeispiel:
- Änderung in VIEW.Range("B3")
- Ermittle zugehörige ID in VIEW.Range("A3") über die Zeilennummer der geänderten Zelle
- Suche in DATA.Range("A:A") nach der gleichen ID (z.B. Treffer bei "A27")
- Schreibe den Value von VIEW.Range("B3") in die gefundene Zeile bei der entsprechenden Spalte (z.B. "E27")
Hintergrund ist, dass ich das Blatt DATA aus einer Datenbank fülle, dort jedoch nur die unsortierten Daten stehen, diese arbeite ich im Blatt VIEW auf, und muss einige Daten zurück auf das Blatt DATA schreiben, um diese letztlich in die Datenbank zurückzubringen.
Ich hoffe ihr könnt mir bei diesem Problem helfen.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Änderung Inhalt übertragen
20.02.2017 23:33:34
Werner
Hallo David,
Können die IDs in den Spalten A der beiden Blätter mehrfach vorkommen?
Gruß Werner
AW: Bei Änderung Inhalt übertragen
21.02.2017 08:12:15
David
Nein, diese IDs sind absolut einzigartig. Eine Dopplung wäre eine Katastrophe für die Datenbank.
AW: Bei Änderung Inhalt übertragen
21.02.2017 09:05:40
hary
Moin
Code in den Code der Tabelle VIEW
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant
If Target.Count > 1 Then Exit Sub
If Target.Column = 2 Then '--Aenderung in SpalteB
a = Application.Match(Target.Offset(0, -1), Worksheets("DATA").Columns(1), 0)
If IsNumeric(a) Then
Worksheets("DATA").Cells(a, 5) = Target '-- die 5 = 5.Spalte = SpalteE
Else
MsgBox "Eintrag fehlt"
End If
End If
End Sub

gruss hary
Anzeige
AW: Bei Änderung Inhalt übertragen
21.02.2017 19:42:51
David
Vielen Dank hary,
der Code funktioniert erstmal einwandfrei.
Nun neigt der gemeine Nutzer dazu die Möglichkeit des Mehrfach Einfügens zu nutzen. Ein Entfernen der ersten If-Schleife scheint hier nicht zur gewünschten Lösung zu führen. wie müsste hier eine Anpassung aussehen?
AW: Bei Änderung Inhalt übertragen
22.02.2017 07:23:09
hary
Moin David
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant
Dim Zelle As Range
If Not Intersect(Target, Columns(2)) Is Nothing Then
For Each Zelle In Target
If Zelle.Column = 2 Then
a = Application.Match(Zelle.Offset(0, -1), Worksheets("DATA").Columns(1), 0)
If IsNumeric(a) Then
Worksheets("DATA").Cells(a, 5) = Zelle '-- die 5 = 5.Spalte = SpalteE
Else
MsgBox "Eintrag fehlt"
End If
End If
Next
End If
End Sub

gruss hary
Anzeige
AW: Bei Änderung Inhalt übertragen
21.02.2017 12:49:54
Werner
Hallo David,
hört sich für micht wie ein ganz normaler Sverweis an.
=WENNFEHLER(SVERWEIS(A1;View!A:B;2;FALSCH);"")
Formel in Spalte E, Blatt Data.
Gruß Werner
AW: Bei Änderung Inhalt übertragen
21.02.2017 14:53:02
David
Hallo Werner,
Ein SVERWEIS() funktioniert leider nicht da die Zellen bereits mit Daten belegt sind, die lediglich von dem Makro überschrieben werden sollen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige