aus text -datei lesen und in excel anzeigen

Dieses Thema im Forum "Excel und VBA" wurde erstellt von oliverkro, 23 Mai 2011.

  1. oliverkro

    oliverkro
    Expand Collapse
    New Member

    Registriert seit:
    23 März 2007
    Beiträge:
    51
    Zustimmungen:
    0
    hallo an alle, habe eine frage,
    kann mann aus einer geschlossenen text-datei daten auslesen, so wie wenn ich aus einer exceldatei daten aus lese.
    Diese daten mussten dann in einer userform in einem label angezeigt werden.

    oli
     
  2. SOH_Soft

    SOH_Soft
    Expand Collapse
    New Member

    Registriert seit:
    30 Dezember 2010
    Beiträge:
    25
    Zustimmungen:
    0
    @oliverkro

    Ja, Du kannst eine Textdatei auslesen und in Excel weiter verarbeiten.
    Du solltest hier die Exceldatei mit userform und die Textdatei als
    Beispiel oder Original hochladen.

    Gruß
    Sascha
     
  3. oliverkro

    oliverkro
    Expand Collapse
    New Member

    Registriert seit:
    23 März 2007
    Beiträge:
    51
    Zustimmungen:
    0
    hier die zwei dateien.

    wollte noch fragen, ob es möglich ist in einer listbox über die rechte maustaste ein zusatz fenster zu öffnen, wo drin steht z.b. kopieren in oder kopieren auf A:

    gruß oli
     

    Anhänge:

  4. Jenne

    Jenne
    Expand Collapse
    New Member

    Registriert seit:
    14 Januar 2007
    Beiträge:
    182
    Zustimmungen:
    0
    Hallo Oli,

    ich gebe dir mal ein paar Programmieransätze. Wenn du mehr benötigst, sag bescheid.

    Wie man eine Textdatei ausließt:
    Code:
    Option Explicit
    
    Private Sub CommandButton1_Click()
        Dim EingDat As String
        Dim Pfad As String
        Dim strZeile As String
        Dim Zeilen() As String
        Dim a As Integer
        Dim fso As Object
        Dim FileIn As Object
        Dim i As Integer
        
        Set fso = CreateObject("Scripting.FileSystemObject")
        Pfad = "C:\" 'dein Pfad
        EingDat = Pfad & "Test.txt" 'deine Textdatei
        
        Set FileIn = fso.OpenTextFile(EingDat, 1)
        
        a = 0
        Do While Not (FileIn.AtEndOfStream) 'durchlooped die Textdatei bis zum Ende
            strZeile = FileIn.Readline 'Die Textdatei wird Zeile für Zeile ausgelesen
            ReDim Preserve Zeilen(a) 'Reserviert den Speicherplatz der Arrayvariable neu
            Zeilen(a) = strZeile 'überträgt den Inhalt von strZeile nach Zeilen(a)
            a = a + 1
        Loop
        
        Set FileIn = Nothing
        Set fso = Nothing
    
    
        'Schreibt alles in die Listbox zurück
        For i = LBound(Zeilen) To UBound(Zeilen)
            Me.ListBox1.AddItem Zeilen(i)
        Next i
    End Sub
    Zu deiner Frage, ob es möglich ist ein Kontextmenü in der Listbox (rechtsklick) zu öffnen, kann ich dir leider nichts sagen. Ich weiß nicht, ob dies möglich ist.

    Ich hoffe, ich konnte dir ein wenig weiterhelfen.

    Gruß
    Jenne
     
  5. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.502
    Zustimmungen:
    15
    Hi,

    kleines Muster für ComboBox und ListBox mit KontextMenu.

    Den Code für die Aktionen mußt du natürlich selbst erstellen. :16:
     

    Anhänge:

  6. oliverkro

    oliverkro
    Expand Collapse
    New Member

    Registriert seit:
    23 März 2007
    Beiträge:
    51
    Zustimmungen:
    0
    Danke Jenne,
    ich habe es mal so gemacht.

    Private Sub ListBox2_Click()
    Sheets(1).Cells(1, 74).Formula = ListBox2.Value
    Range("CB1") = Range("CD1")
    Range("CC1") = Range("CE1")

    Dim DateiOrdner As String
    Dim Dateiname As String
    DateiOrdner = Range("BT1").Text
    Dateiname = Range("CB1").Text
    Dim xFn&
    Dim xText$
    ListBox5.Clear
    xFn = FreeFile
    Open "C:\CodesysProjekte\" & DateiOrdner & "\" & Dateiname & ".txt" For Input As xFn
    Do While Not EOF(1)
    Line Input #xFn, xText
    ListBox5.AddItem xText
    Loop
    Close xFn

    End Sub

    Was ich aber benötige ist, ich musste einzelne daten aus der text-datei anzeigen lassen in ein Label oder so.

    das heisst, wenn ich in der listbox was anklicke soll die info erst mal in einer listbox komplett angezeigt werden , so wie ich es oben habe und dann sollen noch einzelne infos aus der tex-datei in der userform angezeigt werden.
    z.b. zu letztz gespeichert,zuletzt zugriff, geändert.

    Ich danke schon mal oli
     
  7. oliverkro

    oliverkro
    Expand Collapse
    New Member

    Registriert seit:
    23 März 2007
    Beiträge:
    51
    Zustimmungen:
    0
    Hallo Ro sch,

    ich danke dir für die info.
    bin aber nicht weiter gekommen mit deinem testprogramm.
    habe versucht zu programmieren , wenn ich auf die rechte maustaste klicke das es weiter geht. aber ohne erfolg.

    kannst du mir vielleicht noch mals helfen und mir einen ansatz schreiben wie ich weiter komm.

    z.b. wenn ich in der listbox was anklicke und dann die rechte maustaste drück öffnet sich das menü und wenn ich dann auf kopieren drück soll diese
    datei z.b. auf a: kopiert werden.

    Beim Anklicken in der listbox wierd der name der datei in einer zelle übertragen
    z.b. Sheets(1).Cells(1, 74).Formula = ListBox2.Value


    mein Pfad für die datei ergibt sich aus:
    Dateiname = Range("BV1").Text
    DateiOrdner = Range("BT1").Text
    "C:\CodesysProjekte\" & DateiOrdner & "\" & Dateiname

    Danke schon mal
     
  8. DarkAngel012

    DarkAngel012
    Expand Collapse
    New Member

    Registriert seit:
    26 April 2011
    Beiträge:
    11
    Zustimmungen:
    0
    In diesem zusammenhang würde ich gerne Fragen ob es auch eine Möglichkeit gibt aus einem PDF Daten auszulesen?

    Ich schätze mal grob nein ^^

    mfg
     
  9. bst

    bst
    Expand Collapse
    <font color="#FF0000">Excel Moderator</font><br><i

    Registriert seit:
    26 Oktober 2004
    Beiträge:
    3.063
    Zustimmungen:
    1
  10. SOH_Soft

    SOH_Soft
    Expand Collapse
    New Member

    Registriert seit:
    30 Dezember 2010
    Beiträge:
    25
    Zustimmungen:
    0
    @oliverkro

    Schau mal vielleicht passt das!

    Gruß
    Sascha
     

    Anhänge:

  11. oliverkro

    oliverkro
    Expand Collapse
    New Member

    Registriert seit:
    23 März 2007
    Beiträge:
    51
    Zustimmungen:
    0
    hallo hat alles so weit geklappt.
    habe aber ein anderes problem gerade.
    Hier der Code:

    Sub MakroZumLöschen()

    Dim Dateiname As String 'BV1
    Dim DateiOrdner As String 'BT1 links
    Dim DateiOrdnerTeil2 As String 'BU1 rechts
    Dim DateinameTeil3 As String 'CF1 Links für zusatzdatei löschen
    Dim DateinameTeil2 As String 'CB1 Links
    Dim Ord As String
    Dim Antwort As String
    Dim Verz As String
    Dim fsoObject As Object

    If Range("BV1") = "" Then ' Abfrage ob eine Datei angeklickt ist
    MsgBox ("Löschen nicht möglich, keine Datei ausgewählt")
    Exit Sub

    Else
    Antwort = MsgBox("Sollen die Dateien im Quellverzeichnis gelöscht werden?" _
    & vbNewLine _
    & "Es werden nur Dateien gelöscht, die Makiert sind", vbYesNo)


    If Antwort = vbYes Then 'Kopieren mit Löschen
    'Dim fsoObject As Object
    Dateiname = Range("BV1").Text
    DateinameTeil2 = Range("CB1").Text
    DateinameTeil3 = Range("CF1").Text 'CF1 für links
    DateiOrdner = Range("BT1").Text
    DateiOrdnerTeil2 = Range("BU1").Text
    Set fsoObject = CreateObject("Scripting.FileSystemObject")
    Verz = "C:\CodesysProjekte\" & DateiOrdner & "\" & DateinameTeil3 & ".SYM"
    'fsoObject.DeleteFolder "C:\ProgSich\*"
    fsoObject.DeleteFile "C:\CodesysProjekte\" & DateiOrdner & "\" & Dateiname
    fsoObject.DeleteFile "C:\CodesysProjekte\" & DateiOrdner & "\" & DateinameTeil2 & ".txt"
    fsoObject.DeleteFile "C:\CodesysProjekte\" & DateiOrdner & "\" & DateinameTeil3 & ".SDB"
    fsoObject.DeleteFile "C:\CodesysProjekte\" & DateiOrdner & "\" & DateinameTeil3 & ".SYM"
    'Set fsoObject = Nothing

    MsgBox "Dateien wurden gelöscht"
    Else
    Exit Sub
    End If
    End If

    End Sub


    wollte noch dazu schreiben bzw. kopieren den folgenden code:

    'Listbox2 links aktualisiert

    DateiOrdner = Range("BT1").Text
    Dim Verz As String
    Verz = "C:\CodesysProjekte\" & DateiOrdner
    Dim datei
    Dim Ordner
    Dim Fso As Object
    Set Fso = CreateObject("Scripting.filesystemobject")
    Me.ListBox2.Clear
    For Each datei In Fso.GetFolder(Verz).Files
    If LCase(Fso.GetExtensionName(datei)) Like "pro" Then
    Me.ListBox2.AddItem datei.Name
    End If
    Next
    For Each Ordner In Fso.GetFolder(Verz).SubFolders
    Me.ListBox2.AddItem Ordner.Name
    Next

    aber es geht nicht , excel sagt immer

    Fehler beim Kompilieren:
    Unzulässige Verwendung desSchlüsselwort me

    Kann mir jemand helfen

    Danke
     
  12. SOH_Soft

    SOH_Soft
    Expand Collapse
    New Member

    Registriert seit:
    30 Dezember 2010
    Beiträge:
    25
    Zustimmungen:
    0
    @oliverkro

    Das verwenden von "me." außerhalb der userform fürht zum Fehler.
    Heißt wenn der Code in einem Modul oder eben außerhalb der userform
    sich befindet muss die Userformbezeichnung vorangestellt werden.

    z.B. MeineUserForm.ListBox2.Clear

    Gruß
    Sascha
     
  13. oliverkro

    oliverkro
    Expand Collapse
    New Member

    Registriert seit:
    23 März 2007
    Beiträge:
    51
    Zustimmungen:
    0
    wie müsste ich es denn bei mir jetzt schreiben .

    oli
     
  14. SOH_Soft

    SOH_Soft
    Expand Collapse
    New Member

    Registriert seit:
    30 Dezember 2010
    Beiträge:
    25
    Zustimmungen:
    0
    @oliverkro

    Den Namen Deiner userform findest Du im VBA Projektexplorer auf der linke Seite.

    Im Untermenü Formulare.

    Gruß
    Sascha
     
  15. oliverkro

    oliverkro
    Expand Collapse
    New Member

    Registriert seit:
    23 März 2007
    Beiträge:
    51
    Zustimmungen:
    0
    ich habe es jetzt so geschrieben:
    DateiOrdner = Range("BT1").Text
    Dim Verz As String
    Verz = "C:\CodesysProjekte\" & DateiOrdner
    Dim datei
    Dim Ordner
    Dim MeineUserForm As Object
    Dim Fso As Object
    Set Fso = CreateObject("Scripting.filesystemobject")
    MeineUserForm.ListBox2.Clear
    For Each datei In Fso.GetFolder(Verz).Files
    If LCase(Fso.GetExtensionName(datei)) Like "pro" Then
    MeineUserForm.ListBox2.AddItem datei.Name
    End If
    Next
    For Each Ordner In Fso.GetFolder(Verz).SubFolders
    MeineUserForm.ListBox2.AddItem Ordner.Name
    Next

    und es kommt der fehler
    Laufzeitfehler 91
    Objektvariable oder with-bockvariable nicht festgelegt

    und wenn ich es so schreibe,

    DateiOrdner = Range("BT1").Text
    Dim Verz As String
    Verz = "C:\CodesysProjekte\" & DateiOrdner
    Dim datei
    Dim Ordner
    Dim MeineUserForm9 As Object
    Dim Fso As Object
    Set Fso = CreateObject("Scripting.filesystemobject")
    MeineUserForm9.ListBox2.Clear
    For Each datei In Fso.GetFolder(Verz).Files
    If LCase(Fso.GetExtensionName(datei)) Like "pro" Then
    MeineUserForm9.ListBox2.AddItem datei.Name
    End If
    Next
    For Each Ordner In Fso.GetFolder(Verz).SubFolders
    MeineUserForm9.ListBox2.AddItem Ordner.Name
    Next

    kommt die gleiche.
     
  16. SOH_Soft

    SOH_Soft
    Expand Collapse
    New Member

    Registriert seit:
    30 Dezember 2010
    Beiträge:
    25
    Zustimmungen:
    0
    @oliverkro

    Heißt den Deine userform "MeineUserForm9" ?
    In der Regel heißt eine Standarduserform so:

    z.B. UserForm1, UserForm2 ......... UserForm10 etc

    Gruß
    Sascha
     
Die Seite wird geladen...

Diese Seite empfehlen