Announcement

Collapse
No announcement yet.

Daten in eine Zelle einer Excel-Datei schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten in eine Zelle einer Excel-Datei schreiben

    Hallo zusammen,

    kann mir jemand einen Tipp geben, wie ich Daten (Zahlen oder Text) in eine Zelle einer Exceldatei schreiben kann, wobei ich aber die Zelle im Programm vorwählen möchte.

    Wie geht das, wenn ich einen Bereich von Zellen an Excel übergeben will?

    Und wie kann ich bestimmte Zellen auslesen?

    Das Schreiben in die Zelle A1 klappt ja schon einfach mit dem Befehl:
    PrintLine(Datei, "Test") danach steht in A1 dann "Test".
    Aber mehr weiß ich dazu leider nicht.

    Ich muss noch erwähnen, dass ich in VB 2005 Express programmiere.

    Im Voraus danke für Eure Hilfe!

    Wenn mir einer die Lösung nennt sehe ich so aus:

    vG

    fredyx

  • #2
    Servus!

    Das ist ganz einfach.

    Ich geh mal davon aus das du das alles schon gemacht hast ich schreibs trotzdem nochmal.

    1. Verweis auf Microsoft Excel hinzufügen (Wichtig!)


    2. Variablen:
    Dim exWB As Excel.Workbook
    Dim exWS As Excel.Worksheet
    Dim exAPP As Excel.Application


    3. Variablen füllen (leeres Excel Dokument)
    exAPP = New Excel.Application
    exWB = exAPP.Workbooks.Add()
    exWS = CType(exWB.Worksheets.Item(1), Excel.Worksheet)


    -----> Wenn du eine Excel datei öffnen willst dann:
    exAPP = New Excel.Application
    exWB = exAPP.Workbooks.open("c:\test.xls")
    exWS = CType(exWB.Worksheets.Item(1), Excel.Worksheet)


    4. in Zelle schreiben
    exWS.Cells.Item(3, 3) = "Das ist C3"
    -----> oder (kann ich hier leider nicht testen geht aber):
    exWS.range("C3") = "Das ist C3"


    Tipp: für Excel Formatierungen schalt doch einfach das Excel Marko ein und
    tu manuell das, was du später über Code lösen willst und schau dir das
    Makro dann an, ist zwar in VBA geschrieben, hilft aber oft zu einer Lösung!

    P.S. Einen Bereich von Excel kannst du auswählen indem du
    exWS.Range("A1", "Z1")
    schreibst

    Comment


    • #3
      Hallo Jesus.online,

      danke für die ausführliche Hilfe. Ich werde sie ausprobieren und Dir das Ergebnis schreiben.

      Gruß

      fredyx

      Comment


      • #4
        Hall Jesus.online,

        ich hab eas probiert, aber ich glaube, die Befehlsfolge ist für VB06 und nicht VB 2005 Express.

        Eine der vielen Fehlermeldungen lautet z.b
        Der Typ "Excel.Workbook ist nixht definiert"

        Weißt Du evtl. auch wie das in VB 2005 aussehen würde?

        Gruß

        fredyx

        Comment


        • #5
          moin,

          schon mal google probiert?

          http://www.galileocomputing.de/openb...msvb040000.htm

          war das erste ergebnis

          Comment


          • #6
            Naja dann fehlt halt noch der Verweis oder?
            mach mal ganz oben drüber noch nen import

            Imports Microsoft.Office.Interop

            Ich kann den Code hier leider nicht ausprobieren bin daheim hab kein Excel,
            machs aber immer so! Und ja in VS 2005 ^^ ist ja egal wo, ist ja vb.net

            Comment


            • #7
              Originally posted by Raik Cebulla View Post
              moin,

              schon mal google probiert?

              http://www.galileocomputing.de/openb...msvb040000.htm

              war das erste ergebnis
              Ja, kannte ich schon, ist leider auch nur für VB06. Zumindest bei meiner Excel 2000 Version. Evtl. ist das bei neueren ja anders.

              Schade.

              Trotzdem danke.

              Gruß

              fredyx

              Comment


              • #8
                Originally posted by jesus.online View Post

                Imports Microsoft.Office.Interop
                Damit kommt VB 2005 leider auch nicht klar.

                Gruß

                fredyx

                Comment


                • #9
                  Originally posted by fredyx View Post
                  Damit kommt VB 2005 leider auch nicht klar.

                  Gruß

                  fredyx
                  Das hängt ja nicht mit der Entwicklungsumgebung zusammen,
                  ich benutze auch VS 2005.

                  Hast du den Verweis auf Microsoft Office Excel hinzugefügt ja/ nein?

                  Denn die Fehlermeldung die du beschrieben hast ist genau darauf zurückzuführen.

                  Ich beschreib nochmal kurz wie das mit den Verweisen geht:

                  1. Öffne das Projekt
                  2. Klicke im Projektmappen-Explorer (ganz rechts) auf den Projektnamen mit Rechtsklick, und wähle "Eigenschaften" -->




                  Dann geh auf den Reiter "Verweise" -> "hinzufügen" -> Reiter "COM" -> "Microsoft Excel x.0" -> "OK"



                  Ich kann dir leider nicht genau sagen wie der Verweis heißt, ich weis es ist irgendwie "Microsoft Office Excel X.0"

                  So und jetzt mach nochmal alles was ich gesagt habe, dann klappts auch!

                  Wäre cool wenn du heute noch schreiben könntest!

                  Gruß
                  Zuletzt editiert von jesus.online; 27.08.2008, 00:10.

                  Comment


                  • #10
                    So bin off für heute, wenn du ICQ hast adde mich doch mal dann können wir das mal
                    live zusammen durchgehen 244 032 476

                    Servus!

                    Comment


                    • #11
                      Hallo Jesus.online,

                      Originally posted by jesus.online View Post

                      1. Verweis auf Microsoft Excel hinzufügen (Wichtig!)


                      2. Variablen:
                      Dim exWB As Excel.Workbook
                      Dim exWS As Excel.Worksheet
                      Dim exAPP As Excel.Application


                      3. Variablen füllen (leeres Excel Dokument)
                      exAPP = New Excel.Application
                      exWB = exAPP.Workbooks.Add()
                      exWS = CType(exWB.Worksheets.Item(1), Excel.Worksheet)


                      -----> Wenn du eine Excel datei öffnen willst dann:
                      exAPP = New Excel.Application
                      exWB = exAPP.Workbooks.open("c:\test.xls")
                      exWS = CType(exWB.Worksheets.Item(1), Excel.Worksheet)


                      4. in Zelle schreiben
                      exWS.Cells.Item(3, 3) = "Das ist C3"
                      -----> oder (kann ich hier leider nicht testen geht aber):
                      exWS.range("C3") = "Das ist C3"


                      Tipp: für Excel Formatierungen schalt doch einfach das Excel Marko ein und
                      tu manuell das, was du später über Code lösen willst und schau dir das
                      Makro dann an, ist zwar in VBA geschrieben, hilft aber oft zu einer Lösung!

                      P.S. Einen Bereich von Excel kannst du auswählen indem du
                      exWS.Range("A1", "Z1")
                      schreibst

                      Leider konnte ich nicht so schnell antworten wie Du das gewünscht hast, aber nun kann ich.

                      Also, Punkt 1. hatte ich überhaupt nicht richtig war genommen, hätte aber auch nichts genutzt, weil ich damit nichts hätte anzufangen gewußt.
                      Erst nach Deiner letzten Antwort klappte es mit kleinen Schönheitsfehlern.

                      Diese sind:
                      a) Die Exceldatei ist wohl nach dem Zugriff noch nicht wieder richtig geschlossen. Im TaskManager ist immer noch ein Prozess "EXCEL" geöffnet. Erst wenn ich den von Hand beende, kann ich die Datei durch Anklicken ohne Meldung öffnen. Kann ich da noch was machen?

                      b) Die Alternative unter Punkt 4. "exWS.Range("C3") = "Das ist C3"" funktioniert nicht, da kommt die Meldung
                      "Die Eigenschaft "Range" ist eine ReadOnly".
                      Siehst Du da einen Fehler?

                      Trotzdem erst mal ganz herzlichen Dank für Deine Infos. Die haben mir schon gut weitergeholfen.

                      vG

                      fredyx

                      Comment


                      • #12
                        Originally posted by jesus.online View Post
                        So bin off für heute, wenn du ICQ hast adde mich doch mal dann können wir das mal
                        live zusammen durchgehen 244 032 476

                        Servus!

                        Ich bins noch mal.

                        Damit kann ich gar nichts anfangen. Was ist das?? Ich bin evtl. nicht auf dem neusten Stand der Informationstechnik (59 Jahre alt)

                        vG

                        fredyx

                        Comment


                        • #13
                          Originally posted by jesus.online View Post
                          Dann geh auf den Reiter "Verweise" -> "hinzufügen" -> Reiter "COM" -> "Microsoft Excel x.0" -> "OK"



                          Ich kann dir leider nicht genau sagen wie der Verweis heißt, ich weis es ist irgendwie "Microsoft Office Excel X.0"
                          Ja und noch mal ich.

                          Das heißt bei mir:
                          Microsoft Excel 9.0 Object Lirary und
                          Microsoft Office 9.0 Object Lirary und
                          Microsoft Visual Basic for Applications Extensibility 5.3

                          Gute Nacht

                          fredyx

                          Comment


                          • #14
                            1. Ja die Excel Applikationen bleiben nicht im Hintergrund die kann man schließen,
                            genauso wie die Excel Workbooks, entweder mit exAPP.close oder exAPP.quit.
                            Natürlich kannst du auch die Excel Mappen abspeichern mit exWB.save oder mit exWB.saveas("c:\test.xls")

                            2. genau du brauchst aber nur die "Microsoft Excel 9.0 Object Library".

                            3. Das exWS.range("C3") nicht funktioniert dachte ich nicht,
                            versuchs mal mit exWS.range("C3").value = "Das ist C3"

                            Jetzt aber sowas von gute nacht hoffentlich klappt alles! ;-)
                            Bei noch so kleinen Schönheitsfehler und fehlern die ich erzähl gleich schreiben,
                            ich kann hier leider nichts testen hab wie gesagt kein excel da.

                            Sorry! Hab ICQ nicht erklärt, ein Programm wie ICQ nennt man "instant messenger" sowas wie
                            Email nur das beim erhalten einer Nachricht gleich ein Fenster aufpoppt und man einen zeitgleichen
                            dialog starten kann. So könnte mans knapp erklären.

                            Wie ich sehe hast dus aber Wunderbar verstanden ist also nciht nötig!
                            Zuletzt editiert von jesus.online; 28.08.2008, 00:49.

                            Comment


                            • #15
                              Hallo Jesus.online Du Nachtarbeiter,

                              danke für Deine Geduld mit mir!!

                              Originally posted by jesus.online View Post
                              1. Ja die Excel Applikationen bleiben nicht im Hintergrund die kann man schließen,
                              genauso wie die Excel Workbooks, entweder mit exAPP.close oder exAPP.quit.
                              Natürlich kannst du auch die Excel Mappen abspeichern mit exWB.save oder mit exWB.saveas("c:\test.xls")

                              3. Das exWS.range("C3") nicht funktioniert dachte ich nicht,
                              versuchs mal mit exWS.range("C3").value = "Das ist C3"

                              Jetzt aber sowas von gute nacht hoffentlich klappt alles! ;-)
                              Bei noch so kleinen Schönheitsfehler und fehlern die ich erzähl gleich schreiben,
                              ich kann hier leider nichts testen hab wie gesagt kein excel da.

                              Sorry! Hab ICQ nicht erklärt, ein Programm wie ICQ nennt man "instant messenger" sowas wie
                              Email nur das beim erhalten einer Nachricht gleich ein Fenster aufpoppt und man einen zeitgleichen
                              dialog starten kann. So könnte mans knapp erklären.

                              Wie ich sehe hast dus aber Wunderbar verstanden ist also nciht nötig!
                              Das exAPP.quit. funktioniert nicht, dann kommt Die Meldung:
                              "Der öffentliche Member quit für den Typ WorkbookClass wurde nicht gefunden."
                              Es bleibt weiter das Problem, dass ich die Excel-Datei nachher nur komplett sehe, wenn ich zwei mal "Ganzer Bildschirm" angeklickt habe.

                              exWS.range("C3").value = "Das ist C3" ____________Klappt, danke!

                              "Programm wie ICQ nennt man "instant messenger""
                              Prima jetzt bin ich da auch noch schlauer geworden. Das hätte mir aber wohl nicht geholfen, weil ich das, was du mir schreibst, doch erst immer "verdauen" muss.

                              Falls ich Dich nicht nerve!! Noch eine Frage.

                              Kannst Du mir noch sagen, wie ich von VB aus in einer geöffneten Excel-Datei ein dort vorhandenes Makro starten kann?

                              vG

                              fredyx

                              Comment

                              Working...
                              X