![]() |
Betrifft: Verknüpfung zweier Reiter
von: Alexa
Geschrieben am: 07.08.2014 09:01:43
Hallo zusammen,
ich muss zwei Reiter miteinander verknüpfen, und zwar: Der 1.Reiter ist eine Liste, die ein Mitarbeiter mit Daten füllt, auf dem 2. Reiter ist ein Formular mit bestimmten Daten (Zellen) des 1. Reiters. Jetzt sollen diese beiden Reiter miteinander verknüpft werden, sodass im 2. Reiter immer der Wert erscheint, von der Zeile die gerade angeklickt ist auf dem 1. Reiter. Also kann ich ja nicht einfach mit "=" verknüfen, da sich die Zeile ja immer ändert.
Kann mir jemand weiterhelfen?
Danke und Grüße
Alexa
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Dieter Klemke
Geschrieben am: 07.08.2014 11:27:02
Hallo Alexa,
da wirst du wohl VBA brauchen.
Lade doch mal eine Beispielmappe hoch. Daten verändert und/oder anonymisiert.
Viele Grüße
Dieter
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: JoWE
Geschrieben am: 07.08.2014 11:37:43
Hallo Alexa,
lass die neuen Daten doch einfach immer in die gleiche Zeile schreiben.
So würde es klappen:
Es wird immer zunächst auf der 2. Zeile eine neue Zeile eingefügt. Dadurch wird die Zeile 2 leer, weil ja die zuvor aktive (und gefüllte) Zeile dann um eine Zeile nach unten gerutscht ist. Dann erst werden die neuen Daten in der leeren Zeile2 erfasst. In der Formulartabelle kannst Du dann die Bezüge absolut eintragen.
Gruß
Jochen
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Alexa
Geschrieben am: 07.08.2014 12:28:14
Ich habs momnetan so gelöst, dass ich eine Zeile in eine Hilfstabelle kopieren..jetzt muss ich den Code nur noch so umschreiben, dass statt : Rows("2:2").Select
die momentan angeklickte Zeile ausgewählt wird. WIe kann ich das machen?
Danke;-)
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Dieter Klemke
Geschrieben am: 07.08.2014 13:00:37
Hallo Alexa,
eine Beispieldatei wäre nicht schlecht gewesen.
Ich habe mal ein ganz einfaches Beispiel gebastelt, an dem du das Prinzip siehst.
Das VBA-Programm ist eine Worksheet_SelectionChange-Prozedur, die im Codemodul des 1. Tabellenblattes steht (Doppelklick im Projektexplorer auf "Tabelle1 (Reiter 1)":
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim ws2 As Worksheet Dim aktZeile As Long Set ws2 = ThisWorkbook.Worksheets("Reiter 2") If Target.Rows.Count > 1 Then Exit Sub aktZeile = Target.Row ws2.Range("B3") = aktZeile ws2.Range("B6") = Me.Cells(aktZeile, "A") ws2.Range("D6") = Me.Cells(aktZeile, "B") End SubDie Datei findest du hier:
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Alexa
Geschrieben am: 07.08.2014 13:06:35
Du hast genau das getroffen was ich brauche..vielen Dank schon mal für deine Mühe...ich werds jetzt übertragen und schau dann ob es funktioniert
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Alexa
Geschrieben am: 07.08.2014 13:56:35
Also es funktioniert. Vielen vielen Dank...aber leider hab ich jetzt immer noch ein Problem, und zwar hab ich einige Felder die ich ankreuzen kann durch einen Doppelklick. leider wird dieses Kreuz nicht übernommen..wie kann ich das lösen?
Die Kreuze habe ich so programmiert:
Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Dim RaBereich As Range Set RaBereich = Range("BB2:BK1000000") If Not Intersect(Target, RaBereich) Is Nothing Then If Target.Borders(xlDiagonalDown).LineStyle = 1 Then With Target .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone End With Else With Target .Borders(xlDiagonalDown).LineStyle = xlContinuous .Borders(xlDiagonalDown).Weight = xlThick .Borders(xlDiagonalUp).LineStyle = xlContinuous .Borders(xlDiagonalUp).Weight = xlThick End With End If Cancel = True End If Set RaBereich = Nothing End Sub
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Dieter Klemke
Geschrieben am: 07.08.2014 15:14:59
Hallo Alexa,
wohin sollen die Kreuze übertragen werden?
Falls sie genau in die entsprechenden Zellen übertragen werden sollen, dann könnte das so aussehen:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim RaBereich As Range Dim ws2 As Worksheet Set RaBereich = Range("BB2:BK1000000") If Not Intersect(Target, RaBereich) Is Nothing Then If Target.Borders(xlDiagonalDown).LineStyle = 1 Then With Target .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone End With Else With Target .Borders(xlDiagonalDown).LineStyle = xlContinuous .Borders(xlDiagonalDown).Weight = xlThick .Borders(xlDiagonalUp).LineStyle = xlContinuous .Borders(xlDiagonalUp).Weight = xlThick End With End If Cancel = True End If Set RaBereich = Nothing Set ws2 = ThisWorkbook.Worksheets("Reiter 2") Target.Copy ws2.Range(Target.Address).PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = xlCut End SubViele Grüße
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Alexa
Geschrieben am: 08.08.2014 08:58:54
Hey;-)
Das hat nun auch funktionier. Nur werden alle 10 Kreuze gleichzeitig übertragen. Und sobald ich eins weg mach im 1.Reiter ist keines mehr imm 2.Reiter. Und außerdem funktioniert das nur für die erste Zeile, und nicht für die aktuell angeklickte.
Danke schonmal
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Dieter Klemke
Geschrieben am: 08.08.2014 13:25:32
Hallo Alexa,
tatsächlich war in dem Programm noch ein Fehler. Die Formatübertragung per Doppelklick sollte nur in dem angegebenen Bereich "BB2:BK1000000" stattfinden.
Das Programm sieht dann so aus (den o.g. Bereich habe ich durch "F1:H6" ersetzt):
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim RaBereich As Range Dim ws2 As Worksheet ' Set RaBereich = Range("BB2:BK1000000") Set RaBereich = Range("F1:H6") If Not Intersect(Target, RaBereich) Is Nothing Then If Target.Borders(xlDiagonalDown).LineStyle = 1 Then With Target .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone End With Else With Target .Borders(xlDiagonalDown).LineStyle = xlContinuous .Borders(xlDiagonalDown).Weight = xlThick .Borders(xlDiagonalUp).LineStyle = xlContinuous .Borders(xlDiagonalUp).Weight = xlThick End With End If Cancel = True Set ws2 = ThisWorkbook.Worksheets("Reiter 2") Target.Copy ws2.Range(Target.Address).PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = xlCut End If Set RaBereich = Nothing End Sub
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Alexa
Geschrieben am: 08.08.2014 14:21:49
Hey;-)
Diese Sache habe ich jetzt auch Lösen können. Allerdings ist natürlich noch ein Problem aufgetreten:einen Moment, ich mache dir mal ein Beispiel.
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Alexa
Geschrieben am: 08.08.2014 14:40:32
https://www.herber.de/bbs/user/91975.xlsm
So, hier meine Beispieldatei
In Tabelle 1 in der 1.Zeile wird einfach bestimmt was eingegeben werden soll: unter a ganz normale Daten wie Datum, Name... unter b diese "Kreuze"
Wird dann eine bestimmte Zeile angeklickt, so werden die relevanten daten in die Tabelle 2 übertragen.
Hier stört mich:
1. dass der Rahmen bei den b -werten verschwindet, da ich in Tabelle 1 bei den b werten ja keinen habe
und
2. dass beim Aktualisieren (also beim Anklicken einer neuen Zeile der cursor in irgendeiner zelle stehen bleibt, und nicht in der Spalte A
Verstehst du was ich meine?
Danke und liebe Grüße
Alexa
![]() ![]() |
Betrifft: AW: Verknüpfung zweier Reiter
von: Daniel
Geschrieben am: 08.08.2014 14:42:22
Hi
ich würde das so lösen:
1. ins SelectionChange-Event des Reiters1 kommt folgender Code (Tabnamen ggf anpassen, statt Zelle A1 eine andere freie Zelle wählen, falls diese belegt ist)
Sheets("Reiter2").Cells(1, 1).Value = ActiveCell.Row2. im Formlular in Reiter2 liest du dann die Werte mit folgender Formel (Spalte dann jeweils anpassen):
=Index(Reiter2!A:A;$A$1;1)das Ankreuzproblem löst du, in dem du zum Anreuzen einfach ein "X" in die Zelle schreibst anstatt die Diagonalen Rahmenlinien zu setzen.
![]() |