HERBERS Excel-Forum - das Archiv
Erweiterung Copy&Paste....
Malte

...per Combobox und Range auf weitere Liste. Mit Index.
An dieser Stelle vielen Dank an fcs, Michael, und Matthias L für die wundervolle Unterstützung!
Alle Codes zusammen ergeben folgende Beispielmappe
https://www.herber.de/bbs/user/98402.xlsm
In dieser Mappe soll nun die Combobox, welche auf Tabelle1 aktiviert wird, auf der Tabelle, welche der Person zugeordnet ist, nicht nur dessen Daten von Tabelle1 auslesen, sondern auch vom der (später versteckten) Dokumentationstabelle.
Hier müsste also der Code alle Zeilen auslesen, die PersonX zugeordnet werden können, und diese unterhalb der bereits durch den Code Kopierten Range auf die bereits durch den Code erstellte Tabelle "PersonX" pasten.
Problem wird sein (wovor ihr mich alle gewarnt habt...), dass ich als Personenbezug eine Verbundszelle verwende, weswegen bei Änderungen in Tabelle1 auf der Dokumentationsseite nur diejenigen Zellen einen korrekten Personenbezug haben, in denen die Zahlen eingetragen werden, nicht jedoch die, in denen der Code das Änderungsdatum einträgt.
Die Zahlen werden immer in Zeilen mit gerader Kennung eingetragen, die Daten immer in Zeilen mit ungerader Kennung, vielleicht gibt es dafür ja einen Befehl wie
If "Änderungszelle" gerade, Then _
For Each rngZelle In Target
.Cells(lngLZ, 3) = Cells(rngZelle.Row, 2)
Else
.Cells(lngLZ, 3) = Cells(rngZelle.Row -1, 2)
oder so.
Ich hoffe, das reicht an Informationen, ansonsten füge ich gerne noch hinzu!
Wie immer herzlichen Dank für eure Hilfe im Voraus,
LG,
Malte

evtl gehts auch mit Verbundzellen
Matthias

Hallo
Naja, schon viel gehört über Verbundzellen, ok.
Aber man kann sie trotzdem benutzen.
Hier siehst Du das in der 2.Zeile jeder Verbundzelle immer der gleiche Name steht.
 BC
10Person1Person1
11Person1
12Person2Person2
13Person2
14Person3Person3
15Person3
16Person4Person4
17Person4
18Person5Person5
19Person5

Formeln der Tabelle
ZelleFormel
C10=B10
C11=B11
C12=B12
C13=B13
C14=B14
C15=B15
C16=B16
C17=B17
C18=B18
C19=B19


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Evtl. hift Dir das ja
https://www.herber.de/bbs/user/98403.xlsm
Gruß Matthias

AW: evtl gehts auch mit Verbundzellen
Malte

Im direkten Bezug würde mir das helfen, aber da die Combobox ja die zu kopierenden Zellen anhand des Namens aus Spalte X sucht, und alle leeren Zellen dieser Spalte ignoriert (also auch die "leeren" Bestandteile der Verbundzellen), muss ich ja einen relativen Rückbezug herstellen, so wie ich das verstehe?
Wenn also der Name in A1 steht, und die zugehörigen Änderungen aus B2 und B3 ausgelesen werden, muss ich ja in der Dokumentationsliste für jede ungerade Zelländerung (B3) einen Rückbezug auf A1 stellen können.
Weiß nicht ob das so verständlich ist?
LG
Malte

AW: evtl gehts auch mit Verbundzellen
Malte

Im direkten Bezug würde mir das helfen, aber da die Combobox ja die zu kopierenden Zellen anhand des Namens aus Spalte X sucht, und alle leeren Zellen dieser Spalte ignoriert (also auch die "leeren" Bestandteile der Verbundzellen), muss ich ja einen relativen Rückbezug herstellen, so wie ich das verstehe?
Wenn also der Name in A1 steht, und die zugehörigen Änderungen aus B2 und B3 ausgelesen werden, muss ich ja in der Dokumentationsliste für jede ungerade Zelländerung (B3) einen Rückbezug auf "Name" (A1) stellen können.
Weiß nicht ob das so verständlich ist?
LG
Malte
Sorry hatte einen Fehler im Text (fett markiert)

Ich weiß nicht, was du hast, fktioniert doch ...
Luc:-?

…wunderbar mit Mattis Vorschlag, Malte… ;-]
Hier deine entsprd ergänzte Datei zurück.
Vielleicht begreifst du das besser mit diesem Beitrag?!
Gruß, Luc :-?
Besser informiert mit …

AW: Ich weiß nicht, was du hast...
Malte

Du hast recht, es funktioniert!
Ich begreife nur nicht wie, und was jetzt im Code geändert wurde, aber vielleicht habe ich auch zu kompliziert gedacht.
Super, dann versuche ich mal das andere hinzubekommen.
Danke euch beiden!
LG
Malte

Im Code habe ich nichts geändert! Folge dem Link!
Luc:-?

;-)
Luc :-?

AW:Ähhh...ja.
Malte

Ok, bin dem Link gefolgt, und lande an einem sprichwörtlichen Bahnhof :)
LG
Malte

Tja, dir fehlen da ein paar Spezialkenntnisse, ...
Luc:-?

…wie den Allermeisten, Malte… ;-]
Mit dem dortigen Pgm kann man solche VerbundZellen-Strukturen, wie sie jetzt auch deine Mappe enthält, erzeugen. Voraussetzung ist nur eine Liste mit sich wiederholenden Werten in der relevanten Spalte. Die mit diesem Pgm erzeugbaren VerbundZellen bewahren alle ursprünglichen Werte, so dass es keine LeerZellen innerhalb der VerbundZelle gibt.
Ich habe jetzt allerdings nicht dieses Pgm benutzt, sondern die MusterZelle weiter unten auf deinem Blatt, die mit dem FormatPinsel zu kopieren und dann auf die relevanten EinzelZellen zu übertragen ist. Immer 2 wdn dadurch zu einer VerbundZelle, die alle Werte bewahrt. Das hatte dir schon Matti demonstriert.
Luc :-?

AW: nur wie?
Malte

Hm.
Kannst du mir denn verraten WIE du und Mattias das gemacht haben? Falls die "Musterzelle" aus irgendeinem Grund mal verschwindet?
lg
Malte

AW: vielleicht nochmal etwas verständlicher..
Daniel

es gibt zwei Wege, Zellen miteinander zu verbinden:
1. du markierst die zu verbindenden Zellen, klickst über das Kontextmenü: Zelleformatieren - Ausrichtung - Textsteuerung - Zellen verbinden.
(oder klickst auf Start - Ausrichtung - Verbinden und Zentrieren)
2. du verbindest über die oben beschriebene Methode zunächst andere, leere Zellen (dh nicht die Zellen, die du eigentlich verbinden willst).
Dann kopierst du diese Zellen und überträgst das Format auf die eigentlich zu verbindenden Zellen (Menü Start - Zwischenablage - Formatübertragen)
der unterschied zwischen beiden Methoden ist folgender:
bei 1) bleibt nur der Wert der oberen linken Zelle des Zellverbundes erhalten, alle anderen werden gelöscht.
bei 2) bleiben alle Zellwerte im Zellverbund erhalten, sie werden nur nicht angezeigt.
Vorteil der Methode 2) ist, dass hier die Tabelle weiterhin mit Formeln ausgewertet oder der Filter verwendet werden kann. Wird der Zellverbund aufgehoben, sind die Werte wieder da.
Gruß Daniel

AW: vielleicht nochmal etwas verständlicher..
Malte

Ahhhhhhh!
Super Erklärung, danke dir!
Und ich dachte dahinter stünde irgendeine Art Hexenwerk!
lg
Malte

AW: Erweiterung Copy&Paste....
Malte

Alright,
das Problem mit dem Zellbezug in Verbundszellen ist gelöst (vielen Dank an Luc:-? und Matthias L,
jetzt muss nur noch der Code im UserForm verändert werden, damit die Combobox auf der neu erstellten Tabelle auch die Dokumentationstabelle ausliest.
Super wäre, wenn sie dabei die Tabelle und die Person berücksichtigt, falls nochmal andere Tabellen dazukommen.
Vielen Dank im Voraus,
LG
Malte

AW: Erweiterung Copy&Paste....
Malte

Hallo ihr Lieben,
ich komme leider alleine nicht weiter, da ich von VBA nichts verstehe.
Ich müsste das Problem gelöst bekommen, wenn ich beim selektieren des zu kopierenden Zellbereichs zu PersonX auf "Projekt" gleichzeitig auf "Doku" Spalte B und C nach "Projekt" und "PersonX" indiziere, und dann die dazugehörigen Zeilen in die neu erstellte Tabelle "PersonX" eintrage.
Allerdings weiß ich nicht wie das geschrieben wird....
Vielen Dank für eure Hilfe bisher und in Zukunft,
LG
Malte

gerade? MOD!
Michael

Hallo Malte,
ich begreife, ehrlich gesagt, nicht ganz, wo das Problem liegt: wenn ich eine Person wähle, wird ein neues sheet erstellt, und alles scheint gut zu sein.
Aber weil Du meinen Codeschnipsel nochmal zitiert hast, hier ein weiterer Schnipsel zur Funktionsweise von MOD. Das steht für Modula, Du kannst auch in der Excel-Hilfe (bzw. dem Funktionsassi) unter =Rest nachsehen.
Bitte ausprobieren:
Sub test() s = "" For i = 1 To 10 s = s & " i: " & i & " ist " If i Mod 2 = 0 Then s = s & "gerade" Else s = s & "ungerade" s = s & vbCrLf Next MsgBox s End Sub ' wenn Du eine Variable zeile hast, sonst evtl. ' zeile = Zelle.row ' (wie auch immer die Zelle heißt) 'If zeile Mod 2 = 0 Then _ ' dann ist sie gerade 'For Each rngZelle In Target '.Cells(lngLZ, 3) = Cells(rngZelle.Row, 2) 'Else '.Cells(lngLZ, 3) = Cells(rngZelle.Row - 1, 2)
Hilft Dir das?
Schöne Grüße,
Michael

AW: gerade? MOD!
Malte

Ich weiß gerade nicht auf welchen von mir geposteten Codeschnipsel du dich beziehst.
Wenn es um die geraden bzw. ungeraden Zellen geht, dann ist das Problem bereits von Mattias gelöst worden indem er es irgendwie geschafft hat in Verbundzellen keine Leerzellen zu haben (siehe anderer Antwortstrang).
Mein jetziges Problem ist, dass ich gerne auf dem neu erstellten Sheet auch die Daten zur jeweiligen Person aus dem Dokumentationsprotokoll auslesen würde,
wenn ich was falsch verstanden habe, korrigiere mich bitte!
lg
Malte

AW: gerade? MOD!
Michael

auf den allerersten in diesem Thread...
Na gut. Da mag ich mich jetzt nicht reinvertiefen, sorry.
Schöne Grüße,
Michael

AW: Danke
Malte

Ah ok,
auf das selbe Problem hatte sich Matthias schon bezogen, ist gelöst, ich weiß nur nicht wie :D.
Kein Problem, danke dir vielmals für deine Hilfe so far,
ihr seid wirklich super!
LG
Malte

AW: Erweiterung Copy&Paste....
Malte

Also, das Problem mit den Verbundzellen ist gelöst (siehe andere Antwortstränge),
ich bräuchte weiterhin einen Schnipsel, mit dem die Combobox passend zum in Tabelle1 gesuchten Namen alle Zeilen aus der Dokumentationstabelle ausliest. Top wäre, wenn hierbei auch die Tabelle1 berücksichtigt werden könnte, falls es mal mehrere Tabellen dieser Art gibt.
LG
Malte

Erweiterung Copy&Paste....
Malte

...per Combobox und Range auf weitere Liste. Mit Index.
An dieser Stelle vielen Dank an fcs, Michael, und Matthias L für die wundervolle Unterstützung!
Alle Codes zusammen ergeben folgende Beispielmappe
https://www.herber.de/bbs/user/98402.xlsm
In dieser Mappe soll nun die Combobox, welche auf Tabelle1 aktiviert wird, auf der Tabelle, welche der Person zugeordnet ist, nicht nur dessen Daten von Tabelle1 auslesen, sondern auch vom der (später versteckten) Dokumentationstabelle.
Hier müsste also der Code alle Zeilen auslesen, die PersonX zugeordnet werden können, und diese unterhalb der bereits durch den Code Kopierten Range auf die bereits durch den Code erstellte Tabelle "PersonX" pasten.
Problem wird sein (wovor ihr mich alle gewarnt habt...), dass ich als Personenbezug eine Verbundszelle verwende, weswegen bei Änderungen in Tabelle1 auf der Dokumentationsseite nur diejenigen Zellen einen korrekten Personenbezug haben, in denen die Zahlen eingetragen werden, nicht jedoch die, in denen der Code das Änderungsdatum einträgt.
Die Zahlen werden immer in Zeilen mit gerader Kennung eingetragen, die Daten immer in Zeilen mit ungerader Kennung, vielleicht gibt es dafür ja einen Befehl wie
If "Änderungszelle" gerade, Then _
For Each rngZelle In Target
.Cells(lngLZ, 3) = Cells(rngZelle.Row, 2)
Else
.Cells(lngLZ, 3) = Cells(rngZelle.Row -1, 2)
oder so.
Ich hoffe, das reicht an Informationen, ansonsten füge ich gerne noch hinzu!
Wie immer herzlichen Dank für eure Hilfe im Voraus,
LG,
Malte

evtl gehts auch mit Verbundzellen
Matthias

Hallo
Naja, schon viel gehört über Verbundzellen, ok.
Aber man kann sie trotzdem benutzen.
Hier siehst Du das in der 2.Zeile jeder Verbundzelle immer der gleiche Name steht.
 BC
10Person1Person1
11Person1
12Person2Person2
13Person2
14Person3Person3
15Person3
16Person4Person4
17Person4
18Person5Person5
19Person5

Formeln der Tabelle
ZelleFormel
C10=B10
C11=B11
C12=B12
C13=B13
C14=B14
C15=B15
C16=B16
C17=B17
C18=B18
C19=B19


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Evtl. hift Dir das ja
https://www.herber.de/bbs/user/98403.xlsm
Gruß Matthias

AW: evtl gehts auch mit Verbundzellen
Malte

Im direkten Bezug würde mir das helfen, aber da die Combobox ja die zu kopierenden Zellen anhand des Namens aus Spalte X sucht, und alle leeren Zellen dieser Spalte ignoriert (also auch die "leeren" Bestandteile der Verbundzellen), muss ich ja einen relativen Rückbezug herstellen, so wie ich das verstehe?
Wenn also der Name in A1 steht, und die zugehörigen Änderungen aus B2 und B3 ausgelesen werden, muss ich ja in der Dokumentationsliste für jede ungerade Zelländerung (B3) einen Rückbezug auf A1 stellen können.
Weiß nicht ob das so verständlich ist?
LG
Malte

AW: evtl gehts auch mit Verbundzellen
Malte

Im direkten Bezug würde mir das helfen, aber da die Combobox ja die zu kopierenden Zellen anhand des Namens aus Spalte X sucht, und alle leeren Zellen dieser Spalte ignoriert (also auch die "leeren" Bestandteile der Verbundzellen), muss ich ja einen relativen Rückbezug herstellen, so wie ich das verstehe?
Wenn also der Name in A1 steht, und die zugehörigen Änderungen aus B2 und B3 ausgelesen werden, muss ich ja in der Dokumentationsliste für jede ungerade Zelländerung (B3) einen Rückbezug auf "Name" (A1) stellen können.
Weiß nicht ob das so verständlich ist?
LG
Malte
Sorry hatte einen Fehler im Text (fett markiert)

Ich weiß nicht, was du hast, fktioniert doch ...
Luc:-?

…wunderbar mit Mattis Vorschlag, Malte… ;-]
Hier deine entsprd ergänzte Datei zurück.
Vielleicht begreifst du das besser mit diesem Beitrag?!
Gruß, Luc :-?
Besser informiert mit …

AW: Ich weiß nicht, was du hast...
Malte

Du hast recht, es funktioniert!
Ich begreife nur nicht wie, und was jetzt im Code geändert wurde, aber vielleicht habe ich auch zu kompliziert gedacht.
Super, dann versuche ich mal das andere hinzubekommen.
Danke euch beiden!
LG
Malte

Im Code habe ich nichts geändert! Folge dem Link!
Luc:-?

;-)
Luc :-?

AW:Ähhh...ja.
Malte

Ok, bin dem Link gefolgt, und lande an einem sprichwörtlichen Bahnhof :)
LG
Malte

Tja, dir fehlen da ein paar Spezialkenntnisse, ...
Luc:-?

…wie den Allermeisten, Malte… ;-]
Mit dem dortigen Pgm kann man solche VerbundZellen-Strukturen, wie sie jetzt auch deine Mappe enthält, erzeugen. Voraussetzung ist nur eine Liste mit sich wiederholenden Werten in der relevanten Spalte. Die mit diesem Pgm erzeugbaren VerbundZellen bewahren alle ursprünglichen Werte, so dass es keine LeerZellen innerhalb der VerbundZelle gibt.
Ich habe jetzt allerdings nicht dieses Pgm benutzt, sondern die MusterZelle weiter unten auf deinem Blatt, die mit dem FormatPinsel zu kopieren und dann auf die relevanten EinzelZellen zu übertragen ist. Immer 2 wdn dadurch zu einer VerbundZelle, die alle Werte bewahrt. Das hatte dir schon Matti demonstriert.
Luc :-?

AW: nur wie?
Malte

Hm.
Kannst du mir denn verraten WIE du und Mattias das gemacht haben? Falls die "Musterzelle" aus irgendeinem Grund mal verschwindet?
lg
Malte

AW: vielleicht nochmal etwas verständlicher..
Daniel

es gibt zwei Wege, Zellen miteinander zu verbinden:
1. du markierst die zu verbindenden Zellen, klickst über das Kontextmenü: Zelleformatieren - Ausrichtung - Textsteuerung - Zellen verbinden.
(oder klickst auf Start - Ausrichtung - Verbinden und Zentrieren)
2. du verbindest über die oben beschriebene Methode zunächst andere, leere Zellen (dh nicht die Zellen, die du eigentlich verbinden willst).
Dann kopierst du diese Zellen und überträgst das Format auf die eigentlich zu verbindenden Zellen (Menü Start - Zwischenablage - Formatübertragen)
der unterschied zwischen beiden Methoden ist folgender:
bei 1) bleibt nur der Wert der oberen linken Zelle des Zellverbundes erhalten, alle anderen werden gelöscht.
bei 2) bleiben alle Zellwerte im Zellverbund erhalten, sie werden nur nicht angezeigt.
Vorteil der Methode 2) ist, dass hier die Tabelle weiterhin mit Formeln ausgewertet oder der Filter verwendet werden kann. Wird der Zellverbund aufgehoben, sind die Werte wieder da.
Gruß Daniel

AW: vielleicht nochmal etwas verständlicher..
Malte

Ahhhhhhh!
Super Erklärung, danke dir!
Und ich dachte dahinter stünde irgendeine Art Hexenwerk!
lg
Malte

AW: Erweiterung Copy&Paste....
Malte

Alright,
das Problem mit dem Zellbezug in Verbundszellen ist gelöst (vielen Dank an Luc:-? und Matthias L,
jetzt muss nur noch der Code im UserForm verändert werden, damit die Combobox auf der neu erstellten Tabelle auch die Dokumentationstabelle ausliest.
Super wäre, wenn sie dabei die Tabelle und die Person berücksichtigt, falls nochmal andere Tabellen dazukommen.
Vielen Dank im Voraus,
LG
Malte

AW: Erweiterung Copy&Paste....
Malte

Hallo ihr Lieben,
ich komme leider alleine nicht weiter, da ich von VBA nichts verstehe.
Ich müsste das Problem gelöst bekommen, wenn ich beim selektieren des zu kopierenden Zellbereichs zu PersonX auf "Projekt" gleichzeitig auf "Doku" Spalte B und C nach "Projekt" und "PersonX" indiziere, und dann die dazugehörigen Zeilen in die neu erstellte Tabelle "PersonX" eintrage.
Allerdings weiß ich nicht wie das geschrieben wird....
Vielen Dank für eure Hilfe bisher und in Zukunft,
LG
Malte

gerade? MOD!
Michael

Hallo Malte,
ich begreife, ehrlich gesagt, nicht ganz, wo das Problem liegt: wenn ich eine Person wähle, wird ein neues sheet erstellt, und alles scheint gut zu sein.
Aber weil Du meinen Codeschnipsel nochmal zitiert hast, hier ein weiterer Schnipsel zur Funktionsweise von MOD. Das steht für Modula, Du kannst auch in der Excel-Hilfe (bzw. dem Funktionsassi) unter =Rest nachsehen.
Bitte ausprobieren:
Sub test() s = "" For i = 1 To 10 s = s & " i: " & i & " ist " If i Mod 2 = 0 Then s = s & "gerade" Else s = s & "ungerade" s = s & vbCrLf Next MsgBox s End Sub ' wenn Du eine Variable zeile hast, sonst evtl. ' zeile = Zelle.row ' (wie auch immer die Zelle heißt) 'If zeile Mod 2 = 0 Then _ ' dann ist sie gerade 'For Each rngZelle In Target '.Cells(lngLZ, 3) = Cells(rngZelle.Row, 2) 'Else '.Cells(lngLZ, 3) = Cells(rngZelle.Row - 1, 2)
Hilft Dir das?
Schöne Grüße,
Michael

AW: gerade? MOD!
Malte

Ich weiß gerade nicht auf welchen von mir geposteten Codeschnipsel du dich beziehst.
Wenn es um die geraden bzw. ungeraden Zellen geht, dann ist das Problem bereits von Mattias gelöst worden indem er es irgendwie geschafft hat in Verbundzellen keine Leerzellen zu haben (siehe anderer Antwortstrang).
Mein jetziges Problem ist, dass ich gerne auf dem neu erstellten Sheet auch die Daten zur jeweiligen Person aus dem Dokumentationsprotokoll auslesen würde,
wenn ich was falsch verstanden habe, korrigiere mich bitte!
lg
Malte

AW: gerade? MOD!
Michael

auf den allerersten in diesem Thread...
Na gut. Da mag ich mich jetzt nicht reinvertiefen, sorry.
Schöne Grüße,
Michael

AW: Danke
Malte

Ah ok,
auf das selbe Problem hatte sich Matthias schon bezogen, ist gelöst, ich weiß nur nicht wie :D.
Kein Problem, danke dir vielmals für deine Hilfe so far,
ihr seid wirklich super!
LG
Malte

AW: Erweiterung Copy&Paste....
Malte

Also, das Problem mit den Verbundzellen ist gelöst (siehe andere Antwortstränge),
ich bräuchte weiterhin einen Schnipsel, mit dem die Combobox passend zum in Tabelle1 gesuchten Namen alle Zeilen aus der Dokumentationstabelle ausliest. Top wäre, wenn hierbei auch die Tabelle1 berücksichtigt werden könnte, falls es mal mehrere Tabellen dieser Art gibt.
LG
Malte

Dialog-Beispiele
Bewerten Sie hier bitte das Excel-Portal