MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 16.05.2018, 06:23   #1
Esche
Neuer Benutzer
Neuer Benutzer
Standard Excel2010 - Datei suchen und Daten einlesen

Hallo zusammen

Kann mir bitte jemand weiterhelfen?

Ich habe 2 Makro erstellt die ich gerne zusammenfügen möchte.
Einerseits habe ich das sucher einer Txt-Datei und anderseits das einlesen der Daten.

Kann mann diese zwei so zusammenfügen, dass man über ein Button die Datei suchen kann und dann gleich den Inhalt in die Excel einfügen (gem. den Makro einlesen)
Code:

Sub DateiAuswaehlen()
Dim varDatei As Variant

varDatei = Application.GetOpenFilename(".txt-Datei,*.txt?,Alle Dateien,*.*", 1, "Datei auswählen")
If varDatei = False Then
    MsgBox "Das Dateiauswählen wurde abgebrochen.", vbInformation, p_cstrAppName
Else
    MsgBox "Ausgewählte Datei:" & vbCrLf & varDatei, vbInformation, p_cstrAppName
   
End If
End Sub

Sub einlesen()
Z = Sheets(1).UsedRange.Rows.Count  'sucht die letzte volle Zelle in Spalte A)

 Open "C:ABC 1234.txt" For Input As #1
    Do While Not EOF(1)
        Line Input #1, temp
        'Sheets(1).Cells(Z, 1) = Replace(temp, vbTab, ",")    'alle Tab in ; umwandeln
        Sheets(1).Cells(Z, 1) = Replace(temp, vbColon, ",")
        Z = Z + 1
    Loop
    Close #1
    For j = 1 To Z
        Text = Split(Cells(j, 1), ",")
        For i = 0 To UBound(Text)
            Cells(j, i + 1) = Text(i)
        Next
    Next
End Sub
Vielen Dank für die Hilfe
Esche ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 06:38   #2
MisterBurns
MOF Koryphäe
MOF Koryphäe
Standard

Ohne deinen Code gelesen bzw. interpretiert zu haben:

Code:

Sub ausfuehren()
Call DateiAuswaehlen
Call einlesen
End Sub

__________________

Schöne Grüße
Berni
MisterBurns ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 08:01   #3
Beverly
MOF Guru
MOF Guru
Standard

Hi,

schreibe den gesamten Code in ein einziges Makro.


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 12:34   #4
Esche
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Vielen Dank für eure Hilfe
Was ich jetzt nicht weiss ist was ich jetzt hier eingeben muss damit er diese Datei zum öffnen auf findent
Code:

Open "C:ABC 1234.txt" For Input As #1
Oder bin hier der falschen Meinung das er damit auf den Pfad zugreifen sollte der im Vorfeld definiert wurde?
Nochmals vielen Dank.
Esche ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 12:59   #5
Beverly
MOF Guru
MOF Guru
Standard

Ersetze in deiner Sub DateiAuswählen() die Zeile


Code:

MsgBox "Ausgewählte Datei:" & vbCrLf & varDatei, vbInformation, p_cstrAppName

durch den kompletten Code aus der Sub einlesen().


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 21:05   #6
Esche
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo

Vielen Dank
Nach langem hin und her habe ich es doch noch geschaft
ich musste in paar Befehle entfernen jetzt sieht es so aus.
Code:

Sub ausfuehren()
Call DateiAuswaehlen
Call einlesen
End Sub
Sub DateiAuswaehlen()
Dim varDatei As Variant

varDatei = Application.GetOpenFilename(".txt-Datei,*.txt?,Alle Dateien,*.*", 1, "Datei auswählen")
If varDatei = False Then
    MsgBox "Das Dateiauswählen wurde abgebrochen.", vbInformation, p_cstrAppName
Else
   
   Z = Sheets(1).UsedRange.Rows.Count  
   
einlesen
    Do While Not EOF(1)
       
        Sheets(1).Cells(Z, 1) = Replace(temp, vbColon, ",")   
       
        Z = Z + 1
    Loop
    Close #1
    For j = 1 To Z
        Text = Split(Cells(j, 1), ",")
        For i = 0 To UBound(Text)
            Cells(j, i + 1) = Text(i)
        Next
    Next

End If
End Sub
Jedoch bekomme ich nach der Eingabe einen Laufzeitfehler '52'
Dateiname oder -nummer falsch
und dann bleibt die Markierung auf diesem Codeabschnitt stehen


Code:

Do While Not EOF(1)
Waum ist das so? da lassen mich meine Kentnisse im stich.
Esche ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 07:55   #7
Beverly
MOF Guru
MOF Guru
Standard

Hi,

also ich würde das Makro so schreiben:

Code:

Sub Ausfuehren()
    Dim varDatei As Variant
    Dim Z As Long
    varDatei = Application.GetOpenFilename(".txt-Datei,*.txt?,Alle Dateien,*.*", 1, "Datei auswählen")
    If varDatei = False Then
        MsgBox "Das Dateiauswählen wurde abgebrochen.", vbInformation, p_cstrAppName
    Else
        Z = Sheets(1).UsedRange.Rows.Count  'sucht die letzte volle Zelle in Spalte A)
        Open varDatei For Input As #1
        Do While Not EOF(1)
            Line Input #1, temp
            'Sheets(1).Cells(Z, 1) = Replace(temp, vbTab, ",")    'alle Tab in ; umwandeln
            Sheets(1).Cells(Z, 1) = Replace(temp, vbColon, ",")
            Z = Z + 1
        Loop
        Close #1
        For j = 1 To Z
            Text = Split(Cells(j, 1), ",")
            For i = 0 To UBound(Text)
                Cells(j, i + 1) = Text(i)
            Next
        Next
    End If
End Sub

Deinen Code im Else-Zweig habe ich nicht getestet - es ist der aus deiner Sub einlesen() aus dem Eröffnungsbeitrag, der ja anscheinend funktioniert.



GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2018, 09:13   #8
Esche
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo

Genau das habe ich gesucht.
Vielen Dank.
Esche ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.