Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

per Doppelklick Daten in separate Tabelle

per Doppelklick Daten in separate Tabelle
13.09.2007 09:57:00
Dieter
Hallo,
ich verwalte meine Vorfahren in Excel und möchte per Doppelklick auf eine Zeile (einen Vorfahren) die Inhalte mehrerer Zeilen in einem separaten Tabellenblatt beliebig positionieren. Das knifflige dabei ist, dass ich die angeklickte Zeile und die Zeilen, die in der angeklickten Zeile in den Spalten F, G, H und I vermerkt sind, haben möchte.
In meiner Beispieldatei möchte ich also bei Doppelklick auf die Nr "7" die Zeilen mit der Nr 7 und 14 und 15 und 3 und 2 (die im Beispiel rot markierten) im Zugriff haben.
Hinweis : Mit Nr ist nicht die Excel-Zeilennummer gemeint, sondern der Wert in Spalte A. Die Excel-Zeilennummer muss also nicht mit der benötigten Nummer übereinstimmen !
https://www.herber.de/bbs/user/45987.xls
Rudi hat mir gestern bereits mitteilen können, wie ich eine einzelne Zeile in eine separate Tabelle bekomme. Dies habe ich bereits in mein Beispiel-Excel-File eingebaut. Vielleicht kann man da aufbauen.
Würde mich sehr freuen, wenn Ihr mir helfen könntet.
Vielen Dank und Grüsse
Dieter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Doppelklick Daten in separate Tabelle
13.09.2007 13:57:24
fcs
Hallo Dieter,
hier ein Beispiel, wobei zusätzlich die Spalte in der der Doppelklick gemacht wird als Auswahlkriterium für das auszuführende Makro eingebaut ist.
Gruß
Franz

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column  1 Then
'Bei Doppelklick in andere Spalte
Dim vntHeader, vntTmp
vntHeader = Range("A1:H1")
vntTmp = Range(Cells(Target.Row, 1), Cells(Target.Row, 8))
Cancel = True
With Sheets("Einzelsatz")
.Range("a1:a8") = WorksheetFunction.Transpose(vntHeader)
.Range("a1:a8").Font.Bold = True
.Range("b1:b8") = WorksheetFunction.Transpose(vntTmp)
.Range("b1:b8").HorizontalAlignment = xlLeft
.Activate
End With
Else
'Bei Doppelklick in Spalte A
Dim rngA As Range, rngGbisJ
Set rngA = Me.Cells(Target.Row, 1)
Set rngFbisI= Me.Range(Me.Cells(Target.Row, 6), Me.Cells(Target.Row, 9))
Cancel = True
With Sheets("Tabelle4")
.Range("a1") = rngA.Value
.Range("a1").Font.Bold = True
.Range("b1") = rngFbisI(1, 1)
.Range("b3") = rngFbisI(1, 2)
.Range("b4") = rngFbisI(1, 3)
.Range("b4") = rngFbisI(1, 4)
.Activate
End With
End If
End Sub
oder auch einfacher
With Sheets("Tabelle4")
.Range("a1") = Me.Cells(Target.row,1).Value
.Range("a1").Font.Bold = True
.Range("b1") = Me.Cells(Target.row,6).Value
.Range("b3") = Me.Cells(Target.row,7).Value
.Range("b4") = Me.Cells(Target.row,8).Value
.Range("b4") = Me.Cells(Target.row,9).Value
.Activate
End With


Anzeige
AW: per Doppelklick Daten in separate Tabelle
13.09.2007 14:24:00
Dieter
Hallo Franz,
vielen Dank für die Antwort, aber ich glaube mein Problem ist nicht ganz rübergekommen. Ich möchte nach Doppelklick auf z.B. die "7" in dem separaten Tabellenblatt alle Inhalte der Nr. 7, 14, 15, 3 und 2 ausgegeben haben, also die kompletten 7 Zeilen !
Vielleicht siehst noch eine Möglichkeit, würde mich freuen.
Viele Grüsse
Dieter

AW: per Doppelklick Daten in separate Tabelle
13.09.2007 15:26:39
fcs
Hallo Dieter,
Bilder sagen halt doch nicht immer mehr als Worte und irgendwie sind in dem Kontext die Begriffe Zeile / Spalte vom Verständnis durcheinandergekommen.
Hier eine angepasste Variante für den Abschnitt, der den Doppelklick in Spalte A behandelt.
Gruß
Franz

Else
'Bei Doppelklick in Spalte A
Dim rngA As Range, rngFbisI As Range
'Bereich in Spalte A Zeile 1 bis Target-Zeile zuweisen
Set rngA = Me.Range(Me.Cells(1, 1), Target)
'Bereich in Spalte F, Zeile 1 bis SPalte I, Target-Zeile zuweisen
Set rngFbisI = Me.Range(Me.Cells(1, 6), Me.Cells(Target.Row, 9))
Cancel = True
With Sheets("Tabelle4")
.UsedRange.Clear
rngA.Copy Destination:=.Range("a1")
rngFbisI.Copy Destination:=.Range("b1")
.Range("a1:e1").Font.Bold = True
.Activate
End With
End If


Anzeige
AW: per Doppelklick Daten in separate Tabelle
13.09.2007 21:33:00
Dieter
Hallo Franz,
hat leider auch nicht geklappt. Ist schon schwierig zu erklären, was genau gemeint ist. Ich habe es jetzt (vermutlich etwas umständlich) hinbekommen. Allerdings habe ich jetzt noch ein Programmproblem.
https://www.herber.de/bbs/user/46015.xls
Wenn ich in meiner beigefügten Beispieldatei auf die Nr. 5 (Zeile6) doppelklicke, kommen genau die richtigen Datensätze in die separate Tabelle.
Wenn ich jedoch auf die Nr.4 (Zeile 5) doppelklicke kommt die Fehlermeldung "Laufzeitfehler 13 - Typen unverträglich", da in Zelle A5 kein Wert steht.
Habe es dann mit dem mittlerweile wieder als Text versehenen Befehl "If Cells(Target.Row, 14) 0 Then" probiert, funktioniert aber auch nicht.
Kannst Du bitte nochmal einen Blick auf das beigefügte Beispiel werfen ?
Vielen Dank und Grüsse
Dieter

Anzeige
AW: per Doppelklick Daten in separate Tabelle
14.09.2007 16:03:17
fcs
Hallo Dieter,
ich hab den Code jetzt komplett umgestrickt. Die Hilfsberechnungen in den Spalten M bis Q in Tabelle1 sind nicht mehr erforderlich. Diese Werte berechnet das Makro jetzt selbst. Ich hab dafür die Function "Zeile" eingefügt, die mit der Methode "Find" die Zeilennummern zu den jeweiligen Nr. ermittelt.
Für die Ausgabe im "Stammblatt" habe ich eine kleine Subroutine geschrieben. Das ist pflegeleichter, als 6 mal den Übertragungscode in der Hauptroutine zu schreiben.
Gruß
Franz

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Ausgabe der Daten zur aktuellen Person in der angeklickten Zeile im Blatt "Stammblatt
Cancel = True
'aktuelle Person
Call Ausgabe(wksQuelle:=Me, wksZiel:=Worksheets("Stammblatt"), _
SpalteZiel:=2, ZeileQuelle:=Target.Row)
'Partner
Call Ausgabe(wksQuelle:=Me, wksZiel:=Worksheets("Stammblatt"), _
SpalteZiel:=3, ZeileQuelle:=Zeile(Cells(Target.Row, 6).Value))
'Vater
Call Ausgabe(wksQuelle:=Me, wksZiel:=Worksheets("Stammblatt"), _
SpalteZiel:=4, ZeileQuelle:=Zeile(Cells(Target.Row, 7).Value))
'Mutter
Call Ausgabe(wksQuelle:=Me, wksZiel:=Worksheets("Stammblatt"), _
SpalteZiel:=5, ZeileQuelle:=Zeile(Cells(Target.Row, 8).Value))
'Kind
Call Ausgabe(wksQuelle:=Me, wksZiel:=Worksheets("Stammblatt"), _
SpalteZiel:=6, ZeileQuelle:=Zeile(Cells(Target.Row, 9).Value))
'partner von
Call Ausgabe(wksQuelle:=Me, wksZiel:=Worksheets("Stammblatt"), _
SpalteZiel:=7, ZeileQuelle:=Zeile(Cells(Target.Row, 10).Value))
Sheets("Stammblatt").Activate
End Sub
Private Function Zeile(Nr As Variant) As Long
'Ermittelt Zeile zu Nummer der gesuchten Person
Dim Zelle As Range
Set Zelle = Me.Columns(1).Find(What:=Nr, LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then Zeile = 0 Else Zeile = Zelle.Row
Set Zelle = Nothing
End Function
Sub Ausgabe(wksQuelle As Worksheet, wksZiel As Worksheet, SpalteZiel%, ByVal ZeileQuelle%)
'Trägt Daten der jeweiligen Person in wksZiel ein
With wksZiel
If ZeileQuelle > 0 Then
.Range(.Cells(2, SpalteZiel), .Cells(9, SpalteZiel)) = _
WorksheetFunction.Transpose(wksQuelle.Range(wksQuelle.Cells(ZeileQuelle, 1), _
wksQuelle.Cells(ZeileQuelle, 8)))
Else
'Inhalte im Bereich löschen, wenn keine Nr. zur Informationen vorhanden
.Range(.Cells(2, SpalteZiel), .Cells(9, SpalteZiel)).ClearContents
End If
End With
Set BlattQuelle = Nothing
Set BlattZiel = Nothing
End Sub


Anzeige
AW: per Doppelklick Daten in separate Tabelle
14.09.2007 20:54:05
Dieter
Hallo Franz,
Perfekt !!!! Genau so habe ich es mir vorgestellt. Herzlichen Dank !
Zwei Fragen hätte ich noch :
- Wo kann ich im Code ändern, dass die Ausgabe nicht in der 2. Zeile erfolgen soll, sondern erst z.B. in der 40. Zeile ? Ich möchte oberhalb noch andere Daten manuell eingeben.
- Ist es auch möglich, die Farbe der ursprünglichen Zelle zu übernehmen ? (z.B. bei Nr. 7 sind einige Felder rot)
Nochmal vielen Dank und Grüsse
Dieter

AW: per Doppelklick Daten in separate Tabelle
14.09.2007 22:45:50
fcs
Hallo Dieter,
ich hab die Prozedur "Ausgabe" angepasst, so dass auch bestimmte Formatierungen (z.Zt. die Farbe von Zellhintergrund und Schrift) aus der Quelle in die Tabelle "Stammdaten übertragen werden.
Du muss den Wert der Variablen "lngZeile" von 2 auf den gewünschten Wert ändern, um die Ausgabe in einer anderen Zeile zu starten. Damit die Formatierungen im Ausgabebereich stimmen einfach den gesamten Bereich A1:G9 kopieren und an der gewünschten Position einfügen..
Gruß
Franz

Sub Ausgabe(wksQuelle As Worksheet, wksZiel As Worksheet, SpalteZiel%, ByVal ZeileQuelle%)
'Trägt Daten der jeweiligen Person in wksZiel ein
Dim Zelle As Range, iI%
'Startzeile in Zieltabelle
Const lngZeile As Long = 2
'StartSpalte in Quelle
Const iSpalte As Integer = 1
'Anzahl Spalten aus Quelle, die eingefügt werden sollen
Const iSpalten As Integer = 8
With wksZiel
If ZeileQuelle > 0 Then
'Werte übertragen
.Range(.Cells(lngZeile, SpalteZiel), .Cells(lngZeile + iSpalten - 1, SpalteZiel)) = _
WorksheetFunction.Transpose(wksQuelle.Range(wksQuelle.Cells(ZeileQuelle, iSpalte), _
wksQuelle.Cells(ZeileQuelle, iSpalte + iSpalten - 1)))
'Einzelne Zell-Formate übertragen
For iI = 1 To iSpalten
With .Cells(lngZeile, SpalteZiel).Offset(iI - 1, 0)
'Zellhintergrundfarbe
.Interior.ColorIndex = wksQuelle.Cells(ZeileQuelle, _
iSpalte).Offset(0, iI - 1).Interior.ColorIndex
'Zellschriftfarbe
.Font.ColorIndex = wksQuelle.Cells(ZeileQuelle, _
iSpalte).Offset(0, iI - 1).Font.ColorIndex
End With
Next
Else
'Aktionen wenn keine Nr. zur Informationen vorhanden
With .Range(.Cells(lngZeile, SpalteZiel), _
.Cells(lngZeile + iSpalten - 1, SpalteZiel))
'Inhalte im Bereich löschen,
.ClearContents
'Zellhintergrundfarbe auf ohne zurücksetzen
.Interior.ColorIndex = xlColorIndexNone
'Schriftfarbe in Zelle auf automatisch zurücksetzen
.Font.ColorIndex = xlAutomatic
End With
End If
End With
Set wksQuelle = Nothing
Set wksZiel = Nothing
Set Zelle = Nothing
End Sub


Anzeige
AW: per Doppelklick Daten in separate Tabelle
15.09.2007 22:12:00
Dieter
Hallo Franz,
auch das hat funktioniert ! Ist wirklich Klasse, wie Excel-Profis hier im Forum Excel-Laien helfen.
Vielen herzlichen Dank !
Dieter

AW: per Doppelklick Daten in separate Tabelle
20.09.2007 21:33:00
Dieter
Hallo Franz,
es klappt soweit alles, bis auf die Kommentare, die nicht übertragen werden. Könntest Du das noch einbauen ? Würde mich sehr freuen.
Vielen Dank und Grüße
Dieter

AW: per Doppelklick Daten in separate Tabelle
20.09.2007 21:37:34
Dieter
...Frage noch offen...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige