Office: schaltfläche ... erstellen zum browsen zu einer Excel Datei

Helfe beim Thema schaltfläche ... erstellen zum browsen zu einer Excel Datei in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich möchte in meinem Excel 2010 Formular eine Schalfläche ... einfügen, die bei dem draufklicken das (browsen) suchen einer Datei... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von leo4teo, 22. Juli 2014.

  1. leo4teo Erfahrener User

    schaltfläche ... erstellen zum browsen zu einer Excel Datei


    Hallo zusammen,

    ich möchte in meinem Excel 2010 Formular eine Schalfläche ... einfügen, die bei dem draufklicken das (browsen) suchen einer Datei ermöglicht (Excel_xy.xls oder Excel_xy.xlsx, die immer anders heißt und an einem anderen Ort liegen kann) und dann die Zeilen A1, F1, A2, F2, A4 und F4 aus der Datei kopieren und in mein Formular in A1=T5 F1=DH5, A2=T7 F2=DH7 und A4=T9 F4=DH9 einfügt.

    Eine Schaltfläche erstellen, kopieren und einfügen im Formular ist kein Problem aber das browsen und dann copy and paste ist ein Problem, das ich auch nicht googlen kann. Ich finde jedenfalls nichts.

    Ich hoffe hier kann mir jemand helfen.

    mfg leo4teo
     
    leo4teo, 22. Juli 2014
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    das Kopieren der Daten kannst du mit dem Makrorekorder aufzeichnen.

    Für die Dateiauswahl benutze dieses Code:

    Code:
    Sub DateienAuswaehlenEine()
       Dim strDatei As String
       Dim fdDialog As FileDialog
       Set fdDialog = Application.FileDialog(msoFileDialogFilePicker)
       With fdDialog
          .Filters.Add "Excel-Dateien", "*.xlsx; *.xlsm; *.xls", 1
          .InitialFileName = "D:\Test\"
          .Title = "Bitte Datei auswählen"
          .AllowMultiSelect = False         '<== Achtung!! kein Multiselect
          .ButtonName = "Auswahl"
          If .Show = -1 Then
             strDatei = .SelectedItems(1)
          End If
       End With
       If strDatei <> "" Then
          Workbooks.Open strDatei
          '... hier deinen Kopiercode
       End If
       Set fdDialog = Nothing
    End Sub
    
    Bis später,
    Karin
     
    Beverly, 22. Juli 2014
    #2
  3. leo4teo Erfahrener User
    Hallo Karin,
    also das mit dem browsen funktioniert. (ist es möglich die Datei gar nicht zu öffnen sondern nur den Dateiphat+Namen zu benutzen?)

    Wenn ich aber mit der copy and paste Sache, mit "Makro aufzeichnen" erstelle,
    kommt der Code bei raus:
    PHP:
    '... hier deinen Kopiercode
            Range("E1:P1").Select
            Application.CutCopyMode = False
            ActiveCell.FormulaR1C1 = "Karin Flo"
        Windows("-7.7.6-5_MeinFormular.xlsm").Activate
            Range("DH5:FN5").Select
            ActiveCell.FormulaR1C1 = "Karin Flo"
        Windows( _
            "20140210-AuswaehlDatei.xlsx"). _
            Activate
            Range("E3:P3").Select
            ActiveCell.FormulaR1C1 = "Karin Flo Str 34"
        Windows("-7.7.6-5_MeinFormular.xlsm").Activate
            Range("DH7:FN7").Select
            ActiveCell.FormulaR1C1 = "Karin Flo Str 34"
        Windows( _
            "20140210-AuswaehlDatei.xlsx"). _
            Activate
            Range("E4:P4").Select
            ActiveCell.FormulaR1C1 = "D-00815 Floburg"
        Windows("-7.7.6-5_MeinFormular.xlsm").Activate
            Range("DH9:FN9").Select
            ActiveCell.FormulaR1C1 = "D-00815 Floburg"
            
       End If
    der auch so funktioniert!!!!
    Es ist aber weder die ausgewählte Datei immer gleich, noch mein Formular!
    Deshalb wie oben schon erwähnt, vielleicht nur den Dateiphat+Name -Tabelle1(Eingabe) der ausgewählten Datei (die Tabelle1(Eingabe) ist immer gleich. So wie die Zellen).
    Bei meinem Formular ändert sich auch der Name, nur die Zellen sind immer konstant.

    Ich hab rum gedoktert und experimentiert, aber außer Fehlermeldungen, habe ich nichts brauchbares zustande bekommen.

    Ach und eins noch, wie bekommt man es hin, dass das Suchen nicht in Dokumente startet sondern in Computer, so das man alle Partitionen und Speichermedien gleich sieht, auf dem evtl. die AuswählDatei sein könnte und zu suchen ist.

    Danke schon einmal jetzt an der Stelle
    leo4teo
     
    leo4teo, 22. Juli 2014
    #3
  4. leo4teo Erfahrener User

    schaltfläche ... erstellen zum browsen zu einer Excel Datei

    Tipp Fehler
    der auch so funktioniert!!!!
    Es ist aber weder die ausgewählte Datei immer gleich, noch mein Formular immer den selben Namen hat!
    Deshalb wie oben schon erwähnt, vielleicht nur ...

    Kursiv ist die Verbesserung!

    Sorry :)
     
    leo4teo, 22. Juli 2014
    #4
  5. Beverly
    Beverly Erfahrener User
    Also in deinem aufgezeichneten Code kann ich nicht erkennen, dass etwas kopiert wird. Du trägst die selben feststehende Daten in beide Arbeitsmappen ein, nur an unterschiedlichen Positionen. Was soll denn nun tatsächlich gemacht werden - so wie im ersten Beitrag geschrieben Daten aus einer Arbeitsmappe in eine andere kopiert, oder wie im letzten Beitrag per Code angezeigt feststende Inhalte in beide Arbeitsmappen eingetragen werden?

    Dass die geöffnete Arbeitsmappe immer einen anderen Namen hat, ist nicht das Problem - allerdings verstehe ich nicht, was du meinst mit: "...noch mein Formular immer den selben Namen hat"


    Bis später,
    Karin
     
    Beverly, 23. Juli 2014
    #5
  6. leo4teo Erfahrener User
    Hallo Karin,
    hm ...
    Also ich bin nicht immer der beste Erklärbär, aber ich versuche es. :)

    Mein Formular ist hier z.B. die MeinFormular.xlsm Datei. Diese ist eine Vorlage und wird wenn sie geöffnet wird und ausgefüllt, vor dem öffnen neu abgespeichert mit heutigem Datum versehen, also heißt sie dann z.B. 20140723_MeinFormular.xlsm. Also wird die Date MeinFormular.xlsm nicht gefunden, wenn es wie in meinem Code fix ist!

    Dann was ich mit dem Button bewirken möchte:

    1. Ich möchte zu einer Excel Datei z.B. 20140210-AuswaehlDatei-KarinFlo.xlsx navigieren, um
    2. dort dann den Inhalt/Wert (Namen (E1:P1), Strasse (E3:P3), Ort (E4:P4)) bestimmter Zellen aus der Tabelle1 (Eingaben) aus der Datei 20140210-AuswaehlDatei-KarinFlo.xlsx zu entnehmen. Um diese Inhalt/Wert in meinem nun 20140723_MeinFormular.xlsm Formular, in die Zellen (Namen (DH5:FN5), Strasse (DH7:FN7), Ort (DH9:FN9)) einzufügen.
    3. Sollte die Datei 20140210-AuswaehlDatei-KarinFlo.xlsx , zu dem ich navigiert bin, wenn überhaupt nur kurz geöffnet werden und nach der Datenübergabe wieder geschlossen werden.

    Ich hoffe ich habe mich verständlich ausgedrückt und du verstehst jetzt was ich verwirklichen möchte.

    Bis später
    leo4teo
     
    leo4teo, 23. Juli 2014
    #6
  7. Beverly
    Beverly Erfahrener User
    Hi,

    nur mal für dich zur Erklärung: wenn ein Zellinhalt kopiert wird, dann zeichnet der Makrorekorder einen Code auf, der an bestimmten Stellen den Zusatz .Copy aufweist (zumindest macht das mein Excel so). Es ging also darum, dass du direkt mittels Strg+C einen Zellbereich kopierst und mittels Strg+V an einer anderen Stelle wieder einfügst - mit deinem Code wird jedoch nur ein fester Inhalt in die Zellen geschrieben und nichts kopiert.

    Code:
    Sub DateienAuswaehlenEine()
       Dim strDatei As String
       Dim wksTab As Worksheet
       Dim fdDialog As FileDialog
       Set wksTab = ActiveSheet
       Set fdDialog = Application.FileDialog(msoFileDialogFilePicker)
       With fdDialog
          .Filters.Add "Excel-Dateien", "*.xlsx; *.xlsm; *.xls", 1
          .InitialFileName = "D:\Test\"
          .Title = "Bitte Datei auswählen"
          .AllowMultiSelect = False         '<== Achtung!! kein Multiselect
          .ButtonName = "Auswahl"
          If .Show = -1 Then
             strDatei = .SelectedItems(1)
          End If
       End With
       If strDatei <> "" Then
          Application.ScreenUpdating = False
          Workbooks.Open strDatei
          With Workbooks(Mid(strDatei, InStrRev(strDatei, "\") + 1)).Worksheets(1)
             .Range("E1:P1").Copy wksTab.Range("DH5")
             .Range("E3:P3").Copy wksTab.Range("DH7")
             .Range("E4:P4").Copy wksTab.Range("DH9")
          End With
          Workbooks(Mid(strDatei, InStrRev(strDatei, "\") + 1)).Close False
          Application.ScreenUpdating = True
       End If
       Set fdDialog = Nothing
       Set wksTab = Nothing
    End Sub
    
    
    Bis später,
    Karin
     
    Beverly, 23. Juli 2014
    #7
  8. leo4teo Erfahrener User

    schaltfläche ... erstellen zum browsen zu einer Excel Datei

    Hallo Karin,
    das sieht super aus, aber leider hab ich eine Sperre in meinen Feldern DH5 etc.
    Hab es erst einmal anders gelöst, bis ich den Fehler gefunden habe.
    too late

    Super herzlichen Dank!!!!
    1000 Sympathie-Punkte :)
    leo4teo
     
    leo4teo, 24. Juli 2014
    #8
  9. leo4teo Erfahrener User
    Hallo Karin,
    das sieht super aus, aber leider hab ich eine Sperre in meinen Feldern DH5 etc.
    Hab es erst einmal anders gelöst, bis ich den Fehler gefunden habe.
    too late

    Super herzlichen Dank!!!!
    1000 Sympathie-Punkte :)
    leo4teo
     
    leo4teo, 24. Juli 2014
    #9
  10. leo4teo Erfahrener User
    Moin Karin,
    eine Frage hätte ich noch zu der Sache.

    Ist es möglich nur den ausgegebenen Wert zu kopieren, nicht den tatsächlichen Inhalt?
    Denn so wie der Code ist, wird die Zelle kopiert. Da die Zellengrößen unterschiedlich sind, kommt es zu meinem Problem.
    Deshalb wird auch aus den Zellen, wenn dort eine Formel enthalten ist, diese angezeigt! Ich würde aber gern, das was die Formel im AuswählDatei.xlsm bewirkt/ausgibt auch nur in meinem Formular zu sehen ist. Ist das möglich?

    in guter Hoffnung
    leo4teo
     
    leo4teo, 24. Juli 2014
    #10
  11. Beverly
    Beverly Erfahrener User
    Hi,

    wenn du einen Blattschutz gesetzt hast, musst du ihn vor dem Kopieren per Code aufheben und anschließend wieder setzen.

    Damit nur die Zellinhalte kopiert werden, benutzt man die Möglichkeit Einfügen -> Inhalte -> Werte, was dann im Code so aussieht:

    Code:
          With Workbooks(Mid(strDatei, InStrRev(strDatei, "\") + 1)).Worksheets(1)
             .Range("E1:P1").Copy
             wksTab.Range("DH5").PasteSpecial Paste:=xlPasteValues
             .Range("E3:P3").Copy
             wksTab.Range("DH7").PasteSpecial Paste:=xlPasteValues
             .Range("E4:P4").Copy
             wksTab.Range("DH9").PasteSpecial Paste:=xlPasteValues
          End With
    
    
    Bis später,
    Karin
     
    Beverly, 24. Juli 2014
    #11
  12. leo4teo Erfahrener User
    Hallo Karin,

    Du bist die Beste!!!
    genau so meinte ich es. 1000 Dank

    Bis vielleicht zum nächsten mal.
    Bis dahin

    mfg leo4teo
     
    leo4teo, 24. Juli 2014
    #12
  13. leo4teo Erfahrener User

    schaltfläche ... erstellen zum browsen zu einer Excel Datei

    Kurz noch eine Verständnisfrage.

    Wenn ich nun statt der Tabelle (Eingabe) die Tabelle (Extra) in der AuswählDatei.xlsm ansprechen möchte, wie würde das gehen?
    Beispiel :
    PHP:
     With Workbooks(Mid(strDateiInStrRev(strDatei"\") + 1)).Worksheets(1)
             .Range("
    E1:P1").Copy
             wksTab.Range("
    DH5").PasteSpecial Paste:=xlPasteValues        ' EmpfängerName
             .Range("
    E3:P3").Copy
             wksTab.Range("
    DH7").PasteSpecial Paste:=xlPasteValues        ' EmpfängerName
             .Range("
    E4:P4").Copy
             wksTab.Range("
    DH9").PasteSpecial Paste:=xlPasteValues        ' EmpfängerName

    ' hier würde die Änderung rein kommen für die Tabelle (Extra), richtig? Aber Wie???
             .Range("
    E1:P1").Copy
             wksTab.Range("
    AY5").PasteSpecial Paste:=xlPasteValues        ' RechnungsName
             .Range("
    E3:P3").Copy
             wksTab.Range("
    AY7").PasteSpecial Paste:=xlPasteValues        ' RechnungsStrasse
             .Range("
    E4:P4").Copy
             wksTab.Range("
    AY9").PasteSpecial Paste:=xlPasteValues        ' RechnungsOrt
          End With

    Habe mit der Zeile
    PHP:
    With Workbooks(Mid(strDateiInStrRev(strDatei"\") + 1)).Worksheets(1)
    rum experimentiert, im "\" stattdessen "\Extra" abgeändert usw aber nix.

    Wie würde das funktionieren?

    Schönen Abend noch
    leo4teo
     
    leo4teo, 24. Juli 2014
    #13
  14. Beverly
    Beverly Erfahrener User
    Worksheet heißt zu deutsch "Arbeitsblatt" bzw. Tabellenblatt - somit muss der Inhalt in der Klammer danach geändert werden. Generell kann man ein Tabellenblatt mit seinem Index, also seiner Position in der Arbeitsmappe, ansprechen: Worksheets(1) und auch mit seinem Namen: Worksheets("Extra").

    Wenn man sich auf ein Tabellenblatt in einer anderen Arbeitsmappe bezieht, dann muss vor den Namen des Tabellenblattes noch der Name der Arbeitsmappe gesetzt werden - das erfolgt durch Workbooks("AusgewählteMappe.xlsx"). Dieser Teil <code><code>Mid(strDatei, InStrRev(strDatei, "\") + 1)</code></code> bezieht sich also nur auf den Namen der Arbeitsmappe, die ausgewählt und geöffnet wurde. Auf der Variablen strDatei steht nun jedoch der Name der Arbeitsmappe einschließlich dem Verzeichnis - also z.B. so: D:\Test\AusgewählteMappe.xlsm. Der gesamten Teil vor dem eigentlichen Mappennamen muss also weg, wenn man die Arbeitsmappe mit Workbooks("AusgewählteMappe.xlsm") ansprechen will und genau das macht dieser Codeteil mit Mid(....). Die Mid-Funktion ist das VBA-Äquivalent zur Formel TEIL(....).

    Bis später,
    Karin
     
    Beverly, 24. Juli 2014
    #14
  15. leo4teo Erfahrener User
    Hallo Karin,
    es ist lange her, aber nun denke ich benötige ich noch einmal deine Hilfe.
    Das importieren von Werte aus einer anderen "AusgewählteMappe.xlsx" und deren spezielle Tabelle funktioniert dank deiner Hilfe von 2014.

    Damals war der Button in der Tabelle in der die Werte der „xy.xlsx“ Datei importiert wurden.
    Jetzt ist es aber so, dass mein Button in Tabelle3 ist, immer noch aus "AusgewählteMappe.xlsx" und aus Tabelle1 etwas kopiert und nun aber nicht in Tabelle3 des Datei „xy.xlsx“ sondern in Tabelle1.
    Aus Tabelle1 werden alle relevanten Werte geholt. Also für alle anderen Tabellen 2-xx im Datei „xy.xlsx“.
    Wie bekomme ich das hin? Noch ist es so gelöst, dass alle Buttons in Tabelle1 der Datei „xy.xlsx“ sich befinden, um die Benötigten Werte der jeweiligen Tabellen der Datei „xy.xlsx“ aus der Datei „AusgewählteMappe.xlsx" zu importieren. Ist aber umständlich, da man im Dokument „xy.xlsx“ hin und her springen muss um etwas zu importieren. Das geht sicher anders und ich hoffe du kannst mir da wieder weiter helfen. :)

    Code:
    PHP:
       Dim fdDialog As FileDialog
       Set wksTab 
    ActiveSheet
       Set fdDialog 
    Application.FileDialog(msoFileDialogFilePicker)
       
    With fdDialog
          
    .Filters.Add "Excel-Dateien""*.xlsx; *.xlsm; *.xls"1
          
    .InitialFileName "c:\NameF\"
          .Title = "
    Bitte Datei auswählen"
          .AllowMultiSelect = False         '<== Achtung!! kein Multiselect
          .ButtonName = "
    Auswahl"
          If .Show = -1 Then
             strDatei = .SelectedItems(1)
          End If
       End With
        ActiveSheet.Unprotect 'Password:="
    Passwortname"  'Blattschutz aus
       If strDatei <> "" Then
          Application.ScreenUpdating = False
          Workbooks.Open strDatei
          With Workbooks(Mid(strDatei, InStrRev(strDatei, "
    \") + 1)).Worksheets(1)
             
             .Range("
    U1:V99").Copy   'Kopiert Daten aus alter Version
             wksTab.Range("
    W1:X99").PasteSpecial Paste:=xlPasteValues
                      
          End With
          Workbooks(Mid(strDatei, InStrRev(strDatei, "
    \") + 1)).Close False
          Application.ScreenUpdating = True
       End If
       Set fdDialog = Nothing
       Set wksTab = Nothing
       
        Application.Goto Reference:="
    R1C1"
        Range("
    A6").Select
       

    End Sub
     
    leo4teo, 12. Januar 2016
    #15
Thema:

schaltfläche ... erstellen zum browsen zu einer Excel Datei

Die Seite wird geladen...
  1. schaltfläche ... erstellen zum browsen zu einer Excel Datei - Similar Threads - schaltfläche erstellen browsen

  2. Makro Schaltflaechen vervielfaeltigen sich....

    in Microsoft Excel Hilfe
    Makro Schaltflaechen vervielfaeltigen sich....: Hallo Zusammen, ich habe eine Exceldatei, die seit ein paar Wochen sehr langsam zu öffnen und zu bearbeiten ist. Zuvor war sie ca. 8MB gross, was sich verdoppelt hat. Ich habe alle Zellen die...
  3. Schaltfläche keine Funktion

    in Microsoft Access Hilfe
    Schaltfläche keine Funktion: Hallo, ich habe Freitag eine Datendank erstellt, mit einem Formular und einer Schaltfläche. Hat auch alles funktioniert. Heute nach dem Start der Datenbank hat die Schaltfläche keine Funktion...
  4. Zufällige Zahl wiedergeben mit Schaltfläche/ Button

    in Microsoft Excel Hilfe
    Zufällige Zahl wiedergeben mit Schaltfläche/ Button: Hallo zusammen Ich habe in einer Tabelle in den Zellen A1 - A2000 unterschiedliche Zahlen stehen. Nun möchte ich in einem anderen Tabellenblatt einen Button generieren. Wenn man auf diesen...
  5. Klick Schaltfläche Zelle markieren in der die Schaltfläche liegt

    in Microsoft Excel Hilfe
    Klick Schaltfläche Zelle markieren in der die Schaltfläche liegt: Hallo Zusammen Ich bin seit mehreren Tagen am suchen: Ich möchte mit vba (bin Neuling) die Zelle markieren/aktiv setzen die hinter der Schaltfläche liegt. Es gibt mehrere gleiche Schaltflächen...
  6. Schaltfläche erstellen und mit Makro belegen

    in Microsoft Excel Hilfe
    Schaltfläche erstellen und mit Makro belegen: hallo, folgendes Problem. ich möchte über eine Schaltfläche ein Diagramm erstellen, wodurch ich dies mit einem Makro belegen möchte. nun hab ich das mit makro aufzeichnen probiert, jedoch kommt...
  7. Outlook stürzt ab, wenn Sie auf die Schaltfläche "Regel erstellen" klicken

    in Microsoft Outlook Tutorials
    Outlook stürzt ab, wenn Sie auf die Schaltfläche "Regel erstellen" klicken: Outlook stürzt ab, wenn Sie auf die Schaltfläche "Regel erstellen" klicken Outlook 2016 Mehr... Weniger...
  8. eigene Schaltfläche erstellen

    in Microsoft Word Hilfe
    eigene Schaltfläche erstellen: :roll: In früheren Word-Versionen konnte ich bei der Erstellung von Makros für diese selbst definierte Schaltflächen erstellen. In der Word-Version 2007 habe ich bereits Makros erstellt, aber...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden