Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kompliziertes Makro benötigt...

Kompliziertes Makro benötigt...
17.08.2007 08:59:00
tobstein
Hallo und guten Morgen,
ein Anfänger benötigt dringend Eure Hilfe. Das Problem müsste wahrscheinlich am besten mit einem Makro gelöst werden...aber wie gesagt...als Anfänger bin ich für alle Vorschläge offen...
Hier erst einmal die Datei (damit's einfacher ist zu erklären)...

Die Datei https://www.herber.de/bbs/user/45145.xls wurde aus Datenschutzgründen gelöscht


So...jetzt aber zum Problem.
Ich habe eine Datei mit drei Tabellenblättern.
Im Tabellenblatt1 sollen die Daten aus den anderen Tabellenblättern rein. Die Daten sollen stets in die Felder E, F und G rein (siehe in der Anlage). Es sollen nicht die Formeln aus den anderen Blättern reinkopiert werden, sondern nur die Zahlenwerte.
Im Tabellenblatt2 stehen die Daten, die in die Spalte E kopiert werden sollen...und im
Tabellenblatt3 stehen die Daten, die nach F und G kopiert werden sollen.
Soweit ist das alles kein Problem...jetzt kommt's aber.
Wenn das Makro (zum Kopieren der Werte) gestartet wird, soll zuvor eine Abfrage erscheinen.
Gibt man dann eine 1 ein, werden aus Tabelle2 die Werte aus Spalte U und aus Tabelle3 die Werte aus den Spalten F und I nach Tabelle 1 kopiert.
Gibt man eine 2 in der Abfrage ein, dann wird aus Tabelle2 die Spalte V und aus Tabelle3 die Spalten K und N kopiert...usw.
Das Makro sollte einfach zu erweitern sein...so dass man etwa bis Eingabe 40 den Kopiervorgang steuern kann.
Hoffentlich habe ich es einigermaßen verständlich erklärt....
Danke schon einmal
Tobi

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 09:20:12
Renee
Hallo Tobi,
am besten mit einem Makro gelöst werden
Grundsätzlich sollte man eine reine Formellösung immer einer Makro Lösung vorziehen, weil
a) Praktisch immer, Viel schneller als VBA.
b) Flexibler (z.B. Verschieben der Daten) und
c) sicherer, und versionen-unabhängiger, austauschbarer z.B. mit OpenOffice
d) weniger Sicherheitsprobleme (Makros dürfen nicht überall laufen)
Es sollen nicht die Formeln aus den anderen Blättern reinkopiert werden, sondern nur die Zahlenwerte.
Was ist der Grund, das keine Formeln vorkommen dürfen? Dann brauchst Du nicht EXCEL zu nehmen, sondern kannst auch mit Word oder einem anderen Textprogramm leben.
Eine Formellösung kann so aussehen (für Tabelle 1):

in Zelle C6 steht die Kopieroption (1...40)
In E6: =BEREICH.VERSCHIEBEN(Tabelle2!U6;ZEILE()-6;$C$6-1)
In F6: =BEREICH.VERSCHIEBEN(Tabelle3!F6;ZEILE()-6;($C$6-1)*5)
In G6: =BEREICH.VERSCHIEBEN(Tabelle3!I6;ZEILE()-6;($C$6-1)*5)


Diese Formeln können von E6:G6 beliebig nach unten kopiert werden.
Greetz Renee

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 09:41:00
tobstein
Hallo Renee,
erst einmal vielen Dank für Deine schnelle Antwort...ich werd's mal eben testen und gleich berichten...gib mir mal 10 Minuten...
Danke
Tobi

AW: Kompliziertes Makro benötigt...
17.08.2007 10:11:37
tobstein
So...hab's jetzt mal getestet...Deine Formeln scheinen aber nur jede 2. Zeile zu übernehmen....
Tobi

AW: Kompliziertes Makro benötigt...
17.08.2007 09:43:00
tobstein
Hallo Rainer,
werde Deine Lösung auch mal eben testen...melde mich in wenigen Minuten...
Tobi

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 09:48:00
tobstein
Hallo Rainer...
da bin ich wieder...Deine Lösung scheint mir die elegantere zu sein und sie funktioniert mit der Testdatei suuuuuper....
Habe jetzt nur noch zwei Fragen...
1.
Wie muss ich den Code aus deiner Datei in meine Datei hineinkopieren...damit ich auch den Button sehe?
2.
Was muss ich im Code ändern, wenn ich die Tabellennamen anpassen muss...die heißen im Original nämlich nicht Tabelle1, Tabelle2 und Tabell3...?
Tobi

AW: Kompliziertes Makro benötigt...
17.08.2007 10:04:00
Renee
Hi Tobi,
Deine Lösung scheint mir die elegantere zu sein .... was muss ich machen, wenn ...
Genau da fängts an. Die Flexibiltät von VBA Code. Ist aber furchtbar elegant....
;-)
Greetz Renee

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 10:08:00
tobstein
Hallo Renee,
ich wollte damit Deine Lösung nicht als negativ abtun... ;-)
ich habe Deinen Vorschlag auch getestet, aber irgendwie scheint es da ein Problem mit der Formel zu geben...da klappt noch nicht 100%ig...wrd' mich gleich nochmal dazu melden...

AW: Kompliziertes Makro benötigt...
17.08.2007 10:19:00
Renee
Hallo Tobi,
Ich hab das auch nicht so (...nicht als negativ abtun..) empfunden.
Leute lassen sich gerne von VBA-Code blenden. Ich geb Dir hier mal ein paar Infos:
Zu Wuxines/Rainer-Code:
Der funktioniert nur wenn die Datei mit einer englishen Excel-Version erstellt wurde, oder die Objektnamen der Tabellen auf "SheetN" geändert werden! Auch funktioniert er nur von Zeile 6 bis 50, sonst musst Du ihn anpassen.
Zu Danis Code:
Der funktioniert im Moment nur für 1..3 Kolonnen und die Blätter müssen richtig benannt sein.
Ich will damit nicht die Lösungen anzweifeln, denn wenn ich Dir eine machen würden, hätte auch diese Einschränkungen und Restriktionen, die einen Einbau in eine andere Datei nicht einfach machen.
Ich will damit nur zeigen, eine Formellösung ist x-fach einfacher.
Greetz Renee

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 11:21:31
tobstein
Die Formellösung scheint wirklich nicht schlecht zu sein...allerdings kopiert sie nur jede 2 Zeile...ist da irgendein Fehler in den Formeln?
Tobi

AW: Kompliziertes Makro benötigt...
17.08.2007 11:36:00
Renee
Hi Tobi,
Sorry, da fehlten die absoluten Referenzen:

In E6: =BEREICH.VERSCHIEBEN(Tabelle2!$U$6;ZEILE()-6;$C$6-1)
In F6: =BEREICH.VERSCHIEBEN(Tabelle3!$F$6;ZEILE()-6;($C$6-1)*5)
In G6: =BEREICH.VERSCHIEBEN(Tabelle3!$I$6;ZEILE()-6;($C$6-1)*5)


Greetz Renee

AW: Kompliziertes Makro benötigt...
17.08.2007 12:09:00
tobstein
Danke...jetzt klappt's...
Tobi
P.S.
Habe mich für die Formellösung entschieden...da für mich als Anfänger sehr viel einfacher...

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 12:13:25
tobstein
Da stimmt's aber immer noch nicht...nur jede 2. Zeile wird rüberkopiert...

AW: Kompliziertes Makro benötigt...
17.08.2007 10:14:01
Wuxinese
Hallo Tobi,
das ist eigentlich ganz simpel. Du fuegst ueber die Symbolleiste "Steuerelement-Toolbox" einen Button ein. Anschliessend machst Du einen Doppelklick auf diesen Button. Im VBA-Editor kannst Du dann dem Klick-Ereignis dieses Buttons den Code zuweisen (einfach dorthin kopieren).
Im Editor wirst Du auch sehen, dass links oben die ganzen Excel-Objekte aufgefuehrt sind. Da steht dann untereinander: Tabelle1 (Name der Tabelle), Tabelle2 (Name der Tabelle) usw.
Du kannst dann entweder immer die voranstehende Bezeichnung verwenden, so wie ich das gemacht habe (hat den Vorteil, dass beim Aendern des Tabellennamens das Makro auch noch funktioniert) oder Du kannst im Code 'Tabelle2' austauschen mit ActiveWorkbook.Worksheets("Name der Tabelle").
Gruss
Rainer

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 10:17:17
tobstein
Suupi...werd's gleich mal ausprobieren....kann man den Button eigentlich auch in die Button-Leiste von Excel legen, da ich aus der Tabelle anschließend ein PDF machen muss und dann der Button sehr wahrscheinlich auch im PDF auftauchen würde....

AW: Kompliziertes Makro benötigt...
17.08.2007 10:23:53
Wuxinese
Das geht meines Wissens auch, wird aber wohl etwas kompliziert werden. Du kannst aber ja einstellen, dass der Button nicht mit gedruckt werden soll. Das waere wesentlich einfacher.

AW: Kompliziertes Makro benötigt...
17.08.2007 09:45:42
Dani
Hallo Tobi
ich habe dir einen Ansatz gebastelt:

Private Sub Datensammeln()
Dim Antwort As Integer
Dim Spalte2 As Integer
Dim Spalte3A As Integer
Dim Spalte3B As Integer
Antwort = InputBox("Auswahl")
Select Case Antwort
Case 1:
Spalte2 = 21
Spalte3A = 6
Spalte3B = 9
Call Kopiere(Spalte2, Spalte3A, Spalte3B)
Case 2:
Spalte2 = 22
Spalte3A = 11
Spalte3B = 14
Call Kopiere(Spalte2, Spalte3A, Spalte3B)
Case 3:
Spalte2 = 23
Spalte3A = 16
Spalte3B = 19
Call Kopiere(Spalte2, Spalte3A, Spalte3B)
End Select
End Sub



Private Sub Kopiere(Spalte2, Spalte3A, Spalte3B)
Dim Zeile As Integer
Dim Spaltenlänge As Integer
Spaltenlänge = Worksheets("Tabelle2").Cells(Rows.Count, Spalte2).End(xlUp).Row
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Range(Cells(6, Spalte2), Cells(Spaltenlänge, Spalte2)).Copy
Worksheets("Tabelle1").Range("E6").PasteSpecial
Spaltenlänge = Worksheets("Tabelle3").Cells(Rows.Count, Spalte3A).End(xlUp).Row
Worksheets("Tabelle3").Activate
Worksheets("Tabelle3").Range(Cells(6, Spalte3A), Cells(Spaltenlänge, Spalte3A)).Copy
Worksheets("Tabelle1").Range("F6").PasteSpecial
Spaltenlänge = Worksheets("Tabelle3").Cells(Rows.Count, Spalte3B).End(xlUp).Row
Worksheets("Tabelle3").Range(Cells(6, Spalte3B), Cells(Spaltenlänge, Spalte3B)).Copy
Worksheets("Tabelle1").Range("G6").PasteSpecial
End Sub


Ich hoffe ich habe dich richtig verstanden
Gruss
Dani

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 10:06:37
tobstein
Hallo Dani,
vielen Dank für Deine Hilfe...allerdings ist mir dies als absoluter Excel-Anfänger etwas zu kompliziert...bzw. das sagt mir leider nicht viel...wie ich das umsetzen müsste...
Tobi

AW: Kompliziertes Makro benötigt...
17.08.2007 10:15:00
tobstein
Allerdings würde ich Deine Lösung auch gerne mal ausprobieren...sag' mir bitte nur, wie ich den Code in die Datei integrieren und dann anschließend aufrufen kann...
Danke
Tobi

AW: Kompliziertes Makro benötigt...
17.08.2007 12:14:00
Dani
Hallo Tobi
im Menu Ansicht/Symbolleisten wählst du den Eintrag "Steuerelement-Toolbox". Danach erscheint ein Fenster mit Steuerelementen. Ein Rechteck heisst Befehlsschaltfläche. (Text erscheint wenn du mit der Maus auf dem Symbol bleibst. Anklicken und auf der Tabelle positionieren.
Rechtsklick Eigenschaften auswählen. Jetzt siehst du die Eigenschaften des Knopfes. Ändern Caption in "Import".Name in "Import". Nun kannst du das Fenster schliessen. Der Button ist jetzt mit "Import" beschriftet. Doppelklick auf den Button: Der VB-Editor öffnet sich. Automatisch wurde die Routine Import_Click generiert. Hier kannst du die Routine aufrufen mit Call Datensammeln(). Im Menu Einfügen wählst du Modul. Es öffnet sich das Codefenster in das du den Code hineinkopieren kannst. Es tönt wirklich komplizierter als es ist...
Hier eine Beispieldatei:
https://www.herber.de/bbs/user/45157.xls
Gruss
Dani

Anzeige
AW: Kompliziertes Makro benötigt...
17.08.2007 13:04:45
tobstein
Danke für Deine Hilfe...

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige