PDA

Vollständige Version anzeigen : Arbeitsmappe per Makro kopieren


roland889
09.07.2014, 10:17
Hallo zusammen,

Ich habe mir ein Makro gebaut, welches ich immer in einer Arbeitsmappe importiere und dann auswerte. Ich möchte gerne aus dem Makro ein "Tool" bauen.

Folgendes will ich realisieren.

Ich will mir eine Arbeitsmappe anlegen in der das Makro von vornherein vorhanden ist. Der Benutzer soll auswählen können welche Arbeitsmappe ausgewertet werden soll. Kann man das über ein Abfrage fenster realisieren, dass der User die Arbeitsmappe die Ausgewertet werden soll auswählen kann, und diese Arbeitsmappe dann komplett in der "Makro Arbeitsmappe" kopiert wird bzw. die Tabellenblätter in die "Makro Arbeitsmappe" kopiert werden,und die Auswertung beginnt? Die Arbeitsmappe welche ausgewertet wird, hat immer mehrere Tabellenblätter.

Ist das machbar?

Ich hoffe ich konnte mich genau ausdrücken. :)

Hajo_Zi
09.07.2014, 10:23
ja das ist machbar. Mehr war nicht gefragt, Du hattest wahrscheinlich nur die Frage gestellt um es Sinn macht Zeit darin zu investieren.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

roland889
09.07.2014, 11:11
Sinn macht es definitiv, da ich es ja so brauche :)

Kann mir bitte einer sagen wie das funktioniert? Ich habe dazu leider nichts gefunden, da ich auch nicht weiß nach welchen begrifflichkeiten ich da suchen müsste

Hajo_Zi
09.07.2014, 11:27
Du hast die Aufgabe nur zu paar Prozent beschrieben, da Du die Lösung selber an Deine Bedingungen anpassen wolltest. Viel Erfolg.
Option Explicit

Sub Kopie()
Dim Dat As String
Dat = Application.GetOpenFilename("Exceldateien von Glausius (*.xls*), *.xls*", _
, "Glausius sucht etwas ")
If InStr(1, Dat, "\") Then
Workbooks.Open Dat
ActiveWorkbook.Worksheets(3).Cells.Copy ThisWorkbook.Worksheets(10).Range("A1")
ActiveWorkbook.Close False
End If
End Sub

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

roland889
09.07.2014, 12:46
Danke, bei deinem Code bekomme ich leider einen Fehler

Laufzeitfehler 9

Index liegt außerhalb des gültigen Bereichs

Ich habe mal in Anhang zwei bsp mappen hochgeladen.

Die Buttons stellen es ledeglich da wie ich es haben möchte ohne Makros.

Durch den Button "Datei laden" soll wie im anhang die Datei "zu_kopierende_daten.xls" in die Arbeitsmappe "Makro_Arbeitsmappe.xlsm" eins zu eins Kopieren.

Die Dateiendungen von dem Makro wird später XLSB sein, konnte ich leider hier nicht hochladen, dswegen als XLSM.

Die kopierenden Daten habe ich in einer XLS Datei.

Hajo_Zi
09.07.2014, 12:57
das konnte daran liegen das es 3 oder 10 Tabellen gibt.

Du hast in Deinem Beitrag Extra keine Datei verlink bzw. einen Tabellen Ausschnitt (nicht als Bild) dargestellt.
<br/><b><em>Jul 2014</em></b><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px; font-size:11pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "><colgroup><col style="font-weight:bold; width:40px;" /><col style="width:209px;" /></colgroup><tr style="background-color:#99CCFF; text-align:center; font-weight:bold; "><td>&nbsp;</td><td>C</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">29</td><td style="border-color:#000000; color:#000000; border-color:#000000; background-color:#FFFFFF ;; text-align:right; ">Falsch</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">30</td><td style="border-color:#000000; color:#000000; border-color:#000000; background-color:#FFFFFF ;; text-align:right; ">496</td></tr></table><br/><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px;font-size:11pt; background-color:#ffffff; width:800px;padding-left:2pt; padding-right:2pt; "><tr style="background-color:#FFCC66; text-align:center; font-weight:bold; "><td colspan="3" > verwendete Formeln </td><td> </td></tr><tr valign="top" style="background-color:#FFCC66; text-align:center; font-weight:bold; "><td> Zelle </td><td> Formel</td><td> Bereich </td> <td>N/A</td></tr><tr><td>C29</td><td>=C27=C28</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>C30</td><td>=SUMMEWENN([Bildschirm.xlsm]Statistik!$Q$44:$Q$54;"&lt;" &amp;HEUTE();[Bildschirm.xlsm]Statistik!$R$54)</td><td>&nbsp;</td><td>&nbsp;</td></tr></table><table cellspacing="0" cellpadding="0"><tr style="text-align:left; font-weight:bold; " class="style21"><td style="text-align:left; font-size: xx-small" ><a href="http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip" >Excel-Inn.de</a></td></tr> <tr style="text-align:left; font-weight:bold; " class="style21"><td style="text-align:left; font-size: xx-small" ><a href='http://Hajo-Excel.de/tools.htm' >Hajo-Excel.de</a></td></tr><tr style="text-align:left; font-weight:bold;" ><td style="text-align:left; font-size: xx-small" >XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007</td></tr><tr style="text-align:left; font-weight:bold; " ><td style="text-align:left; font-size: xx-small" > Add-In-Version 18.07 einschl. 64 Bit</td></tr></table><br/>
Da Du die vorgeschlagene Lösung selbst auf Deine Bedingungen anpassen wollest. Also viel Erfolg, ich habe ja schon eine Lösung erstellt. Warum sollte ich noch eine zweite erstellen.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

roland889
09.07.2014, 13:17
Könntest du dich bitte genauer ausdrücken? Ich verstehe nicht was du damit meinst.

das konnte daran liegen das es 3 oder 10 Tabellen gibt.

Ich habe genau 7 Arbeitsblätter

ActiveWorkbook.Worksheets(3).Cells.Copy ThisWorkbook.Worksheets(10).Range("A1")


bei diesem Code bekomme ich den fehler, auch wenn ich die 3 in 1 und die 10 in 7 ändere, habe ich es richtig verstanden? 1 bis 7? oder ist das anders gemeint?

Und was meinst du mit der unteren formel?

=SUMMEWENN([Bildschirm.xlsm]Statistik!$Q$44:$Q$54;"<" &HEUTE();[Bildschirm.xlsm]Statistik!$R$54)?

Hajo_Zi
09.07.2014, 13:21
ich habe nur dargestellt, wie man Tabelle im Forum darstellt.
Bei der Nummer der Tabelle bin ich von meiner Datei ausgegangen, was wohl daran liegt das ich Deine nicht gesehen habe.
Das musst Du natürlich auf Deine Bedingungen anapassen.

Du hast in Deinem ersten Beitrag Extra keine Datei verlink bzw. einen Tabellen Ausschnitt (nicht als Bild) dargestellt.
<br/><b><em>Jul 2014</em></b><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px; font-size:11pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "><colgroup><col style="font-weight:bold; width:40px;" /><col style="width:209px;" /></colgroup><tr style="background-color:#99CCFF; text-align:center; font-weight:bold; "><td>&nbsp;</td><td>C</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">29</td><td style="border-color:#000000; color:#000000; border-color:#000000; background-color:#FFFFFF ;; text-align:right; ">Falsch</td></tr><tr><td style="background-color:#99CCFF; text-align:center; font-weight:bold; ">30</td><td style="border-color:#000000; color:#000000; border-color:#000000; background-color:#FFFFFF ;; text-align:right; ">496</td></tr></table><br/><table border="1" cellspacing="0" cellpadding="0" style="border-color:#000000; border-width: 1px;font-size:11pt; background-color:#ffffff; width:800px;padding-left:2pt; padding-right:2pt; "><tr style="background-color:#FFCC66; text-align:center; font-weight:bold; "><td colspan="3" > verwendete Formeln </td><td> </td></tr><tr valign="top" style="background-color:#FFCC66; text-align:center; font-weight:bold; "><td> Zelle </td><td> Formel</td><td> Bereich </td> <td>N/A</td></tr><tr><td>C29</td><td>=C27=C28</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>C30</td><td>=SUMMEWENN([Bildschirm.xlsm]Statistik!$Q$44:$Q$54;"&lt;" &amp;HEUTE();[Bildschirm.xlsm]Statistik!$R$54)</td><td>&nbsp;</td><td>&nbsp;</td></tr></table><table cellspacing="0" cellpadding="0"><tr style="text-align:left; font-weight:bold; " class="style21"><td style="text-align:left; font-size: xx-small" ><a href="http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip" >Excel-Inn.de</a></td></tr> <tr style="text-align:left; font-weight:bold; " class="style21"><td style="text-align:left; font-size: xx-small" ><a href='http://Hajo-Excel.de/tools.htm' >Hajo-Excel.de</a></td></tr><tr style="text-align:left; font-weight:bold;" ><td style="text-align:left; font-size: xx-small" >XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007</td></tr><tr style="text-align:left; font-weight:bold; " ><td style="text-align:left; font-size: xx-small" > Add-In-Version 18.07 einschl. 64 Bit</td></tr></table><br/>
Da Du die vorgeschlagene Lösung selbst auf Deine Bedingungen anpassen wollest. Also viel Erfolg, ich habe ja schon eine Lösung erstellt. Warum sollte ich noch eine zweite erstellen.


<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

roland889
09.07.2014, 13:55
Ich habe doch meine frage gestellt, da ich die Anpassung nicht hinbekommen habe.

Ich danke dir für deine Hilfe, ich bekomme es aber nicht übertragen. Ich kann auf meinem Rechner nicht die Addins installieren um es als Bilder zu Posten.

Kann sich bitte jemand meine Datei anschauen, oder mir sagen was ich falsch mache?

roland889
10.07.2014, 09:43
Keiner? :(

roland889
11.07.2014, 10:38
Ok soweit funktioniert es.

Ich habe aber ein Probem und zwar habe ich in den Tabellenblättern die kopiert werden viele formeln stehen.

Wenn ich jetzt die Tabelle kopiere kommt in den ganzen Tabellen mit den Formeln auch der pfad vor, gibt es eine möglichkeit das zu unterbinden?