1Danke
ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
4564
4564
EMPFEHLEN
-
27.04.11 11:47 #1
- Registriert seit
- Mar 2011
- Beiträge
- 34
Hallo Leute!
ich habe da ein kleines problem. ich möchte an eine vorhandene, geöffnete arbeitsmappe, in der bereits ein excel-tabelle geöffnet ist, eine weitere tabelle anhängen. das soll über einen dateipfad geschehen.
also würde das folgendermaßen aussehen: geöffnete arbeitsmappe, in tabelle1 sind daten vorhanden, und nach tabelle2 soll eine neue tabelle geladen werden (über eine dateiauswahl)
die dateiauswahl funktioniert auch soweit schon (siehe code unten) und wird über einen button in der geöffneten arbeitsmappe gestartet.
allerdings öffnet excel dafür eine eigene arbeitsmappe. die zu öffnende datei soll allerdings in der arbeitsmappe, in der der button betätigt wurde, geöffnet werden.
hat jemand eionen vorschlag? sollte ich einen beitrag zu diesem thema übersehen haben, weist mich bitte darauf hin
hier der code:
Private Sub CommandButton1_Click()
' datei laden
ChDir "\"
ChDrive "c:\"
'Das Dialogfenster
Dateiname = Application.GetOpenFilename _
("Micrsoft Excel-Dateien (*.xlsx),*.xlsx")
If Dateiname = False Then Exit Sub
'MsgBox "Ihre Auswahl:" & vbNewLine & Dateiname
' öffnet datei
Sheets("Tabelle1").Activate
Workbooks.Open Filename:=Dateiname, UpdateLinks:=0, ReadOnly:=True
End Sub
-
Ich hatte mal ein Script geschrieben, um alle ersten Sheets aller WB's eines Verzeichnisses in das aktuelle WB zu kopieren.
Du kannst diese beiden Scripte kombinieren.
[VBA] [Excel] Importieren der ersten Sheets aller Workbooks eines Verzeichnises
Kombiniert könnte die Funktion ungefähr so aussehen
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
'/** ' * Importiert ein Worksheet ' * @param Worksheet-Pfad ' * @param optional WS-Index ' */ Public Function importWs(sourceFilePath As String, optional wsIndex as Variant = 0) Dim sourceWb As Workbook Dim targetWb As Workbook On Error GoTo err_handler 'Ziel-Workbook setzen Set targetWb = ActiveWorkbook Set sourceWb = Workbooks.Open(sourceFilePath) Call sourceWb.Worksheets(wsIndex).Copy(after:=targetWb.Sheets(targetWb.Sheets.Count)) exit_handler: On Error resume next 'Aufräumen Call sourceWb.Close Set sourceWb = Nothing Set targetWb = Nothing Exit Function err_handler: Call msgbox(Err.Description) GoSub exit_handler End Function
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
12.05.11 12:00 #3
- Registriert seit
- Mar 2011
- Beiträge
- 34
hi, erstmal vielen dank für deine mühe und entschuldigung dass ich mich erst jetzt melde, aber ich hatte leider einen längeren krankenhausaufenthalt ohne internet zu verbüßen...
das was du dort gemacht hast sieht vielversprechend aus- doch kann ich nicht alles nachvollziehen (leider, ich anfänger :P)
ich setzte mich mal hin und versuche ob ich das zum laufen kriege
-
Versuch die Befehle zu verstehen und frag welche du nicht begreiffst.
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
12.05.11 13:06 #5
- Registriert seit
- Mar 2011
- Beiträge
- 34
gleich ein problem:
ich möchte, dass diese function dann ausgeführt wird, wenn auf eine schaltfläche geklickt wurde. muss ich dann einfach die function in den sub reinkopieren? (tut mir leid vermutlich einne total dämliche frage xD)
gleich ein paar fragen zum code
:
zeile 14: "Set sourceWb = Workbooks.Open(sourceFilePath)" wird damit ein dialogfenster geöffnet, mit dem man die datei angeben kann, deren inhalt quasi kopiert werden soll? oder müsste der code zum öffnen des dialkogfensters extra implementiert werden?
zeile 15: "Call sourceWb.Worksheets(wsIndex).Copy(after:=targetWb.Sheets(targetWb.Sheets.Count))" wird hier der inhalt kopiert und eingefügt? wenn ja, wohin wird er eingefügt? über sourceWb wird ja das gesamte workbook angesprochen. wird dann der inhalt in eine neue tabelle eingefügt`?
sry dass ich diese gasnzen fragen stelle, aber ich konnte es jas leider nicht terstwen :/ daher kannst du mir ja einfach meine allererste frage beantwrten, wenn ich das zum laufen krieg kann ich ja selber versuchen den code nachzuvollziehen
danke dir schonmal!
-
09.06.11 11:55 #6
- Registriert seit
- Mar 2011
- Beiträge
- 34
hab das jetzt hionbekommen- musste ein bisschen tüfteln, aber jetzt gehts. der "copy after" befehl war die lösung

vielen dank nochmal!
Ähnliche Themen
-
Excel Tabellenblatt erstellen?
Von TOLIK im Forum .NET ArchivAntworten: 5Letzter Beitrag: 28.02.10, 20:14 -
EXCEL: Daten von Formularfeld in andere Tabelle in der Arbeitsmappe
Von metalcat303 im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 16.11.09, 17:06 -
Excel: Bei Berechnung auf auf andere Excel-Datei zugreifen
Von Jan-Frederik Stieler im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 25.10.09, 12:37 -
[Excel] Inhalt einer Excel Datei als neues Tabellenblatt einfügen
Von hauke1981 im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 14.12.08, 19:02 -
1 Excel Datei soll 6 andere Tabellen laden
Von bunghole im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 03.04.08, 11:47





Zitieren

Login





