2. Versuch: Daten aus geschlossener Datei auslesen
 |
Betrifft: 2. Versuch: Daten aus geschlossener Datei auslesen
von: Frank Z. (2.Versuch)
Geschrieben am: 02.09.2004 19:40:36
Hallo, wer kann mir helfen, ich habe folgendes Problem:
Ich möchte mit der Maske-Ranking (=Userform) per VBA = Daten aus der Ranking.xls Daten auslesen bzw. zugreifen; Ich möchte aber die Ranking.xls nicht jedes mal öffnen und schließen, sondern die Datei Ranking.xls soll geschlossen bleiben; Die Ranking.xls ist eine "Freigegebene" Datei, auf diese Datei sollen mehrere User per vordefinierter Userform gleichzeitig zugreifen;
Ich bekomme es nur hin, wenn ich die Datei kurz öffne und wieder schließe und das ist nicht mein Ziel. Wenn die Maske-Ranking.xls sich die Daten nach Auswahl Userform holt kommt zusätzlich immer die Abfrage Speicher JA / NEIN / Abbrechen und das ist für einen Anwendungs-User störend und ist mir zu zeitaufwendig bzw. kann dies zu Verunsicherungen führen.
Bitte schaut "Euch" die beiden Dateien doch einfach mal an um mir zu helfen !
https://www.herber.de/bbs/user/10417.xls
https://www.herber.de/bbs/user/10418.xls
Vielen Dank für weitere Hilfe
mit freundlichen Grüßen
Frank
Hier die VBA-Anwendung die ich hierzu geschrieben habe:
(Das war schon sehr schwer für mich)
Private Sub cmdStart_Click()
On Error Resume Next ' keine Fehlerbehandlung
Dim Book As Workbook
Dim Save As Workbook
Dim xs As Worksheet
Dim i As Integer
Dim StillCode As String
Dim StillCodeIdx As Integer
Dim Stilltext As String ' Lieferant
Dim Stilltext1 As String ' Maschine
Dim Stilltext2 As String ' Anzahl Farben
If txtLieferant = "" Then
MsgBox (" Achtung: Daten-Eingabe ist nicht vollständig! ")
End If
Stilltext = "???"
StillCode = txtLieferant.Text
Set Book = Workbooks.Open("c:\VBA-Smurfit\Ranking.xls")
Set xs = Application.Sheets.Item("Ranking")
If Not xs Is Nothing Then ' falls es diese Datei und Tabellenblatt gibt
StillCodeIdx = 1 ' Anpassen Index
For i = 1 To 16000 ' Anpassen 16000 max. Anzahl Lieferantendatensatz
If xs.Cells(i, StillCodeIdx) = StillCode Then
Stilltext1 = xs.Cells(i, StillCodeIdx + 1) ' Hurra gefunden !!!
Stilltext2 = xs.Cells(i, StillCodeIdx + 2)
End If
Next i
End If
txtMaschine.Text = Stilltext1
txtFarben.Text = Stilltext2
Book.Save
Book.Close
End Sub
 |
Betrifft: erst öffnen, dann lesen
von: Björn B.
Geschrieben am: 05.09.2004 01:47:28
Hallo Frank,
aus einer geschlossenen Datei Daten zu lesen, ohne die betreffende Datei zu öffnen, geht nicht.
Dein Fehler mit dem Speichern-Dialog trat bei mir nicht auf. Möglicherweise hilft es dir, wenn du die Zeile "Book.Save" löschst und die Zeile "Book.Close" durch "Book.Close SaveChanges:=False" ersetzt. Anführungszeichen sind wegzulassen.
Gruß
Björn
Beiträge aus den Excel-Beispielen zum Thema "2. Versuch: Daten aus geschlossener Datei auslesen"