Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nochmals: XLS-Datei auswählen, Daten auslesen

Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 18:05:00
bully
Hallo Excel-Freunde,
in meiner Excel-Datei (Auswertung.xls) öffne ich mit unten stehendem Code die Daten-Datei und importiere die Daten. Nun möchte ich, dass beim Öffnen der Daten-Datei eine Dialogbox mit dem aktuellen Pfad und den darin enthaltenen xls Datein angezeigt wird, damit bei mehreren Daten-Dateien(Bsp1.xls; Bsp2.xls) die gewünschte Datei ausgewählt werden kann und die Daten aus dieser Datei dann importiert werden.
If MsgBox("Neue Daten importieren - Ja/Nein", vbYesNo + vbQuestion, " nur zur Sicherheit.") = vbYes Then
If MsgBox("Quell Diskette in Laufwerk A einlegen", _
vbOKCancel + vbQuestion, " nur zur Sicherheit.") = vbOK Then
Else
Worksheets("Start").Activate
Exit Sub
End If
Else
Worksheets("Start").Activate
Exit Sub
End If
Workbooks.Open("A:\Bsp.xls").Activate
Columns("A:AE").Select
Selection.Copy
Workbooks("Auswertung").Activate
Worksheets("Daten").Activate
ActiveSheet.Paste
Dim lLetzte As Long ' die letzte belegte Zeile
Dim aVar() ' ein Array zur Datenaufnahme
Dim iIndx_1 As Integer ' Array-Index der 1. Dimension - Zeilen
Dim iIndx_2 As Integer ' Array-Index der 2. Dimension - Spalten
lLetzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
aVar = Range("A1:AE" & lLetzte) ' die Daten an den Array übergeben
For iIndx_1 = 1 To lLetzte ' ab 1 bis zu letzten Zeile
For iIndx_2 = 1 To 5 ' ab Spalte 1 bis 5
If Not IsEmpty(aVar(iIndx_1, iIndx_2)) Then
If IsNumeric(aVar(iIndx_1, iIndx_2)) Then
aVar(iIndx_1, iIndx_2) = CDbl(aVar(iIndx_1, iIndx_2))
ElseIf IsDate(aVar(iIndx_1, iIndx_2)) Then
aVar(iIndx_1, iIndx_2) = CDate(aVar(iIndx_1, iIndx_2))
End If
End If
Next iIndx_2
Next iIndx_1
Range("A1:AE" & lLetzte) = aVar ' den Array zurückübertragen
Application.DisplayAlerts = False
Workbooks("Bsp.xls").Close
Application.DisplayAlerts = True
Worksheets("Daten").Visible = False
Worksheets("Start").Activate
von selli habe ich heute Nachmittag folgenden Code erhalten:

Sub pick_2()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "Wählen Sie bitte ddie gewünschte Datei aus!"
.ButtonName = "Übernehmen"
.InitialFileName = ThisWorkbook.Path
'.Show
End With
If fd.Show = -1 Then
cells(1,1) = fd.SelectedItems(1)
End If
End Sub

jetzt habe ich das Problem, dass beide Codes einzeln funktionieren, aber den Mix bringe ich nicht zustande.
Kann mir jemand weiter helfen?
Gruss bully

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 20:54:00
firmus
Hi Bully.
keep cool.
Schau in Deinen ersten Eintrag, den Du eröffnet hast, dort habe ich ein Beispiel für die
Dateiauswahl eingetragen.
Von Selly hast Du den Dialog erhalten.
Mit ein bischen Trail and Error (F8-taste) solltest Du ein sinnvolles Ergebnis erhalten.
Falls es immer noch "klemmt" schreib noch mal.
Gruß,
Firmus

AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 21:21:48
bully
Hi Frimus,
es tut mir leid, aber ich verstehe, bei deiner Ersten Antwort nur Bahnhof!
Aus deiner obigen Antwort schliesse ich nun, dass ich statt zwei Cods, deren drei zusammenbasteln muss? Ich kriegs bei zweien ja schon nicht hin!
Da bin ich als VBA-Anfänger am Ende meines Lateins :-(
Oder kann ich mit weitergehender Hilfe rechnen?
Gruss bully

Anzeige
AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 22:30:03
Ramses
Hallo
probier mal

Sub Demo()
If MsgBox("Neue Daten importieren - Ja/Nein", vbYesNo + vbQuestion, " nur zur Sicherheit.") =  _
vbYes Then
If MsgBox("Quell Diskette in Laufwerk A einlegen", _
vbOKCancel + vbQuestion, " nur zur Sicherheit.") = vbOK Then
Else
Worksheets("Start").Activate
Exit Sub
End If
Else
Worksheets("Start").Activate
Exit Sub
End If
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "Wählen Sie bitte ddie gewünschte Datei aus!"
.ButtonName = "Übernehmen"
.InitialFileName = ThisWorkbook.Path
'.Show
If .Show = -1 Then
Workbooks.Open .SelectedItems(1)
Else
'Abbrechen
Exit Sub
End If
'Workbooks.Open("A:\Bsp.xls").Activate
Columns("A:AE").Select
Selection.Copy
Workbooks("Auswertung").Activate
Worksheets("Daten").Activate
ActiveSheet.Paste
Dim lLetzte As Long ' die letzte belegte Zeile
Dim aVar() ' ein Array zur Datenaufnahme
Dim iIndx_1 As Integer ' Array-Index der 1. Dimension - Zeilen
Dim iIndx_2 As Integer ' Array-Index der 2. Dimension - Spalten
lLetzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
aVar = Range("A1:AE" & lLetzte) ' die Daten an den Array übergeben
For iIndx_1 = 1 To lLetzte ' ab 1 bis zu letzten Zeile
For iIndx_2 = 1 To 5 ' ab Spalte 1 bis 5
If Not IsEmpty(aVar(iIndx_1, iIndx_2)) Then
If IsNumeric(aVar(iIndx_1, iIndx_2)) Then
aVar(iIndx_1, iIndx_2) = CDbl(aVar(iIndx_1, iIndx_2))
ElseIf IsDate(aVar(iIndx_1, iIndx_2)) Then
aVar(iIndx_1, iIndx_2) = CDate(aVar(iIndx_1, iIndx_2))
End If
End If
Next iIndx_2
Next iIndx_1
Range("A1:AE" & lLetzte) = aVar ' den Array zurückübertragen
Application.DisplayAlerts = False
Workbooks("Bsp.xls").Close
Application.DisplayAlerts = True
Worksheets("Daten").Visible = False
Worksheets("Start").Activate
End Sub


Gruss Rainer

Anzeige
AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 22:53:20
bully
Hi Rainer,
Danke für deinen konstruktiven Vorschlag. Ich bekomme beim Ausführen des Codes folgenden Fehler:
Fehler beim Kompilieren:
End With erwartet
Ich habe versucht ein End With einzusetzen, leider ohne Erfolg. Ich denke du kannst mir sagen wo es hingehört?
Gruss bully

AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 22:56:41
Ramses
Hallo
änder die Zeile
Else
'Abbrechen
Exit Sub
End If
'Workbooks.Open("A:\Bsp.xls").Activate
in
Else
'Abbrechen
Exit Sub
End If
End With
'Workbooks.Open("A:\Bsp.xls").Activate
Gruss Rainer

AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 23:05:57
bully
Hi Rainer,
jetzt habe ich bei Columns("A:AE").Select den Laufzeitfehler 1004 Anwendungs- oder Obiektdefinierter Fehler
Gruss bully

Anzeige
AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 23:18:00
Ramses
Hallo
ist die Datei geöffnet ?
Gruss Rainer

AW: Nochmals: XLS-Datei auswählen, Daten auslesen
09.08.2007 23:20:00
bully
Hi Rainer,
ja, die Datei ist geöffnet.
Gruss bully

Noch offen...
09.08.2007 23:26:40
Ramses
Hallo
Sorry,.. nicht nachvollziehbar.
Habs gerade getestet und funktioniert.
Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige