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

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"