tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
4564
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Timotheus1992 Timotheus1992 ist offline Mitglied Bronze
    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
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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
    Timotheus1992 bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    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

  3. #3
    Timotheus1992 Timotheus1992 ist offline Mitglied Bronze
    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
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  5. #5
    Timotheus1992 Timotheus1992 ist offline Mitglied Bronze
    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!
     

  6. #6
    Timotheus1992 Timotheus1992 ist offline Mitglied Bronze
    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

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

Stichworte