Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben
zurück: Word-VBA/VB.NET | Projekt als .exe speichern und ausführen weiter: Alle Dateien *err per Outlook2007 versenden und dann löschen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Hempelchen
Gast


Verfasst am:
20. März 2011, 21:14
Rufname:

Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Hallo,

ich versuche per Visual Studio in ein Excel Dokument zu schreiben,
Bei meinem bisher benutzen VB6 konnte ich dies tun, indem ich Excel in VB6 deklariert habe und dann mehr oder weniger per Copy & Paste den Makrocode in VB6 kopiert habe.

Ähnlich habe ich es nun auch gemacht, bekomme jedoch eine Fehlermeldung... Ich schreibe erst einmal den Code den ich geschrieben habe:


Zuvor habe ich xlObject deklariert:

Dim xlObject As New Microsoft.Office.Interorp.Excel.Application
(in VB6 hieß es noch "Dim xlObject As New Excel.Application")

Code:
xlObject.Range("A3:B3").Select()
        xlObject.Selection.NumberFormat = "#,##0.00 $"
        xlObject.Selection.Font.FontStyle = "Fett"
        With xlObject.Selection.Font
            .Name = "Calibri"
            .FontStyle = "Fett"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
        xlObject.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        xlObject.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With xlObject.Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With xlObject.Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With xlObject.Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With xlObject.Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With xlObject.Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        xlObject.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        With xlObject.Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = -0.14996795556505
            .PatternTintAndShade = 0
        End With


Jetzt schreibt er mir jedoch ständig: Name 'blabla' wurde nicht deklariert.

Bei xlUnderlineStyleNone steht zB.
Name 'xlUnderlineStyleNone' is not declared.

Ich habe schon gegooglet, werde aber nicht schlauer... Was muss ich denn in VS2010 machen um ein dummes Excel Formular zu formatieren?![/code]
Nepumuk
VB / VBA Programmierer


Verfasst am:
20. März 2011, 23:56
Rufname: Max
Wohnort: Dusseldoof


AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Hallo,

klar, das sind Excelkonstanten. Die sind in VB.net nicht bekannt. In VB 6.0 hast du einen Verweis auf die Excel-Library gesetzt dadurch wurden die Konstanten bekannt.

Entweder du deklarierst die in deiner Anwendung oder du ersetzt die Konstanten durch ihren Wert. Ich würde allerdings die Konstanten deklarieren, das macht den Code leserlicher.

_________________
De fontibus non est disputandum

Gruß
Nepumuk Cool
Hempelchen
Gast


Verfasst am:
21. März 2011, 10:29
Rufname:

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Moin,

also ich habe die Verweise exakt identisch.
Natürlich habe ich den Verweis aus Excel eingerichtet.
Ansonsten würde er ja schon bei

Dim xlObject As New Microsoft.Office.Interorp.Excel.Application
einen Fehler machen.
Wenn du das überhaupt meinst?

Ansonsten habe ich nicht verstanden was du mit "deklarierst die Anwendung" sagen wolltest.
Nepumuk
VB / VBA Programmierer


Verfasst am:
21. März 2011, 11:03
Rufname: Max
Wohnort: Dusseldoof

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Hallo,

Achso, du hast einen Verweis gesetzt. Hab ich übersehen. Wenn du auf die Konstanten von Excel in VB.net zugreifen willst, geht das z.B. so:

Alt:
Code:
With xlObject.Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThin
End With


Neu:
Code:
With xlObject.Selection.Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft)
    .LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous
    .ColorIndex = Microsoft.Office.Interop.Excel.Constants.xlAutomatic
    .TintAndShade = 0
    .Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin
End With

_________________
De fontibus non est disputandum

Gruß
Nepumuk Cool
Gast



Verfasst am:
21. März 2011, 11:19
Rufname:


AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Okey, danke dir. Das hat mir weiter geholfen (auch wenn es nicht umbedingt sparsam ist, was VS2010 da mit dem Code veranstaltet...)

Ich hatte noch ein anderes Problem, welches auch in diese Rubrik passt.
Ich bekomme es nicht hin, eine Formel zu übergeben. Wenn ich die kryptische Formel aus dem Makro übergebe (in "" wie ich es bis jetzt unter VB6 immer gemacht habe), dann erhalte ich in der ausgegebenen Excel Datei ein leeres Feld, wenn ich den Code so übergebe, wie ich ihn in Excel selber schreiben würde, bspw. "=C1-B1" dann macht er mir daraus ein 'C1'-'B1' in Excel.

Gibt es da nun auch einen Kniff um Formeln zu übergeben.
Nepumuk
VB / VBA Programmierer


Verfasst am:
21. März 2011, 11:22
Rufname: Max
Wohnort: Dusseldoof

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Hallo,

lass uns doch mal die Codezeile sehen.

_________________
De fontibus non est disputandum

Gruß
Nepumuk Cool
Gast



Verfasst am:
21. März 2011, 11:39
Rufname:

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Naja nur als Beispiel:

Zitat:
xlObject.Range("C4").Select
xlObject.ActiveCell.FormulaR1C1 = "=R[-1]C[-1]-R[-1]C[-2]"


Ergibt ein leeres Feld in Excel

Zitat:
xlObject.Range("C4").Select
xlObject.ActiveCell.FormulaR1C1 = "=B3-A3"


Ergibt im Excel
='B3'-'A3'
Gast



Verfasst am:
21. März 2011, 11:39
Rufname:

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Naja nur als Beispiel:

Zitat:
xlObject.Range("C4").Select
xlObject.ActiveCell.FormulaR1C1 = "=R[-1]C[-1]-R[-1]C[-2]"


Ergibt ein leeres Feld in Excel

Zitat:
xlObject.Range("C4").Select
xlObject.ActiveCell.FormulaR1C1 = "=B3-A3"


Ergibt im Excel
='B3'-'A3'
Hempelchen
Im Profil kannst Du frei den Rang ändern


Verfasst am:
21. März 2011, 11:40
Rufname:

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Ups, da war er nicht mehr eingeloggt und schickt es auch gleich doppelt raus...
Nepumuk
VB / VBA Programmierer


Verfasst am:
21. März 2011, 12:47
Rufname: Max
Wohnort: Dusseldoof

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Hallo,

sei mir nicht böse, aber meinst du nicht es wäre besser erst mal richtig VBA-Programme schreiben zu lernen als mit deinem grottenschlechten VBA in VB.net Excel zu automatisieren? Das sind doch aufgezeichnete Makros, die kannst du gerade noch im Excel-VBA einsetzen, aber für VB.net ist das unzureichend. Bei deinen Rahmen habe ich noch gedacht, du hast auf die Schnelle ein Makro aufgezeichnet um etwas Code fürs Forum zu haben. Aber wie ich sehe schaffst du es noch nicht mal ohne Makrorekorder einer Zelle eine Formel zuzuweisen. Also, lern erst mal vernünftig VBA. Oder stell in einem neuen Thread deinen aufgezeichneten VBA-Code rein und lass ihn dir in ein vernünftiges Programm (das hat dann garantiert 50% weniger Zeilen) umändern. Mit dem Code versuchst du es dann nochmal in VB.net.

_________________
De fontibus non est disputandum

Gruß
Nepumuk Cool
Hempelchen
Im Profil kannst Du frei den Rang ändern


Verfasst am:
21. März 2011, 13:09
Rufname:

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Na ich möchte mich eigentlich nicht wirklich mit VBA beschäftigen.
Ich habe bis jetzt in VB6 programmiert und dort ging das immer recht simpel ne Ausgabe nach Excel zu formatieren, indem man den schönen Code aus dem Excel Makro nach VB kopierte und nen Excel.Application voran stellte.

Nun stellen wir hier nach VB.Net um und die schöne VS Funktion zur Umwandlung von VB6 Code funktioniert vllt in 1er von 3 Codezeilen korrekt.
Was VB.Net angeht komme ich so einigermaßen zurecht, aber die ganzen Ausgaben nach Excel sind ein graus.
Ich habe aber auch nicht die Zeit mich durch nen Buch zur VBA-Programmierung durch zu wuseln.
Im Grunde beschränkt sich auch alles auf eine Ausgabe von einem Programm nach Excel für andere Mitarbeiter.
Jedoch gibt es wie in dem Beispiel einige Dinge, die neu formatiert werden müssen, wenn sie nach Excel ausgegeben werden.
Ich hoffe das Problem was ich habe ist einigermaßen nachvollziehbar.
Das er jetzt die Konstanten nicht mehr wie bislang verwenden kann ist eine Sache, mit der ich umgehen kann (auch wenn es trotz langer Suche in Google nichts wirklich hilfreiches als Information gab).
Jedoch bei der Übergabe von Formeln wird es schon etwas nerviger.

Hier habe ich noch keine passenden Informationen zu gefunden, wie man per VB.Net Daten an Excel bereitstellt. Wenn du mir nen Tipp geben kannst, wo man soetwas nachlesen kann, bin ich dir sehr dankbar.
Case
Coder


Verfasst am:
21. März 2011, 13:43
Rufname: Case
Wohnort: Schwäbisch Hall

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Hallo, Razz

Zitat:
Hier habe ich noch keine passenden Informationen zu gefunden, wie man per VB.Net Daten an Excel bereitstellt. Wenn du mir nen Tipp geben kannst, wo man soetwas nachlesen kann, bin ich dir sehr dankbar.


Da gibt es einiges im Netz: Wink

http://msdn.microsoft.com/de-de/ms789074

http://openbook.galileocomputing.de/vb_net/msvb040000.htm

http://support.microsoft.com/kb/301982

Und noch einige mehr...

Du wirst aber nicht umhin kommen dich mit dem Objektmodell von Excel etwas auseinanderzusetzen. Rolling Eyes

Servus
Case
Nepumuk
VB / VBA Programmierer


Verfasst am:
21. März 2011, 15:42
Rufname: Max
Wohnort: Dusseldoof

AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Hallo,

also das:

Code:
xlObject.Range("C4").Select
xlObject.ActiveCell.FormulaR1C1 = "=R[-1]C[-1]-R[-1]C[-2]"

funktioniert ohne Probleme.

sollte aber eher so aussehen:

Code:
xlObject.Range("C4").FormulaR1C1 = "=R[-1]C[-1]-R[-1]C[-2]"


das:

Code:
xlObject.Range("C4").Select
xlObject.ActiveCell.FormulaR1C1 = "=B3-A3"


kann nicht funktionieren. Wenn, dann so:

Code:
xlObject.Range("C4").Formula = "=B3-A3"

_________________
De fontibus non est disputandum

Gruß
Nepumuk Cool
Hempelchen
Im Profil kannst Du frei den Rang ändern


Verfasst am:
21. März 2011, 16:08
Rufname:


AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben - AW: Per VB.Net (Visual Studio 2010) in Excel(2010) schreiben

Nach oben
       Version: Office 2010

Moin,

danke nochmal für den Beitrag.

xlObject.Range("C4").FormulaR1C1 = "=R[-1]C[-1]-R[-1]C[-2]"
ergibt bei mir weiterhin ein einfach leeres Feld "C4".

xlObject.Range("C4").Formula = "=B3-A3"
funktioniert jedoch einwandfrei.


Danke sehr.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Visual Studio und dotNet Forum: Mit Visual Studio 2010 ein AddIn für Word 2010 erstellen 3 Jürgen Z 398 04. Feb 2014, 12:52
KleinesA Mit Visual Studio 2010 ein AddIn für Word 2010 erstellen
Keine neuen Beiträge Visual Studio und dotNet Forum: Text in Excel schreiben und Textstellen mit Zellen verbinden 1 Felix8282 1127 18. Jul 2012, 14:33
MBorn Text in Excel schreiben und Textstellen mit Zellen verbinden
Keine neuen Beiträge Visual Studio und dotNet Forum: Excel-LineStyle per VisualBasic setzen 1 MBorn 817 15. Jun 2012, 10:05
MBorn Excel-LineStyle per VisualBasic setzen
Keine neuen Beiträge Software Forum (Sonstige Software): Per Batch mehrere Bilder kopieren 2 Gast01 1120 02. Jun 2011, 22:55
Gast01 Per Batch mehrere Bilder kopieren
Keine neuen Beiträge Visual Studio und dotNet Forum: Visual Basic 2010 Express - Drucken mit Druckerauswahl 0 Marsel 3774 04. Feb 2011, 22:11
Marsel Visual Basic 2010 Express - Drucken mit Druckerauswahl
Keine neuen Beiträge Software Forum (Sonstige Software): Visual Basic Dateinamen automatisch ändern. 1 jasonmorley 1720 31. Jan 2011, 19:06
jasonmorley Visual Basic Dateinamen automatisch ändern.
Keine neuen Beiträge Software Forum (Sonstige Software): Lexware Büro Easy 2010 - Rechnungen löschen? Neues Jahr 4 golf16v 6218 11. Jan 2011, 16:54
lexhelfer Lexware Büro Easy 2010 - Rechnungen löschen? Neues Jahr
Keine neuen Beiträge Software Forum (Sonstige Software): Visual Studio 2008 statt 'normalen' VBA Editor nutzen 2 Se7en 2180 01. Dez 2010, 18:01
Se7en Visual Studio 2008 statt 'normalen' VBA Editor nutzen
Keine neuen Beiträge Software Forum (Sonstige Software): .exe dateien per gpo erlauben/verbieten 5 ..::MaTzE::.. 10351 18. Nov 2010, 10:58
mcbuh .exe dateien per gpo erlauben/verbieten
Keine neuen Beiträge Visual Studio und dotNet Forum: Drucker festlegen: Visual Basic Express 2010 UVB 0 Marsel 2757 19. Aug 2010, 22:32
Marsel Drucker festlegen: Visual Basic Express 2010 UVB
Keine neuen Beiträge Software Forum (Sonstige Software): Wie starte ich Visual Basic 2008 Express? 1 Marz 2450 29. Apr 2010, 09:03
maninweb Wie starte ich Visual Basic 2008 Express?
Keine neuen Beiträge Visual Studio und dotNet Forum: OnlineInstallation von Visual Basic Express 2008 unter Vista 4 dirk.be 3943 02. Okt 2008, 01:28
Willi Wipp OnlineInstallation von Visual Basic Express 2008 unter Vista
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: PHP JavaScript