Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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
VBA - kopieren & gemäß Zelle korrekt zuordnen
07.07.2018 21:10:26
Christian
Hallo zusammen!
ich würde gerne zwei Bereiche - A1:A10 & C1:C10 der Tabelle1 - in Tabelle2 als Werte kopieren und gemäß Inhalt Zelle A1 Tabelle1 korrekt zuordnen.
In der ersten Zeile der Tabelle2 stehen die 4 möglichen Inhalte von Zelle A1 Tabelle1. Diese sind beispielsweise die Buchstaben "A" bis "D". Jeder dieser 4 Buchstaben belegt 3 Spalten, für die zuzuordnenden Inhalte.
D.h. in Spalte A-C steht "A", in Spalte D-F "B", in Spalte G-I "C" und in Spalte J-L "D".
In jeweils der ersten Spalte der 4 Buchstaben soll dann der zu kopierende Inhalt aus dem Bereich A1:A10 Tabelle1 stehen und in der zweiten Spalte der Inhalt aus Bereich C1:C10 Tabelle1.
Zusätzlich soll bei der Kopie von Quelle (Tabelle1) zu Ziel (Tabelle2) keine bereits mit Werten gefüllten Zellen überschreiben werden, es sollen quasi nur Leerzellen angesprochen werden.
Ich finde einfach keine Lösung, wie ich diese Informationen Ihrer entsprechenden vorgesehenen Spalte zuordnen kann. Auch im Netz finde ich maximal Kombinationen wie "kopiere, wenn in Spalte X Inhalt Y steht", aber eben keine Zuordnung gemäß Inhalt einer bestimmten Zelle.
Ich wäre wirklich heilfroh und außerordentlich dankbar, wenn jemand irgendeinen Ansatz für mein Problem hat.
Ein schönes Wochenende noch!
Viele Grüße,
Christian

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
keine Lösung, wieder nur ein Hinweis
08.07.2018 00:22:09
Oberschlumpf
Hello again Christian,
jetzt ist es zwar nur ein Problem, aber was bedeutet " gemäß Inhalt Zelle A1 Tabelle1 korrekt zuordnen." ?
Ich will sagen: eine Bsp-Datei per Upload kann auch bei nur 1 Problem sehr hilfreich sein.
(erstell doch eine Bsp-Datei, die nur das Problem darstellt, welches du hier gelöst bekommst haben möchtest)
Versuch dich mal in meine Lage zu versetzen (ich bin nur ein Bsp aller möglicher Antworter).
Ich habe von deinen Dateien NULL AHNUNG.
Ich weiß auch GAR NIX über das, was du eigtl erreichen möchtest (erreichen musst).
Und dann lese ich "nur" einen Text, der etwas beschreibt, was passieren soll, aber noch nicht passiert.
Du, mit allen Dateien, findest keine Lösung.
Wir, ohne auch nur eine minimal-Bsp-Datei, sollen eine Lösung finden?
Sorry, wenn ich "genervt" rüberkomme. Ist nicht so gemeint. Ich bin nur ein Freund von Direktheit.
Mir und niemandem hilft es, lange um den heißen Brei zu reden. Daher bringe zumindest ich vieles sofort auf den Punkt.
Ciao
Thorsten
Anzeige
AW: keine Lösung, wieder nur ein Hinweis
08.07.2018 01:08:02
Christian
Auch Hallo nochmal Thorsten,
für mich kam das nicht genervt rüber, ich bin dir sehr dankbar, dass du mich darauf hinweist!
Freut mich, dass du so direkt bist und trotz der scheinbar schlechten Ausgangslage helfen möchtest.
Ich habe bei meinem Startpost einen doofen Fehler begangen, A1 als Bezug für die Zuordnung ist quatsch, wenn mein zu kopierender Bereich von A1 bis A10 geht...
In der Beispieldatei anbei ist jetzt hoffentlich alles klar, entschuldige bitte die Verwirrung.
https://www.herber.de/bbs/user/122539.xlsx
Dann mal Gute Nacht :-)
Viele Grüße,
Christian
Anzeige
AW: keine Lösung, wieder nur ein Hinweis
08.07.2018 02:16:07
Oberschlumpf
Hi Christian,
du schreibst, aus Tabelle1 sollen Werte kopiert + in Tabelle2 eingefügt werden.
Was genau meinst du mit "Werte"?
Sollen einfach nur alle Zellinhalte von A4:A13 aus Tabelle1 in Tabelle2 in die jeweils nächsten, leeren Zellen eingefügt werden?
Oder soll die Summe der Werte von A4:A13 aus Tabelle1 in Tabelle2 in die jeweils nächste, leere Zelle eingefügt werden?
(ich versuch mich schon mal an den Summen, weil das für mich irgdwie mehr Sinn ergibt)
Ciao
Thorsten
hier schon mal die Lösung für Summen(Werte)
08.07.2018 03:05:32
Oberschlumpf
Hi Christian,
hier, versuch mal
https://www.herber.de/bbs/user/122540.xlsm
Wenn ich dich richtig verstanden habe, dann...
1. Ich wähle in Tabelle1 in Zelle A1 (Dropdown) einen Buchstaben A,B,C oder D aus
2. Bei Auswahl A werden
...in Tabelle2 die nächsten, leeren Zellen in Spalte 1 + 2 ermittelt (für Bereich A + C aus Tabelle1)
...in Tabelle2 in Spalte 1 + 2 die jeweiligen SummenWerte von Bereich A + C aus Tabelle1 eingetragen
All das würde auch für die anderen Buchstaben in Zelle A1, Tabelle1 mit den entsprechend richtigen Spalten in Tabelle2 geschehen.
Ist das so richtig?
Ciao
Thorsten
Anzeige
AW: hier schon mal die Lösung für Summen(Werte)
08.07.2018 09:30:29
Christian
Morgen Thorsten,
erst einmal vielen, vielen Dank für deine Mühe und deine Hilfsbereitschaft!
Es wird mir Schritt für Schritt bewusst, wie seltsam meine Anforderung klingt, so aus dem Zusammenhang gerissen.
Mir geht es tatsächlich nicht um den Summenwert-Wert, sondern um den Wert jeder einzelnen Zeile, die nicht Leerzeile ist.
Mit Wert meine ich sozusagen keine Formatierung oder Formel - "PasteSpecial".
Der Hintergrund ist folgender, ich will per CommandButton mit GetObject (dynamischer Pfad mit Hilfe der Dropdowns) Daten aus anderen Arbeitsmappen auslesen.
D.h. in diesen grauen Feldern sind INDIREKT-Formel, die dank GetObject () dann auf externe Arbeitsmappen zugreifen können.
Diese Daten möchte ich dann mit dem Vorgang verarbeiten und dies "unendlich" wiederholbar machen.
Bzgl. deiner Auflistung zu dem jetzigen Vorgang:
Genau, bis auf die Summenwerte ist es korrekt!
Ich kann die Datei leider nicht testen, irgendwie wird das Makro nicht ausgeführt. Ich kann es unter meiner Version hier zu Hause auch nicht wirklich nachvollziehen - werde es Montag dann sofort probieren.
Darf ich dich zusätzlich noch um 2 Punkte bitten:
- Kannst du das Ganze statt in ein Modul in einen CommandButton in Tabelle1 integrieren?
- Kannst du ggf. noch hinzufügen, dass in diese dritte Spalte in Tabelle2 - die derzeit noch ungenutzt ist - das aktuelle Datum für jeden kopierten Wert eingetragen wird?
Eine Frage noch: In Bereich A stehen manchmal auch Zahlen mit Bindestrich (z.B. 285-1), das geht dann nicht oder? Das ist nur in Bereich A der Fall.
Anbei ein Bild wie ich mir das Endergebnis in der Beispieldatei dann vorstelle
Userbild
Nochmals Danke für deine Unterstützung, ich weiß das sehr zu schätzen!!!
Viele Grüße,
Christian
Anzeige
AW: hier schon mal die Lösung für Summen(Werte)
08.07.2018 10:07:01
Oberschlumpf
Hi Christian,
ok, ich formuliere es noch direkter:
Klar, ich darf dir + niemandem vorschreiben, was er zu tun/zu lassen hat.
Aber ich würde mich so freuen, wenn sich die Fragenden vor jeder Antwort! Gedanken machen würden, wie die Antwort von den Lesenden (Helfenden) verstanden wird!
Du formulierst so vieles so ungenau.
"Ich kann es unter meiner Version hier zu Hause auch nicht wirklich nachvollziehen"
Super Christian, echt super^^
Und genau welche Version nutzt du zu Hause?
Wüsste ich das, könnte ich dir vielleicht n Tipp nennen, was du zu Hause einstellen musst, damit meine Testdatei auch bei dir zu Hause funktioniert.
Ja, natürlich kann es auch sein, dass ich - nicht - helfen kann, wenn ich die Version wüsste.
Aber Stand jetzt: Ich kann nicht mal sagen, dass ich nicht helfen kann.
"Darf ich dich zusätzlich noch um 2 Punkte bitten:"
JEIN!
Eigtl wollt ich jetzt fragen, wieso packst du in die Bsp-Datei nicht gleich alles mit rein, was du jetzt im Nachhinein noch erfragst?
Aber zum Glück fiel mir ein, "dass ich ja selbst schuld bin", weil ich dir empfohlen hatte, Stück für Stück deine Probleme zu schildern - aber in unterschiedlichen Threads!
So wie jetzt kann es nämlich passieren, dass - nur ich - dir helfen werde, weil du ja vielleicht! - immer im selben Thread - noch ne Frage hinten dran hängst, sobald die zuvor gestellte Frage gelöst ist.
Aber ok, diese 2 Extra-Fragen (Button + Datum) versuche ich einzubauen.
Alles Weitere dann bitte in neuen Threads.
Ich versuch mich jetzt an deiner Bsp-Datei.
Aber das hier musste ich erst mal loswerden.
Und besonders zum ersten Teil dieser Antwort stehe ich.
Nenne die Dinge beim richtigen Namen, schreib so wenig wie möglich (nich viel drum rum), aber schreib so viel wie nötig (alle erforderlichen Infos)
Du weißt doch gar nicht, was wir alles wissen wollen/müssen?
Ok, Bsp:
Ich ruf bei dir an und bitte dich, mir einen Schrank zu bauen, sage Tschüss und lege wieder auf.
(ICH weiß ja, WIE der Schrank aussehen soll)
Du hast keine Chance, mir einen Schrank zu bauen!
- wie breit?
- wie hoch?
- wie tief?
- welche Farbe?
- welches Holz?
...DAS wären zumindest die MUSS-Infos, die ich dir NICHT geliefert habe...(wieso auch?! ICH weiß doch, wie der Schrank aussehen soll!)
So, sorry, musste ich mal loswerden.
Ciao erst mal
Thorsten
...melde mich bald wieder mit ner neuen Datei...
Anzeige
noch eine Frage
08.07.2018 10:50:49
Oberschlumpf
Hi Christian,
in Tabelle1, Bereich A gibt es 10 Einträge
in Tabelle1, Bereich C gibt es 6 Einträge
Wenn ich auf den Button klicke, werden in Tabelle2 für Bereich A 10 Zeilen + für Bereich C 6 Zeilen gefüllt.
Wenn ich noch mal auf den Button klicke, soll dann in Tabelle2 für Bereich C direkt mit der nächsten, leeren Zeile weitergemacht werden, oder gilt für Bereich C nächste leere Zeile = nächste leere Zeile wie für Bereich A?
Userbild
Ach ja, wie du siehst, hab ich in der 3. Spalte zum Datum die Uhrzeit hinzugefügt.
Hab mir überlegt, wenn du am selben Tag den Button mehrmals anklickst, ist der Zeitpunkt vielleicht nicht unwichtig.
Möchtest du diesen "Zeitstempel", oder reicht allein das Datum aus?
Ciao
Thorsten
Anzeige
AW: noch eine Frage
08.07.2018 11:23:59
Christian
Hi Throsten,
Danke für deinen Beitrag.
ich verstehe deine Perspektive und deine Haltung dazu.
Mir ist auch selbst aufgefallen, dass ich einige Sachen hätte besser ausführen oder überhaupt aufführen sollen.
Werde daraus lernen und sehe einen Teilgrund auch wirklich darin, dass mich dieser Vorgang etwas überfordert und ich oftmals auch nicht schlüssig darüber war, wie ich es am
besten hätte beschreiben sollen. Zum einen wollte ich nicht wieder total viel Text schreiben und zum anderen wollte ich auch wirklich nur auf dieses Teilproblematik eingehen.
Den Punkt mit der Version habe ich aber bewusst nicht konkretisiert, weil es mir ehrlich gesagt peinlich war, dass ich es nicht hinbekommen habe das WARUM noch mit anzugeben - WARUM es bei mir nicht läuft.
Letzlich wollte ich nicht deine Zeit auch noch damit beanspruchen, wenn du schon so geduldig bist, mir auch noch solche simplen Grundlagen zu erläutern.
Meine Version Zuhause ist 2007. Ich werde sofort morgen Früh im Büro das Ganze mit Office 365 testen, denn das ist auch die Version unter der es laufen soll.
Außerdem möchte ich noch explizit auf meine Bitte mit den 2 Zusatzbitten eingehen.
Dies resultiert daraus, dass ich etwas bedenken habe, dass ich später deinen Code einfach in ein CommandButton übernehmen kann, weil ich mit diesem "(ByVal auswahlA1 As String)" nichts anfangen kann.
Die Bitte mit dem Datum in Spalte 3 hat den Hintergrund, dass ich mich gefragt habe, wie ich diesen Punkt, den ich vorher auch absplitten wollte, weil ich dachte, dass es zu viel Anforderungen für ein Thread sind,
später einzeln erfragen soll. Einfach aus dem Grund, weil es dann ja eigentlich wieder genau diesem Hintergrundwissen bedarf.
Aber auch hier muss ich sagen, dass ich deinen Anmerkung verstehe und als berechtigt ersehe!
Kurzum, ich werde versuchen mich dahingehend zu verbessern und mir vorher nochmals wirklich ausführlich Gedanken machen. Ich glaube ich bin das zu schnell angegangen mit diesen Teilproblem ausgliedern. Ich hätte
vorher nochmals genau in mich gehen müssen, was jetzt hierbei wirklich für den Helfer wissenswert ist und was einfach nur BlaBla.
Danke dir, ich freuen mich sehr auf deine Rückmeldung dann!
Auch NOCHMALS Danke für deine Geduld, ich habe es dir nicht besonders einfach gemacht ...

Oh, jetzt habe ich deinen neuen Beitrag gerade gelesen - mit der Rückfrage.
Diese Problem ist mir auch bereits aufgefallen und ich habe versucht dir das mit meinem Kommentar im vorher geposteten Bild zu beantworten.
Dort habe ich in Bereich C noch 4 Zahlen ergänzt, damit es der tatsächlichen Situation entspricht.
Es sind also IMMER gleich viel Zahlen in BEREICH A und C. D.h. diese gestellte Frage kommt gar nicht auf.
Bzgl. Zeitstempel, der Gedanke war sehr gut. Ich muss sehen ob ich es mit Zeitstempel dann verarbeiten kann.
Ich will diese Daten dann per SUMMEWENNS einer Kalenderwoche zuordnen. Im Notfall denke ich würde ich es hinkriegen diesen wieder zu entfernen, aber wenn du möchtest, kannst
du als Anmerkung dann noch anführen, was ich genau aus dem Code löschen muss, wenn ich den Zeitstempel nicht brauchen würde.

Viele Grüße,
Christian
Anzeige
UPS, MEIN Fehler! und...
08.07.2018 12:00:33
Oberschlumpf
Hi Christian,
...erst mal nur wegen deiner Office-Version.
zu allerst aber zu deiner Antwort.
Alles wird gut! :-)
Du hast dich in vielen Punkten gerechtfertigt. Danke.
Aber wie gesagt: Ich darf dir nich vorshcreiben, was du zu tun hast, etc.
Und trotzdem musste ich halt auch mal meinen Standpunkt erklären.
Ham wa erledigt :-)
Mein Fehler:
Hab genau DAS falsch gemacht, was ich vorher bei dir kritisierte.
Du hattest ja in dem Bild schon die Antwort auf meine spätere Frage gegeben.
Ich hatte es einfach nicht ge- bzw überlesen...mist.
Na gut, nun weiß ich aber Bescheid: In Bereich A + C = immer gleich viele Einträge!
Deine Version:
Ich nutze Office 2013, du nutzt 2007.
Beide Versionen sind vom technischen Aufbau eigentlich gleich (nur die Optik hat sich von 2007 zu 2013 geändert)
Aber auch, wenn es in der Technik Unterschiede geben sollte, dürfte das keine Auswirkung auf meinen Code haben.
Denn ich verwende keine Befehle, die nur in Office 2013 funktionieren.
Meine Bsp-Datei müsste auch noch in Office 2003 funktionieren.
(im Vergleich 2003 zu 2007 oder später gibt es überall so was von Unterschieden)
Kann es vielleicht sein, dass du in Office 2007 die Ausführung von Makros generell "verboten" hast?
Versuch mal das herauszubekommen; und aktiviere dann entsprechend die Ausführung von Makros.
Nach Start meiner bisherigen Datei wählst du in Tabelle1, Zelle A1 (Dropdown) einen Eintrag aus.
Direkt durch die Wert-Änderung in A1 wird mein Code gestartet.
So, bis gleich, Datei mit Button + Datum(sstempel) ist fast fertig.
Ciao
Thorsten
Anzeige
hier nun die nächste Test-Datei
08.07.2018 12:35:40
Oberschlumpf
Hi Christian,
hier, versuch mal
https://www.herber.de/bbs/user/122548.xlsm nur mit Datum in der 3. Spalte
https://www.herber.de/bbs/user/122549.xlsm mit Datum + Uhrzeit in der 3. Spalte
Ich hab beide Versionen programmiert, weil das schneller ging, als alles zu erklären, was du tun müsstest, wenn du den Uhrzeit-Stempel doch nicht willst ;-)
In beiden Dateien gilt:
1. Wähle in Tabelle1, Zelle A1 (Dropdown) einen Eintrag aus; (lässt du A1 leer, erscheint eine Meldung)
2. Klick auf den Button "Bereich A + C kopieren + in Tab2 einfügen"
3. Die Bereiche A + C aus Tabelle1 werden kopiert, und abhängig vom Eintrag in A1 (Tabelle1) werden die kopierten Werte in Tabelle2 in den entsprechenden Spalten eingefügt.
Zusätzlich wird in jeder Zeile in Tabelle2 in der 3. Spalte das Datum oder Datum + Uhrzeit eingetragen.
Hilfts?
Ciao
Thorsten
Anzeige
AW: hier nun die nächste Test-Datei
08.07.2018 15:46:41
Christian
Hi Thorsten,
es funktioniert perfekt - beide Alternativen! Du hattest im Übrigen Recht, es lag einfach daran, dass Makros nicht erlaubt waren... - darauf bin ich in dem Moment nicht gekommen.
Morgen werde ich das nochmal im Büro auf meine tatsächliche Datei anwenden, aber ich denke das wird problemlos klappen.
Ich habe mich gefühlt bereits 100x bedankt bei dir, aber ich möchte es nochmals tun - VIELEN DANK!!!
Du hast mir wirklich sehr weitergeholfen, dieses Thema hat mich - wie man sieht - bis ins Wochenende verfolgt. Das war so der - für mich - unlösbarste Schritt meines Gesamt-Wunschablaufs.
Ohne deine Hilfe wäre mein Projekt jetzt vermutlich sehr gefährdet!
Ich wünsche dir noch ein schönes restliches Wochenende.
Viele Grüße,
Christian
Cool, freut mich...ham wa geschafft...Beide! :-)
08.07.2018 19:22:52
Oberschlumpf
Hi Christian,
viel Erfolg beim Anpassen in deiner Originaldatei!
Und wenn dann wieder Fragen offen sind, nur her damit ;-)
Entweder hier (wenn es Probleme direkt mit meinem Lösungsversuch gibt) oder eben in nem neuen Thread.
Ciao + auch für dich n schönes Rest-WE
Thorsten
AW: Cool, freut mich...ham wa geschafft...Beide! :-)
09.07.2018 09:32:59
Christian
Morgen Thorsten,
habe es jetzt soeben mit der Originaldatei probiert, klappt auch super.
Einen kleinen Schönheitsfehler hat das Ganze und ich weiß auch warum...
In der Originaldatei sind Formeln in den grauen Bereichen hinterlegt.
Der Code von dir ermittelt ja von Zeile X (4) bis Rows.Count dann die zu kopierenden Zellen.
Beim Copy+Paste-Vorgang werden dann hinsichtlich "Bereich A und Bereich C" die Zellen, welche keinen Inhalt haben (außer die hinterlegte Formel) als Leerzellen eingefügt.
Das Datum orientiert sich dann nur an "Rows.Count" und taucht dann praktisch auch neben die Leerzellen in den beiden Spalten auf.
Nachfolgend ein Bild, damit wir nicht aneinander vorbei reden :-) (links die Ausgangslage in Tabelle1, rechts nach der "Übertragung" - Tabelle2)
Userbild
Sollte das umständlich/schwer zu lösen sein, dann möchte ich es auch jetzt einfach dabei belassen und dich nicht weiter damit "nerven", denn ich möchte keinesfalls unzufrieden oder undankbar wirken.
Falls dir direkt der Lösungsansatz einfallen sollte, wäre es natürlich noch exzellent wenn das Datum nicht bei den Leerzellen auftauchen würde.
Viele Grüße,
Christian
super erklärt! :-)
09.07.2018 09:48:51
Oberschlumpf
Hi Christian,
ja, so läufts! :-)
Habe auf Anhieb verstanden, was du meinst.
Ich habe in der Testdatei, Tabelle1, Bereich A, in die letzte Wertezelle, hier A18, eine Formel eingetragen, die als Ergebnis NIX zurückgibt; Zellinhalt bleibt trotz Formel = leer.
Und ohne Codeanpassung hab ich das gleiche unschöne Ergebnis wie du.
Ändere diesen Code-Block...

With lshTab1
For lloFrom_AC_to_Tab2 = 4 To .Cells(Rows.Count, 1).End(xlUp).Row
lshTab2.Cells(lloRowAC, lloColAC).Value = .Cells(lloFrom_AC_to_Tab2, 1).Value
lshTab2.Cells(lloRowAC, lloColAC + 1).Value = .Cells(lloFrom_AC_to_Tab2, 3). _
Value
lshTab2.Cells(lloRowAC, lloColAC + 2).Value = Date
lloRowAC = lloRowAC + 1
Next
End With

...um in...

With lshTab1
For lloFrom_AC_to_Tab2 = 4 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(lloFrom_AC_to_Tab2, 1).Value  "" Then
lshTab2.Cells(lloRowAC, lloColAC).Value = .Cells(lloFrom_AC_to_Tab2, 1). _
Value
lshTab2.Cells(lloRowAC, lloColAC + 1).Value = .Cells(lloFrom_AC_to_Tab2, 3). _
Value
lshTab2.Cells(lloRowAC, lloColAC + 2).Value = Date
lloRowAC = lloRowAC + 1
End If
Next
End With

...hilfts? :-)
Ciao
Thorsten
AW: super erklärt! :-)
09.07.2018 10:06:55
Christian
Hi Thorsten,
freut mich, dass ich es verständlich geschildert habe :-).
Und ui, das ging ja schnell!
Ja, das hilft, jetzt ist auch der Schönheitsfehler beseitigt.
Vielen Dank, Thorsten!
Viele Grüße,
Christian

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige