Daten von Excel in VB einlesen

pete_redman

Grünschnabel
Hallo zusammen!

Wie kann ich einen Zahlenwert der in einer Zelle z.B.Zelle ($B$12) in Excel steht
auf der Oberfläche von VB anzeigen lassen?
Wie lautet der Code.
Vielen Dank im Voraus.

Gruß
Pete
 
Hallo,

ich habe das gleiche Problem wie der Autor dieses Beitrags und mir hilft der Link leider viel nicht weiter
http://www.activevb.de/tipps/vb6tipps/tipp0050.html
da ich in meiner Visual Studio Version die Windows Form CommonDialog1 nicht habe, ich bekomme die Fehlermeldung CommonDialog1 wurde nicht deklariert. Deshalb kann ich den Quellcode nicht ausprobieren und allein vom anschauen verstehe ich ihn nicht vollständig, ich bin auch noch ein VB Neuling.

Es wäre echt nett wenn mir einer erklären kann wie im VB Code festlegen kann auf welche Excel Datei auf meinem PC zugegriffen werden soll. Wie ich sie dann verwenden kann nehme ich an durch den Link verstanden zu haben.

danke
mfg
benni
 
Hi!

da ich in meiner Visual Studio Version die Windows Form CommonDialog1 nicht habe, ich bekomme die Fehlermeldung
Keine Panik! Das Control hast du, da bin ich mir sicher! ;)

Das CommonDialog Control musst du erst in dein Projekt einbinden.
Dazu gehst du im Menü unter Projekt -> Komponenten, machst bei "Microsoft Common Dialog Control 6.0" einen Haken und klickst auf OK.
Jetzt wirst du festellen, dass du in deiner Steuerelementliste ein weiteres Icon dazu bekommen hast. Das ist das CommonDialog Control.
Klicke es an und setzte es irgenwohin auf dein Form (ist im Betrieb dann unsichtbar!).

Jetzt kannst du den Code im Beispiel anwenden. Ich habe hier auch mal ein paar Zeilen zusammen geschrieben.
Mein Frame besteht aus einem Button (cmdBrowse) und einer Textbox (txtAnzeigen).
Das CommonDialog ist eigentlich der Standard-Windowsdialog für Öffnen/Speichern.
Code:
Private Sub cmdBrowse_Click()
Dim oExl As Object

Set oExl = CreateObject("Excel.Application")
oExl.Visible = True

On Error Resume Next
  With CommonDialog1
    .CancelError = True
    .Filter = "Excel-Files (*.xls)|*.xls" ' Filter setzen, nur Excel anzeigen

   ' Dialogfeld Öffnen anzeigen
    .ShowOpen
     If .FileName <> "" Then
       oExl.Workbooks.Open .FileName  'Ausgewähltes Excel-File wird geöffnen..
       oExl.Worksheets("Tabelle1").Activate  '.. und Tabelle1 aktiviert
   
      txtAnzeigen = oExl.ActiveSheet.Range("A1").Value  ' Inhalt der Zelle A1 wird ausgegeben.
     
    'schließen der Excelliste
      ActiveWorkbook.Close SaveChanges:=True  ' Änderungen werden gespeichert
      oExl.Quit
      Set oExl = Nothing
      
  End If
 End With
End Sub

Hoffe das hilft dir weiter! :)

EDIT:
Du musst nicht zwingend das CommonDialog benutzten:
oExl.Workbooks.Open "C:\temp\Beispiel"
So funktioniert es auch!


Viele Grüße,
Jacka
 
Der CommonDialog ist ja nur dazu da, dass du das Excel-File bequem auswählen kannst. Wenn du (aus welchen Gründen auch immer) den CommonDialog nicht verwenden kannst, bau die Prozedur Command1_Click einfach so um:
Visual Basic:
Private Sub Command1_Click()
 Dim sFilename$
 sFilename = InputBox("Welche Excel-Datei?")

 If sFilename <> "" Then
  Excel.Workbooks.Open sFilename
  LFlag = True
  Call Command2_Click
 End If
End Sub
In dem Fall hier wird über eine InputBox abgefragt, welche Datei geöffnet werden soll. Es muss in diesem Fall der Dateinamen inklusive des Pfades eingegeben werden.


Der Doc!
 
Hallo,
ja schön. Aber wie bekomme ich dieses Bsp. in Visual Basic 2005 Express Edition?

Ach ja! Da bin ich wohl (mal wieder im falschen Forum gelandet, VB und VB.NET ist ja nicht das gleiche!) :mad:
Ich kam halt über google hier rein, sorry. Dieses VB Chaos, ist doch nicht zum aushalten!
 
Zuletzt bearbeitet:
Ah! Gut erkannt! :)

Es müsste aber ähnlich funktionieren.
Nur für der Filedialog ist anders. Du musst nur ein OpenFileDialog einfügen.

Schau mal:
Code:
 Private Sub cmdExcelauslesen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExcelauslesen.Click

        Dim xlApp As Excel.Application
        Dim xlMappe As Excel.Workbook
        Dim xlBlatt As Excel.Worksheet
        Dim wert As Variant

        With OpenFileDialog1
            .Filter = "Excel-Mappen (*.xls)|*.xls|Alle Dateien (*.*)|*.*"
            .FilterIndex = 1
            .InitialDirectory = "D:\Users\Test"
            .Title = "Excel-Files"

       If .ShowDialog() = DialogResult.OK Then              
          xlApp = New Excel.Application
          xlMappe = xlApp.Workbooks.Open(.FileName)
          xlBlatt = xlMappe.Worksheets(1)

          wert =  xlBlatt.Range("A1").Value 

         xlMappe.Close()

          xlApp = Nothing
          xlMappe = Nothing
          xlBlatt = Nothing
  
      End If
        End With  

    End Sub


Viele Grüße,
Jacka
 

Neue Beiträge

Zurück