Vielleicht kann mir jemand helfen? Ich habe mal wieder ein kleines Problem. Ich möchte einige Werte, die in der Spalte D vom Datenblatt 2 stehen in ein anderes Tabellenblatt 1 „Spalte C“ kopieren. Dies soll aber nur geschehen, wenn ein Button angeklickt wird. Z.B möchte ich dass, Tabellenblatt 2 Tabellenblatt 1 D12 ------Kopiervorgang---------------> C10 Oder D3 ------Kopiervorgang---------------> C15 Oder D5 ------Kopiervorgang---------------> C28 Oder D8 ------Kopiervorgang---------------> C20 . . - usw. kopiert werden.
Kann man das mittels einem Button und Textfeld verwirklichen?? Im Anhang finden Sie die Excel Datei. Danke für Ihre Hilfe.
17.04.2017, 22:54 (Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2017, 22:54 von Ego.)
Hallo al...,
Über einen Button kann man ein Makro aufrufen. Und in einem Makro kann man sehr sehr viel machen, unter anderem auch immer wieder die gleichen Zellen kopieren.
Ist eine Makrolösung für dich akzeptabel?
Kannst du deine Fragestelllung noch ein wenig näher beschreiben? zB 1) Sollen bei jedem klick des Buttons immer wieder die gleichen Zellen an die gleichen Positionen verschoben werden und wenn ja welche? 2) Wofür hattest du das Textfeld vorgesehen?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
deine Kopiererei erinnert mich ein wenig an "Pipi Langstrumpf + Villa Kunterbunt" ??? Normal sind fortlaufende ID Nummern als Liste, aber so durcheinander mit Lücken dazwischen??? Programme basieren notmalerweise auf logischer Zuordnung. Ist das wirklich so gewünscht ????
1- Bei einem klick des Buttons soll eine Zelle z.B. D8 vom (Tabellenbatt2) in C20 vom (Tabellenbatt1) kopiert werden.
Das heißt, irgendwelcher Wert von der Spalte „D“ (Tabellenbatt2), den ich ausgewählt habe, soll in der Spalte „C“ (Tabellenbatt1) per Buttonklick kopiert werden und die Zeilen ändern sich wie unten dargestellt ist.
Datenblatt 2 Datenblatt 1
D12 ------Kopiervorgang---------------> C10 Oder D3 ------Kopiervorgang---------------> C15 Oder D5 ------Kopiervorgang---------------> C28 Oder D8 ------Kopiervorgang---------------> C20
den Worten "zB" und "Oder" entnehme ich, dass du nicht immer die gleichen Zellen an die gleichen Positionen kopieren willst. (Warum schreibst du das nicht?)
Dann muss dem Programm irgendwie mitgeteilt werden welche Zelle an welche Position kopiert werden soll. Ich halte ein Eintragen der Positionen in Zellen oder Textfelder und dann drücken eines Buttons für aufwendiger als ein einfaches Strg+c und Strg+v. Ein Button mit Makro ist dann sinnvoll, wenn vom Benutzer nicht die Addressen eingetragen werden müssen. Es also eine Regel gibt, anhand der das Programm ermittelt welche Zelle wohin kopiert werden soll, zB. Kopiere die aktive Zelle im Datenblatt1 ans Ende der Liste in Datenblatt2.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
ein Teil unserer Forum Arbeit besteht aus: Hilfe zur Selbsthilfe - dazu ein Makro von mir das dein Anliegen beantwortet. Es ist so einfach gehalten das du selbst siehtst und verstehst wie Vba funktioniert. Das du die Logik verstanden wie man aus einer Quellle ins Ziel kopiert, kannst du dieses Makro auf jede beliebige andere Zelle umschreiben. Damit kannst du dir deine eigenen Makros schreiben, bist von uns unabhaengig geworden und somit sage ich aus Überzeugung das du den Code verstehen wirst:
Willkommen im Club der VBA Wissenden
mfg Gast 123
Code:
Sub Selbst_Kopieren() Set QTab = Worksheets("Tabelle2") 'Name der Quell Tabelle Set ZTab = Worksheets("Tabelle1") 'Name der Ziel Tabelle
mir ist gerade aufgefallen das im Code ein Fehler ist, der letzte Befehl "End With" muss gelöscht werden!! Sonst Fehlermeldung!!
Hier noch eine zweite Variante zum kopieren, und die Erklaerung des Unterschied der beiden Methoden: 1. Methode) übertraegt nur Werte indem man sagt: lade in die Zielzelle den Wert der Quell Tabelle (übertragen ohne Copy Funktion) dabei wird nur der Wert übertragen, das Format, Schriftfarbe etc. bleibt unberührt. Es geht hierbei nur um die reinen Werte, als Text oder Zahl !! 2. Methode) ist der übliche Kopie Vorgang wie man das manuell gewohnt ist, von Zelle zu Zelle. Wo Format, Schrift, Innenfarbe ect., 1:1 kopiert wird.
Für einfache Sachen wo nur die Werte kopiert werden sollen eignet sich die 1 Mehode als die günstigere Variante.
mfg Gast 123
Code:
Sub Selbst_Kopieren_2() Set QTab = Worksheets("Tabelle2") 'Name der Quell Tabelle Set ZTab = Worksheets("Tabelle1") 'Name der Ziel Tabelle
danke für deine Aufmerksamkeit, dumme kleine Flüchtigkeitsfehler. Muss besser aufpassen !!
Zitat:Set QTab = Worksheets("Tabelle2") 'Name der Quell Tabelle Set ZTab = Worksheets("Tabelle1") 'Name der Ziel Tabelle
Richig deklariert werden muss es natürlich so: Set TB2 = Worksheets("Tabelle2") 'Name der Quell Tabelle Set TB1 = Worksheets("Tabelle1") 'Name der Ziel Tabelle
im Kopf hatte ich beim Programmieren das Wort "Quelle und Ziel" und habe oben deshalb QTab und ZTab geschrieben, waehrend ich unten gewohnheitsmaessig die Variablen "TB1 und TB2" verwendet habe. Der obere Teil muss geandert werden, damit es einwandfrei funktioniert.
Dann habe ich den Code durch ein Button ausgeführt und es klappt prima. Siehe Anhang --->dann klick aufs Button Aber ich will nicht immer, dass die gleichen Zellen an die gleichen Positionen kopieren werden. Das Programm muss irgendwie mitgeteilt werden welche Zelle an welche Position kopiert werden soll.