Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1372to1376
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

Verknüpfung zweier Reiter

Verknüpfung zweier Reiter
07.08.2014 09:01:43
Alexa
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

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verknüpfung zweier Reiter
07.08.2014 11:27:02
Dieter
Hallo Alexa,
da wirst du wohl VBA brauchen.
Lade doch mal eine Beispielmappe hoch. Daten verändert und/oder anonymisiert.
Viele Grüße
Dieter

AW: Verknüpfung zweier Reiter
07.08.2014 11:37:43
JoWE
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

Anzeige
AW: Verknüpfung zweier Reiter
07.08.2014 12:28:14
Alexa
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;-)

AW: Verknüpfung zweier Reiter
07.08.2014 13:00:37
Dieter
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 Sub
Die Datei findest du hier:
https://www.herber.de/bbs/user/91951.xls
Viele Grüße
Dieter

Anzeige
AW: Verknüpfung zweier Reiter
07.08.2014 13:06:35
Alexa
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

AW: Verknüpfung zweier Reiter
07.08.2014 13:56:35
Alexa
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

Anzeige
AW: Verknüpfung zweier Reiter
07.08.2014 15:14:59
Dieter
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 Sub
Viele Grüße
Dieter

Anzeige
AW: Verknüpfung zweier Reiter
08.08.2014 08:58:54
Alexa
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

AW: Verknüpfung zweier Reiter
08.08.2014 13:25:32
Dieter
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

Deine Aussage mit den 10 Kreuzen verstehe ich allerdings nicht. Wie sieht denn dein Programm aus?
Ich lade dir mal meine Testmappe hoch:
https://www.herber.de/bbs/user/91971.xls
Viele Grüße
Dieter

Anzeige
AW: Verknüpfung zweier Reiter
08.08.2014 14:21:49
Alexa
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.

AW: Verknüpfung zweier Reiter
08.08.2014 14:40:32
Alexa
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

Anzeige
AW: Verknüpfung zweier Reiter
08.08.2014 14:42:22
Daniel
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.Row
2. 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.
Das X kannst du mit der Formel auslesen.
Wenn dir die Rahmenlinien optisch besser gefallen, dann kannst du diese ja immer noch über die Bedingte Formatierung erstellen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige