Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von NeueWelt
Thema: Neue Seite in Excel
Am im Forum: Office-Technologien

hallo,

hab den Code von dir genau so mal kopiert, aber er bringt mir immer noch den Fehler das er PageBreak nicht kennt.

so scheint es zu funtkionieren:


 myExcelWorkSheet.HPageBreaks.Add(myExcelWorkSheet.Rows[k]);
myExcelWorkSheet.HPageBreaks[1].Location.PageBreak = (int)Excel.XlPageBreak.xlPageBreakManual;

Meine nächste frage wäre jetzt wie ich HPageBreaks wieder leeren kann. Es gibt keine Clear Methode dafür.

myExcelWorkSheet.ResetAllPageBreaks();

scheint auch nicht zu funktionieren.

Danke & Gruß

Thema: Neue Seite in Excel
Am im Forum: Office-Technologien

Morgen,

Er zeigt mir folgende Fehlermeldung:

Fehler 1 "object" enthält keine Definition für "PageBreak", und es konnte keine Erweiterungsmethode "PageBreak" gefunden werden, die ein erstes Argument vom Typ "object" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)


muss ich dafür vll noch einen Verweis einbinden?


danke & Gruß

Thema: Neue Seite in Excel
Am im Forum: Office-Technologien

Hallo,
erstmal danke für die Antworten.

habe Excel im Projekt als Verweis eingebunden.

   Excel.Application myExcelApplication;
                Excel.Workbook myExcelWorkbook;
                Excel.Worksheet myExcelWorkSheet;
                myExcelApplication = null;

                try
                {
                    // First Contact: Excel Prozess initialisieren
                    myExcelApplication = new Excel.Application();
                    myExcelApplication.Visible = false;
                    //myExcelApplication.ScreenUpdating = true;


                    // Excel Datei anlegen: Workbook
                    var myCount = myExcelApplication.Workbooks.Count;
                    myExcelWorkbook = (Excel.Workbook)(myExcelApplication.Workbooks.Add(System.Reflection.Missing.Value));
                    myExcelWorkSheet = (Excel.Worksheet)myExcelWorkbook.ActiveSheet;

                    //Datei-Kopf erstellen
                    myExcelWorkSheet.Cells[1, 1] = "Abrechnungszeitraum"; myExcelWorkSheet.Cells[1, 2] = periode;

wenn ich jetzt versuche,
myExcelWorkSheet.Rows[k].PageBreak = (int)Excel.XlPageBreak.xlPageBreakManual;

kennt er kein PageBreak, was genau muss ich tun?

danke & Gruß

Thema: Neue Seite in Excel
Am im Forum: Office-Technologien

Hallo,

ich hab mal eine vermutlich leichte Frage!?

Wie kann ich per C# einen Seitenumbruch in Excel machen?

Also ich fülle die erste Seite halb, und will dann am Anfang der zweiten Seite weiterschreiben.


Schonmal Danke & Gruß

Thema: Datagridview: DefaultCellStyle.Format korrekt festlegen
Am im Forum: GUI: Windows-Forms

danke

Thema: Datagridview: DefaultCellStyle.Format korrekt festlegen
Am im Forum: GUI: Windows-Forms

hallo,

ich möchte in meinem Datagridview für eine Spalte ein benutzerdefiniertes Format vorgeben.

insgesamt habe ich 10 Spalten und benutze unter anderem


dgvDaten.Columns[5].DefaultCellStyle.Format = ("n2");

dies erzeugt einen Tausenderpunkt und 2 Nachkommastellen.

Was ich nun suche ist wie ich für eine Spalte, welche immer 8 Zeichen hat ein festes Format vorgeben kann.
z. B.: 123/456/78 (zwei Schrägstriche immer an der gleichen stelle einfügen)

dgvDaten.Columns[1].DefaultCellStyle.Format = "x/xxxxx/xx";

So hab ichs mal probiert, aber da tut sich leider nichts. Hoffe meine Frage ist nicht zu trivial.

danke schonmal

Thema: TableAdapter.Update() Änderungen
Am im Forum: GUI: WPF und XAML

Hallo,

vielleicht helfen dir diese Links, da sind auch Beispiele dabei:

Update-Methode: http://msdn.microsoft.com/de-de/library/z1z2bkx2.aspx

Binden von Daten: http://msdn.microsoft.com/de-de/library/fbk67b6z.aspx


Gruß,

Thema: Coding Styles Horror
Am im Forum: Smalltalk

weil ichs kann^^

if (x3 != 5)
                {
                    while (z3 == Convert.ToInt32(bahn3[merk].Substring(0, 1)))
                    {
                        //wenn keine 0er da sind muss man schaun ob die bahn/breite vorhanden ist, dann auslassen
                        //sonst verschiebt sich einiges, eventl auch kennzahl 999999999
                        //das mit den 0ern eventl einfügen und dann wenn gewsumlist3 && die anderen == 0 regieren, geht vll auch wenn alle 999999999
                        oExcelApplication.Cells[üh, 1] = Math.Round((((gewsumList3[laufvar] / tage3) * 5) / 1000), 1); //wochenverbrauch im monat in tonnen
                        oExcelApplication.Cells[üh, 2] = Math.Round((((gewsumList2[laufvar] / tage2) * 5) / 1000), 1);
                        oExcelApplication.Cells[üh, 3] = Math.Round((((gewsumList1[laufvar] / tage1) * 5) / 1000), 1);
                        oExcelApplication.Cells[üh, 4] = Math.Round((((gewsumList[laufvar] / (tage0 - 1)) * 5) / 1000), 1);
                        oExcelApplication.Cells[üh, 7] = bahn3[merk].Substring(1);
                        oExcelApplication.Cells[üh, 8] = Math.Round(rolgewsum[laufvar] / 1000, 1);
                        merk++; üh++; laufvar++; //bahn3[merk].Remove(0, 1);
                        if (merk == (bahn3.Count - 1))
                        {
                            break;
                        }
                    }
                }
else irgendwas

hab ich selber vor einem Jahr geschrieben und heute wieder angeguckt xD

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

Mittlerweile hab ichs dann doch irgendwie hinbekommen,

und zwar:

- Genau auf die Pfade achten wo der Setup die Dateien installiert und wie das in der Registry angelegt ist(das sollte übereinstimmen)

- Wichtig ist das alle Vorraussetzungen also z.b. office PIA oder Visual studio office Tools auf den PCs installiert sind

- Wenn man glaubt es passt alles aber es geht trotzdem nicht, auf dem PC mal die .VSTO Datei ausführen

Es funktioniert bei mir jetzt unter 2007 und 2010.

Danke an Sebastian

Thema: Gemeinsames(Shared) AddIn auf ActiveDocument zugreifen
Am im Forum: Office-Technologien

Dankeschön,


ich hätte dann noch eine Sache, ein Ereigns abfangen sozusagen.

Das printbefore:

Das was ich dann mit deiner Hilfe schon hätte:


oWordApplication.DocumentBeforePrint += new Word.ApplicationEvents4_DocumentBeforePrintEventHandler(Application_DocumentBeforePrint);
und:


 void Application_DocumentBeforePrint(Word.Document Doc, ref bool Cancel)
        {}

momentang implementiere ich das obere in der OnStartupComplete(), aber wenn der user das Dokument druckt wird das nicht abgefangen.
Weiß jemand wie ich das implementieren muss, oder ob ich da noch etwas zusätzliches implementieren muss?

Thema: Gemeinsames(Shared) AddIn auf ActiveDocument zugreifen
Am im Forum: Office-Technologien

Hallo,

ich weiß ich frage gerade vll ein bisschen oft aber das Thema AddIns find ich ziemlich schwer.

Und zwar wird ein GemeinsamesAddIn erstellt das nur für Word und Excel gebraucht wird.

Meine Frage:
Wie kann ich auf das aktuell geöffnete Dokument von Word zugreifen?

also z.b.: application.Activedocument

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

So,

habe mit folgender Anleitung mein Setup Projekt erstellt: http://msdn.microsoft.com/en-us/library/ff937654.aspx (nur word anstatt excel)

Das AddIn erschein jetzt auch bei den anderen PCs unter COM-AddIns und in der Registry.

Aber es kann nicht geladen werden.
Es kommt pc mit word 2010:
"Während des Ladens des COMAddIns ist ein Fehler aufgetreten"

oder bei einem pc mit word 2007:
Das Ladeprogramm für verwaltete AddIns konnte nicht initialisiert werden"

Debuggen nützt wohl nichts weil nicht mal zur ersten MessageBox am einstiegspunkt kommt.

irgendwelche ideen?

danke,

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

Also,

Microsoft Visual Studio 2010 Professional
Version 10.0.40219.1 SP1Rel

Erstellen tu ichs folgendermaßen:
- Visual C#
- Office
- 2010
- Word 2010 AddIn

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

Ok,

mit dem gemeinsamen AddIn funtktioniert alles so wie geplant, Der Setup wird erstellt und bei installation des setups auf einem anderen pc wird das AddIn geladen und hinzugefügt.

liegt wohl an der Extensibility-schnittstelle die im Word-AddIn nicht vorhanden ist.

Jetzt muss ich mal schaun ob ich diese Schnittstelle irgendwie in mein Word-AddIn implementieren kann, oder ob ich den Code aus dem word-addin in mein gemeinsames AddIn implementiere.

Enfach kopieren geht nicht, da ich das activeDocument in Application verwende und kann bei gemeinsamen AddIn nicht drauf zugreifen.

Kann man bei dem AddIn einstellen, das es nur bei öffnen eines bestimmten Dokumentes geladen wird?

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

ahhh, mir geht ein Lich auf xD

du meinst Gemeinsames AddIn, ich rede von Office 2010 AddIn

bei dem gemeinsamen wird tatsächlich ein Setup gleich generiert, beim Office 2010 nicht.

das sieht dann schon wieder viel komplizierter aus...

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

Ich weiß doch das die .dll das AddIn ist^^ auch wenns vll nicht so rüber kam


es geht darum das ich die dll nicht unter office als AddIn einbinden kann.

da kommt dann .dll ist kein gültiges AddIn.

Deswegen braucht man dann den Setup, oder bin ich da jetzt total falsch?

So, und diesen Setup klick ich dann auf dem anderen PC an, und dadurch wird das AddIn Installiert.

So weit wär ich ja jetzt, beim Installieren erhalte ich auf dem anderen PC die .dll.

Aber die kann ich nich bei den AddIns hinzufügen, also was muss ich da noch machen?

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

Danke,

ok also Setup Projekt,

wo wird das erstellt?
und wie kann ich das selbst erstellen?

Edit: Ok, ich kann zum AddIn Projekt ein Setup-Projekt hinzufügen,
aber wenn ich das dann die dll, die von dem AddIn erzeugt wird zuordne und den Setup starte kommt wieder eine dll raus und kein AddIn.

Thema: [erledigt] Word 2010 AddIn auf anderem PC nutzen
Am im Forum: Office-Technologien

Hallo,

Ich habe über Visual Studio 2010 ein Word 2010 AddIn erstellt.

Dieses wird auf meinem PC automatisch bei Word zu den COM-AddIns hinzugefügt.

Aber wie kann ich das ich jetzt auf einem anderen PC hinzufügen, z.b. auf dem von meinem Bruder?

Wenn ich COM-AddIns bei mir schaue hab ich den pfad der in die "...bin/Debug/Programm.vsto|vstolocal".

Gut dacht ich, nehm ich die Datei stell sie aufs Netzlaufwerk und mein Bruder kann die dann als Office-AddIn einfügen.
Aber die Datei gibt es gar nicht in dem Verzeichnis, es gibt nur Programm.dll und die ist kein gültiges AddIn.

Wie kann ich also das AddIn auch bei ihm nutzen?

danke,

Thema: Drucken deaktivieren/Menü, Ribbon deaktivieren
Am im Forum: Office-Technologien

Nach Intensiven suchen doch gefunden:

Application.DocumentBeforePrint += new Word.ApplicationEvents4_DocumentBeforePrintEventHandler(Application_DocumentBeforePrint); //in Startup

  void Application_DocumentBeforePrint(Word.Document Doc, ref bool Cancel)
        {
            if (MessageBox.Show("Do you want to print?", "DocumentBeforPrint", MessageBoxButtons.YesNo) == DialogResult.No)
            {
                Cancel = true;
            }
        }

Thema: Drucken deaktivieren/Menü, Ribbon deaktivieren
Am im Forum: Office-Technologien

Danke Sebastian,

In dem Fall ist der Thread glaube ich nötig, oder man nimmt nen Timer.
Hab aber grade gelesen dass diese Methode mit den commandbars nur bis Office 2003 funktioniert(angeblich).

Du vermutest richtig mit startFromScratch, eben RibbonXML.

kannst du mir vll bei dem BeforePrint ereignis unter die Arme greifen, das Beispiel ist für Excel und ich schaffe es nicht auf Word umzuschreiben.

private void WorkbookBeforePrint()
        {
            this.BeforePrint += Word.ApplicationEvents_BeforePrint (ThisApplication_BeforePrint); //Hier was falsch
            
        }

       
        void ThisApplication_BeforePrint(bool Cancel)
        {
            if (DialogResult.No == MessageBox.Show("Are you sure " +
                "you want to print the workbook?",
                "Example", MessageBoxButtons.YesNo))
            {
                Cancel = true;
                MessageBox.Show("Print is canceled.");
            }
        }

bei dem += in der Zeile, fehlt ein Assemblyverweis sagt die Fehlerliste, was müsste da hin?

mir fehlt das deklarieren des Events aber wohin?
public event ApplicationEvents_BeforePrint BeforePrint;

Thema: Drucken deaktivieren/Menü, Ribbon deaktivieren
Am im Forum: Office-Technologien

Hallo,

Ich versuche hauptsächlich die Druckfunktion eines Worddokumentes zu verbieten, zusätzlich will ich das Menü/Ribbons alle bis auf eins ausblenden.

über die Forumssuche habe ich dieses Thema gefunden:
Menüs in bzw. von Word ausblenden


Ich habe mir für die Foreach schleife einen speraten Thread gebaut aber der Fehler besteht weiterhin:


//Es ist ein Word 2010 Document über Visualstudio
//die ersten zwei Zeilen befinden sich in ThisDocument_Startup
  Thread t = new Thread(Write);      
          t.start();

 public void Write()
        {
            Thread.Sleep(10000);
            foreach (Office.CommandBar cbar in Application.ActiveWindow.Application.CommandBars)
            {
                    cbar.Visible = false; //Hier tritt Fehler auf
                    cbar.Enabled = false;
            }
            MessageBox.Show("Fertig");                  
        }

Fehler: Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben

Hat jemand noch eine Idee, funktioniert das überhaupt?

Dann zum zweiten Punkt mit den Ribbons, hab mich bisschen umgesehen und gefunden wie man alle Ausblenden und eins behalten kann. Jedoch ist das Ribbon "Datei" davon nicht betroffen. Wie kann ich "Datei" ausblenden?


Oder weiß jemand vll eine ganz andere Lösung um das Drucken zu verbieten und/oder das Menü einzuschränken?

danke schonmal,
NeueWelt

Thema: Kalenderrechner für tatsächliche Arbeitstage
Am im Forum: .NET-Komponenten und C#-Snippets

Stimmt, hattest recht.

Habe jetzt auch die Version mit den xml Dateien genommen.

funktioniert einwandfrei.


Super Ding!


Danke

Thema: Kalenderrechner für tatsächliche Arbeitstage
Am im Forum: .NET-Komponenten und C#-Snippets

Hallo,

habe den Kalender mal ausprobiert, ohne die XML Feitertagsmatrix und bei mir kommt da etwas komisches raus.

KalenderRechner meinKalender = new KalenderRechner(KalenderRechner.BundesLänder.Bayern);

 tage = Convert.ToInt32(meinKalender.GetArbeitstage("01.08.2012 00:00:00", "01.08.2012 23:59:59");
tage hat den Wert 0.

tage = Convert.ToInt32(meinKalender.GetArbeitstage("01.08.2012 00:00:00", "02.08.2012 23:59:59");
tage hat den Wert 1.

tage = Convert.ToInt32(meinKalender.GetArbeitstage("01.08.2012 00:00:00", "03.08.2012 23:59:59");
tage hat den Wert 3.

Das erscheint mir etwas seltsam da bei der letzte Abfrage denke ich dann tage=2 kommen sollte oder bei den beiden am Anfang tage=1 und tage=2.

Thema: Laufende COM-Objekte abfragen
Am im Forum: .NET-Komponenten und C#-Snippets

Hallo,

Vielen Dank an Rainbird und Sebastian, habt mir sehr geholfen.

gruß

Thema: Daten in schon geöffnete Excel Datei schreiben
Am im Forum: Office-Technologien

Vielen Dank Sebastian,

habs hinbekommen in eine geöffnete Datei mit mehreren Arbeitsblättern zu schreiben.

auf die art rufe ich das auf:

table = RunningObjectTable.GetApplicationInstancesFromROT("QListe.xls", "Workbook");
                    Excel.Workbook wb2 = table[0] as Excel.Workbook;

und so nutze ich die einezlenen Blätter:

Excel.Worksheet worksheet = (Excel.Worksheet)wb2.Worksheets[1];

weiß jetzt nicht sicher ob der Code so schön ist oder richtig gut, aber immerhin funktionierts bei mir so.

danke nochmal

Thema: Daten in schon geöffnete Excel Datei schreiben
Am im Forum: Office-Technologien

Hallo,

Die Rückgabewerte aus dem link sind eine Liste aus strings und eine object Variable.

In der Liste stehen die Pfade der geöffneten dateien.

comobjekt = RunningObjectTable.GetRunningCOMObjectByName(Pfad);

der methode übergebe ich den Pfad und erhalte dann:

System._ComObject


in dem snippet von oben verlangt er bei GetActiveObject einen string.

Wenn hier den Pfad aus der liste einfüge kommt der fehler:
Ausnahme von HRESULT: 0x800401F3 (CO_E_CLASSSTRING)

Sebastian könntest du mir bitte zeigen wie man das umwandelt das es funktioniert?

und wegen den worksheets das müsste dann ungefähr so gehn schätze ich:
Excel.Worksheet sh = (Excel.Worksheet)app.Worksheets[X];
oder so ähnlich...

danke

Thema: Daten in schon geöffnete Excel Datei schreiben
Am im Forum: Office-Technologien

Das ist schon einmal ein Anfang, danke.

aber mir geht es so wie tecla, wie kann ich das zurückgelieferte object, dann schließen(also als Excel Application)

und es ist mir auch nicht klar wie man auf diese Weise erkennt in welches Tabellenblatt man schreibt.

Thema: Daten in schon geöffnete Excel Datei schreiben
Am im Forum: Office-Technologien

Hallo,

ich möchte mit C# Daten in eine bereits geöffnete Datei schreiben(Excel2010).

Es geht dabei um eine Datei die immer wieder aktualisiert werden soll, bisher mache ich es so, dass ich Excel schließen lasse und dann die betreffende Datei mit den aktualisierten Daten neu öffne. Das Funktioniert soweit.

Jetzt möchte es ohne das Schließen schaffen.

Gefunden habe ich dieses Code-Snippet:

Excel.Application app = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
                Excel.Worksheet sh = (Excel.Worksheet)app.ActiveSheet;

damit kann ich eine schon geöffnete Excel-Datei nutzen, funktioniert aber leider nur wenn nur eine Datei geöffnet ist, die nur ein Tabellenblatt enthält.

bei mir kann es jedoch der Fall sein das mehere Excel-Dateien geöffnet sind, und die zu aktualisierende Datei hat auch mehrere Tabellenblätter.

weiß jemand Rat?

danke schonmal für die Mühen

Thema: Die COM-Klassenfactory für die Komponente mit CLSID...
Am im Forum: Rund um die Programmierung

Hallo,

hier ein zitat von einer webseite das vll hilft:

Zitat
In der Registry können Sie unter HKEY_CLASSES_ROOT\CLSID beliebige neue Class-ID anlegen. Wichtig ist dabei, dass diese ID noch nicht vorhanden ist. Eine Class-ID besteht immer aus 8-4-4-4-12 Hex-Ziffern. Damit Sie nicht zufällig eine ID anlegen, die bereits verwendet wird, sollten Sie von hinten hochzählen, eine mögliche ID wäre also {00000000-0000-0000-0000-000000000001}.
Quelle: Was ist eine CLSID?

ich schätze mal die ID wäre die nummer von oben in der Fehlermeldung.
ist die ID in der registry vorhanden oder nicht?
wenn ja dann liegt das an was anderem denke ich.

die msdn sagt: CLSID Key

und hier noch ein anderes Forum: Wie nutzt mal "CLSID" in der Registry?

aber: NICHT ZU VIEL RUMSPIELEN AN DER REGISTRY SONST GEHT VIELLEICHT WAS KAPUTT

gruß

Thema: Die COM-Klassenfactory für die Komponente mit CLSID...
Am im Forum: Rund um die Programmierung

Hallo,

ich bin mir jetzt nicht 100 pro sicher aber du solltest den Eintrag in der registry finden, und wenn nicht muss er glaube ich hinzugefügt werden.

ich beziehe mich auf den link hier: How to repair COMException error 80040154?

vielleicht könnten dir auch die beiden links helfen:
Error 80040154 (Class not registered exception) when initializing VCProjectEngineObject (Microsoft.VisualStudio.VCProjectEngine.dll)

COM Error 80040154


gruß