4.9k Aufrufe
Gefragt in Tabellenkalkulation von
Ich möchte eine Liste über Aufträge erstellen, deren jeweiliger
Rechnungsbetrag sich aus einer separaten festgelegten
Kalkulationstabelle errechnet. Die Auftragsliste soll die Spalten
Auftragsnummer, Volumen und Rechnungssumme enthalten Zur
Berechnung der Werte für Volumen und Rechnungssumme muss zu
jedem Auftrag eine mehrere Spalten umfassende Zeile in die separate
Kalkulationstabelle eingefügt werden. Die daraus resultierenden beiden
Ergebnisfelder für Volumen und Rechnungssumme sollen dann in
meiner Auftragsliste erscheinen - lässt sich dies automatisieren,
vielleicht mit Verknüpfungen mit der Kalkulationstabelle als Tabelle2 in
der gleichen Mappe?

26 Antworten

0 Punkte
Beantwortet von
Hallo,

bei der Arbeit mit M.O.s genialer Tabelle (wegen der nicht möglichen
Neuanmeldung kann ich leider keine Bonuspunkte vergeben -
sorry!) wiederholt sich folgender Ablauf :

Die Tabelle zur Erstellung der Auftragsliste ist geöffnet. Zur
Erfassung eines neuen Auftrags öffne ich eine zweite Datei, die
immer den gleichen Namen hat, markiere dort z.B. die Zellen B2-F2
(immer gleich), kopiere sie und füge sie in die nächste freie
orangefarbene Zeile in der Tabelle zur Erstellung der Auftragsliste
ein. Danach schließe ich die zweite Excel-Datei.

Ließe sich dieser Ablauf mit einem Makro automatisieren, das bei
geöffneter Tabelle zur Erstellung der Auftragsliste mit dem Öffnen der
zweiten Excel-Datei einsetzt, die genannten Zelleninhalte markiert
und kopiert und die Datei danach wieder schließt, sodass ich nur
noch den Inhalt der Zwischenablage in meine Erfassungstabelle
einfügen muss? Sollte mir hier jemand weiterhelfen können, wäre
ich dankbar für einen Makro-Text und Info, wo und wie dieser
einzufügen ist, da die Tabelle nun bereits Daten enthält.

Oder sollte diese Frage besser als neues Thema gepostet werden?

Vielen Dank und Gruß
fisch_nrw
0 Punkte
Beantwortet von
Noch eine Info:

Beim Öffnen der zweiten Datei muss immer folgende Meldung durch
Anklicken von "Ja" quittiert werden:

Sie versuchen eine Datei zu öffnen, xxx.xls', deren Format von dem in
der Dateierweiterung angegeben abweicht. Stellen Sie sicher, dass die
Datei nicht beschädigt ist und aus einer vertrauenswürdigen Quelle
stammt, bevor Sie die Datei öffnen. Möchten Sie die Datei jetzt öffnen?
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

wenn du uns mitteilst,
- wie die zu öffnende Mappe heißt,
- wie der Laufswerkspfad heißt, in dem die Mappe liegt und
- ob tatsächlich die Zellen B2 bis F2 kopiert werden sollen
dann kann man das Öffnen, kopieren und schließen automatisieren.

Du schreibst
markiere dort z.B. die Zellen B2-F2 (immer gleich), kopiere sie und füge sie in die nächste freie orangefarbene Zeile in der Tabelle zur Erstellung der Auftragsliste ein


Auch das Einfügen kann man automatisieren. Doch dafür muss man wissen, ob
- die Erfassungstabelle so aussieht, wie in meiner Antwort 8,
- in welche Spalten die kopierten Daten eingefügt werden sollen und
- ob nur die Farbwerte in leeren Zeilen vorhanden sind, oder ob dort
ggf. schon andere Daten stehen (z.B. die Formeln, oder bereits eine
Auftragsnummer und / oder Lieferdatum)

Die Meldung bekommst du, weil du eine Excel-Tabelle in einem alten Format öffnest.

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

hier mal ein Makro zum Öffnen, Kopieren und schließen.
Name und Pfad müssen angepasst werden.

Sub import()

Dim Importpfad As String
Dim Importname As String

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Benachrichtigungen ausschalten
Application.DisplayAlerts = False

'Namen ggf. anpassen
Importname = "Importtest.xls"
Importpfad = "C:\Test\" & Importname

'Öffnen der Quelle
Workbooks.Open (Importpfad)

Workbooks(Importname).Worksheets(1).Range("B2:F2").Copy

Workbooks(Importname).Close (False) 'Schließen der Quelle ohne Speichern

'Benachrichtigungen einschalten
Application.DisplayAlerts = True

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

MsgBox "Daten wurden kopiert!", 64, "Hinweis"

End Sub


Das Makro gehört in ein Standard-Modul.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

vielen Dank für Deine Antwort und den Code.

Der Name der Datei, aus der die Zellen kopiert werden, ist immer gleich, der
Pfad aber immer anders. Ich würde also so vorgehen:

1. Auftragsliste öffnen.
2. Datei Importtest.xls mit den Daten durch Doppelklicken in einem anderen
Tool öffnen.
3. Zellen B2-I2 (sorry, sind 8 immer gleiche Felder, die genauen
Zellenbezeichnungen passe ich an) markieren, kopieren und jeweils in das
erste orangefarbene Feld in Spalte D (bzw. D2-K2, D8-K8, D14-K14, siehe
unten) einfügen.
3. Datei Importtest.xls ohne Speichern schließen.

Wäre das Makro so ohne Angabe des Herkunftspfads möglich?

Zum Automatisieren des Einfügens:

- Ja, die Erfassungstabelle sieht so aus wie in Deiner Antwort 8 (aktuelle
bereinigte Version siehe http://www70.zippyshare.com/v/l3V34ppD/file.html)
- Die kopierten Daten sollen jeweils in die orange bzw. blau markierten Felder
des nächsten leeren Kalkulationsbereichs eingefügt werden. In der von mir
jetzt hochgeladenen Datei Auftragsliste_kopieren sind das die Zellen D14-
K14. Da zu diesem Zeitpunkt bereits Aufträge erfasst sind und das Einfügen
immer in der jeweils nächsten leeren Zeile erfolgen soll, dachte ich nicht, dass
dieser Vorgang automatisiert werden kann, lasse mich aber gerne eines
Besseren belehren :-)
- Auftragsnummer und Lieferdatum würde ich gerne zuerst eintragen und erst
danach die Datei Importtest.xls öffnen und damit den Kopiervorgang einleiten,
falls möglich. In den farblich markierten Zellen, in die das Einfügen erfolgen
soll, sind aber nur die Farbwerte vorhanden.

Danke und Gruß
fisch_nrw
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

hier die bearbeitete Datei: KLICK MICH!

Vor dem Import muss eine Auftragsnummer eingegeben werden. Das Öffnen der Importdatei erfolgt über den Öffnen-Dialog von Excel, so dass du den Pfad und die Datei auswählen kannst.
Ich gehe mal davon aus, dass in der Importdatei nur ein Tabellenblatt vorhanden ist. Die Daten werden daher immer aus dem ersten Tabellenblatt eingelesen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

das funktioniert ja super - kriege mich gar nicht mehr ein :-)

Falls ich noch 1 Frage stellen dürfte:

1. Das Öffnen der Importdatei über den Öffnen-Dialog von Excel kostet ca. 10
Mausklicks zum Auswählen des Pfads (ist nun mal vorgegeben und sehr
kompliziert, daran kann ich leider nichts ändern). Gibt es keine Möglichkeit,
zuerst beide Dateien in Excel zu öffnen (kostet einen Doppelklick in einer
externen Anwendung) und das Makro dann zu starten? Wäre es vielleicht
möglich, im Makro auf die ebenfalls in Excel geöffnete Datei Importtest.xls zu
verweisen?

1000 Dank und Gruß
fisch_nrw
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

wie gewünscht ;-): KLICK MICH

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

genial - vielen, vielen Dank :-)

Leider habe ich etwas übersehen:

Die Zellen, die aus Importtest.xls in die Kalkulationstabelle kopiert werden sollen,
befinden sich anders als vorausgesetzt nicht immer in Zeile 2. Lässt sich die
Definition der zu kopierenden Zellen evtl. so ändern, dass die Zellen B-I immer
aus der Zeile kopiert werden, in der in Zelle A der Text "bla (bla) bla" steht?
Diesen Text gibt es definitiv in jeder Datei nur einmal und immer in Spalte A, aber
die Zeile variiert.

Danke und Gruß
fisch_nrw
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

auch das geht. Wie heißt denn der Suchtext?

Gruß

M.O.
...