Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Füllen von Textboxen durch andere Datei

Betrifft: Füllen von Textboxen durch andere Datei von: Knoof
Geschrieben am: 05.08.2014 10:31:14

Hallo Forum,

In meiner UserForm1 habe ich zwei Textboxen die leer sind. nun sollen diese Textboxen durch klick eines Buttons gefüllt werden, allerdings mit dem Text aus einer anderen Excel Datei.

Also: Klick auf Button - Textbox1 & Textbox2 füllen sich sich automatisch mit Inhalt aus Exceldatei2 Zelle A1(für textbox1) und Zeille B1(für textbox2).

Kann mir da wer helfen?

Gruß,
Knoof

  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Hajo_Zi
Geschrieben am: 05.08.2014 10:36:33

Textbox1 = Workbooks("Exceldatei.xlsm").Worksheets(1).Range("A1")

GrußformelHomepage


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Knoof
Geschrieben am: 05.08.2014 11:07:25

Danke für die schnelle Antwort.

Index außerhalb des gültigen Bereichs.

Muss ich keinen Pfad oder ähnliches für die Quelldatei festlegen?


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Hajo_Zi
Geschrieben am: 05.08.2014 11:08:31

ich bin davon ausgegangen die ist auf. Nur dann geht es.

Gruß Hajo


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Knoof
Geschrieben am: 05.08.2014 11:09:29

Nene, die soll schon geschlossen bleiben. Sorry.


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Hajo_Zi
Geschrieben am: 05.08.2014 11:13:20

auslesen aus einer geschlossen Datei ist komplizierter.

Option Explicit

Public Function GetDataClosedWB(SourcePath As String, _
    SourceFile As String, sourceSheet As String, _
        SourceRange As String, TargetRange As Range) As Boolean
    'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
    'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
    '© t.ramel@mvps.org
    ' wird durch die HoleDaten aufgerufen
    Dim strQuelle       As String
    Dim Zeilen          As Long
    Dim Spalten         As Byte
    On Error GoTo InvalidInput
    strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
    Zeilen = Range(SourceRange).Rows.Count
    Spalten = Range(SourceRange).Columns.Count
    With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
        .Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
        .Value = .Value
    End With
    GetDataClosedWB = True
    Exit Function
InvalidInput:
    MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from  _
closed Workbook"
    GetDataClosedWB = False
End Function

Public Sub HoleDaten()
    ' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen
    Dim Pfad            As String
    Dim Dateiname       As String
    Dim Blatt           As String
    Dim Bereich         As String
    Dim Ziel            As Range
    Pfad = "L:\Eigene Dateien\Hajo\Internet\Test\2009\"
    Dateiname = "Beispiel Forum 30.xlsm" ' aus welcher Datei soll er holen?
    Blatt = "Tabelle1"  ' von welcher Tabelle soll er holen?
    Bereich = "A1:B9"   ' aus welchem Bereich soll er holen?
    Set Ziel = ActiveSheet.Range("A1")  ' in welchen Bereich soll er kopieren? Genauer gesagt:  _
Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
    If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
        MsgBox "Daten importiert"
    End If
End Sub
Gruß Hajo


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Knoof
Geschrieben am: 05.08.2014 11:34:36

Irgendwie krieg ichs nich hin.
Habe mich grade in meiner aussage vertan. Die textfelder sollen nich durch einen Button gefüllt werden, sondern wenn die UserForm gestartet wird.
Wo muss ich deine Sub denn dann reinpacken?


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Hajo_Zi
Geschrieben am: 05.08.2014 11:50:13

Du wolltest es nicht einfach haben.
Activate Ereignis der Userform.

Gruß Hajo


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Daniel
Geschrieben am: 05.08.2014 11:51:33

Einfache Lösungen wurden ja auch im Tread schon genannt.
Gruß Daniel


  

Betrifft: AW: Füllen von Textboxen durch andere Datei von: Daniel
Geschrieben am: 05.08.2014 10:44:00

Hi

dazu würde in einem freien Bereich einer Tabelle oder auf einem extra Tabellenblatt (Bspw Blatt "xxx") per Formel einen externen Zellbezug auf die Zellen dieser Datei legen:

='Pfad von Exceldatei2[Name Exceldatei2.xlsx]Tabelle1'!A1

und dann im Button den Code:
Textbox1.Text = Sheets("xxx").Range("A1").Value

um den Wert der Formel zu lesen.

hat den Vorteil, dass es egal ist, ob die Excledatei2 geöffnet oder geschlossen ist, da Formeln auf geschlossene Dateien zugreifen können, mit VBA ist das deutlich aufwendiger.

Sollte die Datei hingegen immer geöffnet sein, könntest du die Werte einfach übernehmen mit:
Textbox1.Text = Workbooks("Exceldatei2.xlsx").Sheets("Tabelle1").Range("A1").Value
Gruß Daniel
Ps: textbox-, datei- und Blattnamen ggf anpassen.


 

Beiträge aus den Excel-Beispielen zum Thema "Füllen von Textboxen durch andere Datei"