Exportieren von Feldern in Excel

  • Hallo zusammen, also ich bin ja wirklich noch ein Neuling auf dem Gebiet von LoNo.... ich soll jetzt hier bestimmte Felder aus einer Maske heraus exportieren nach Excel damit wir unsere Auswertung fahren können..... mein Problem ist "nur".... wie geht das????? Also wenn ich das hier so mitbekomme im Forum wird man wohl ein Script schreiben müssen, aber davon hab ich ja überhaupt keinen Plan.. :-? ... vielleicht kann mir einer von Euch bei meinem Problem helfen.... Danke im Voraus.

  • Hab ich getan..... komme ich aber nicht wirklich mit weiter.... bin absoluter neuling..... hab keine ahnung wo ich die Scripte dann eintragen muss. Bei einem Agenten oder wo.....

  • Hi,


    welche Notes-Version setzt Ihr denn ein und wie häufig soll exportiert werden?


    Wenn Ihr Notes 6 im Einsatz habt und nur gelegentlich exportiert, ist es für Dich am einfachsten, Dir eine spez. Ansicht zu erstellen, die nur die zu exportierenden Daten enthält und diese dann über "Bearbeiten/Als Tabelle kopieren" und in Excel über "Bearbeiten/Einfügen" zu übernehmen.

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Wir nutzen Notes R5 und es ist unterschiedlich... ein Teil der Daten werden monatlich, quartals oder halbjährlich exportiert...... es handelt sich dabei um kennzahlen und nicht jede kennzahl hat den selben Feldnamen, bei der einen Kennzahle ist es ein Wert der ausgelesen werden soll und bei einer anderen ist es ein Hinweistext..... daher ist das mit der Ansicht so leider auch nicht machbar meiner meinung nach......

  • Oder Du baust Dir einen Agent (Lotus Script), den Du aus dem Menü aus starten kannst.


    Da steht das Skript im "Initialize":


    Dim xlApp As Variant
    Dim xlSheet As Variant
    Dim Session as new NotesSession
    Dim View as NotesView
    Dim doc as NotesDocument

    Set xlApp = createObject("Excel.application")
    xlapp.visible=True


    Set xlSheet = xlapp.workbooks(1).worksheets(1)

    ' Ueberschriften

    With xlSheet
    .range("A1").Value = "Name"
    .range("B1").Value = "Vorname"
    End With


    ' Formatierung


    With xlapp
    .Columns("A:B").select
    .Rows("1:1").select
    .Selection.font.bold=True
    .Columns("A:A").Select
    .Selection.ColumnWidth = 8
    .Range("A1:B1").Select
    .Range("A1:B1").Activate
    .Selection.Borders(5).LineStyle = -4142
    .Selection.Borders(6).LineStyle = -4142
    .Selection.Borders(7).LineStyle = -4142
    .Selection.Borders(8).LineStyle = -4142
    .Selection.Borders(9).LineStyle = 1
    .Selection.Borders(9).Weight = -4138
    .Selection.Borders(9).ColorIndex = -4105
    .Selection.Borders(10).LineStyle = -4142
    .Selection.Borders(12).LineStyle = -4142
    End With



    set View = Session.CurrentDatabase.GetView("Wieauchimmer")
    set Doc = View.GetFirstDocument
    i = 0
    while not (Doc is nothing)
    With xlSheet
    .range("A" + Cstr(i + 2)).Value = doc.Feldname(0)
    .range("B" + Cstr(i + 2)).Value = doc.AndererFeldname(0)
    End With
    i = i + 1
    set doc = View.GetNextDocument(doc)
    wend


    Das Skript nimt alle Dokumente der Ansicht "Wieauchimmer" und erstellt ein Exceldokument, wo die Felder "Feldname" und "AndererFeldname" dargestellt werden.


    Jetzt sollte es eigentlich trivial sein, dass Du das Skript auf Deine Bedürfnisse (Ansichtsnamen und Feldname und Aussehen in Excel) anpasst.


    cu


    Jörg

  • bitte nehmt nicht range, das ist zu langsamm.


    .cells ist einfacher. und schneller ausserdem kannst du da spalten und Zeilen mit nummern durchforsten. Ich poste euch hier mal eine funktion. und einen kleinen aufruf.


    globale deklaration
    Dim oexcel As Variant



    Set oexcel = CreateObject("Excel.Application")
    oexcel.Visible = True
    Call oexcel.Workbooks.Add
    With oexcel.Worksheets(1).PageSetup
    '.Orientation = 1 '= normaldrucken
    .Orientation = 2 '= Quer drucken
    '.PrintTitleRows = "$1:$1"
    '.CenterHeader = "&""Arial,Bold""&<your header>"
    '.RightFooter = ""
    '.CenterFooter = ""
    '.CenterHorizontally = True
    '.LeftMargin = oexcel.Application.InchesToPoints(0.4)
    .RightMargin = oexcel.Application.InchesToPoints(0.2)
    .TopMargin = oexcel.Application.InchesToPoints(0.2)
    '.BottomMargin = oexcel.Application.InchesToPoints(0.3)
    .HeaderMargin = oexcel.Application.InchesToPoints(0.15)
    '.FooterMargin = oexcel.Application.InchesToPoints(0.15)
    End With


    AnzZ = Zeile in der du dich befindest
    AnzS = spalte in der du bist




    ausgabe = "Inhalt den du ausgeben willst, auch zahlen"
    XZelle anzZ,anzS,ausgabe,"Arial",10,1,"N","NO","N"


    Set oexcel = Nothing




    Function XZelle(_
    ZZ As Integer ,_
    SS As Integer ,_
    inhalt As Variant,_
    XFont As String,_
    XSize As Integer,_
    XColor As Integer,_
    XBold As String,_
    XNUMBER As String, _
    XOrient As String)
    'Farbe 1 =Schwarz 5 =Blau 3 =Rot 50=Grün
    'Number = "#.##0,00" oder "NO"
    If XNumber = "NO" Then
    oexcel.cells(ZZ, SS)= inhalt
    Else
    oexcel.cells(ZZ, SS)=inhalt
    End If

    With oexcel.cells(ZZ, SS)
    .Font.Name = XFont
    .Font.Size = XSize
    .Font.ColorIndex = XColor
    If XBold = "J" Then
    .Font.Bold = True
    Else
    .Font.Bold = False
    End If

    If Not(XNumber = "NO") Then
    .NumberFormat = XNumber
    End If

    If Xorient = "C" Then
    .HorizontalAlignment = -4108
    .VerticalAlignment = -4107
    .WrapText = True
    .Orientation = 0
    .AddIndent = False
    .ShrinkToFit = False
    .MergeCells = False
    End If

    End With

    End Function

  • *********** ACHTUNG *****************


    Notes ist gemein !!!


    Wer viel mit Excel macht, also schicke Berichte baut usw. wird sich wundern wenn er diese mit einem R6 Client ausführt. Notes hat die gesamte schreibweise der Excel Formeln geändert.


    SO muss unter R6 eine formel aussehen damit sie läuft
    oexcel.cells(anzZ, anzS).Formula = "=((RC[-3] / R3C5) * 12)"



    und so sah sie in R5 aus !!!
    oexcel.cells(anzZ, anzS).Formula = "=((ZS(-3) / Z3S5) * 12)"



    Also wundert euch nicht WENN heißt jetzt IF und ; muss man teilweise durch , ersetzen usw....


    Viel Spass

    • Offizieller Beitrag

    "=((RC[-3] / R3C5) * 12)" und "=((ZS(-3) / Z3S5) * 12)" sind für Notes aber nur Strings. Excel wertet diese aus. Ist eher ein Problem von Excel. Meine Exporte, die ich unter 5.x geschrieben habe, laufen in 6.5.x immer noch.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Das ist ein Problem des MUI von Excel. Wenn nur der englische MUI oder kein MUI installiert ist, müssen die Formeln in englisch geschrieben werden. Also bitte nicht Notes dafür verantwortlich machen.


    Übrigens: wenn man den englischen MUI (der funktioniert übrigens immer) installiert, kann man seine Formeln und VBA-Macros aus eingebetteten Objekten weltweit verwenden. Wer ein EXCEL-Sheet mit Makros in deutscher Formelschreibweise einbettet, darf sich nicht wundern, wenn die Formeln in JAPAN oder Brasilien Verdruß heraufbeschwören. Ich hab mir deshalb mein Excel auf Englisch umgestellt.

  • Moment das muss ich genauer hinterfragen.


    Ich habe "einen" Rechner auf dem R5 und R6 installiert ist. Auf diesem System ist NUR ein Excel installiert. die Datenbank die ich nutze läuft auf einem R5 Notesserver.


    öffne ich nun diese DB unter R5 und führe den Agenten aus der mir meine Excel-sheets erstellt dann funktioniert alles richtig in der mit den formeln (UND NUR MIT DENEN GIBTS PROBLEME,gibst du nur Zellen aus geht alles so wie immer)


    Also die Formel "=SUMME(A1+A2+A3)" geht dort.


    nimmt man nun den R6 Client auf der selben Maschine dann sagt er nur #Name in der entsprechenden Zelle beim ausgeben.


    Übergebe ich dann aber "=SUM(A1,A2,A3)" gehts wieder, ABER NUR unter R6 diese Schreibweise geht nicht unter R5. Was soll das jetzt mit meiner Excel installation zutun haben ????


    und wie kann ich ein MUI installieren ist das ein Office tool oder etwas was man im notesinstallieren muss??

  • Geh doch einmal in den Office-Hilfsprogrammen auf die Sprachwahl. Wenn du da DEUTSCH (nicht nur für die Menüs) explizit einstellst, sollten die deutschen Formeln unabhängig vom verwendeten Notes-Client auch funktionieren.

  • MUI steht für MultiLingual User Interface. Man installiert zunächst ein Programm (Office) und dann einige Sprachpakete dazu. Damit kann man auf einem Rechner das gleiche Programm in mehreren Sprachen ohne Neuinstallation verwenden.


    Im Office-Verzeichnis befinden sich dann mehrere Unterverzeichnisse (1031, 1033, ...) mit den Sprachpaketen.


    Beim Office macht man das mit dem Programm SETLANG.EXE
    Dort siehst du auch, welche Sprachpakete installiert und welche aktiviert sind.


    Bereits Excel5 hatte eine "sprachunabhängige" Formelsprachen-Verwendung. Deine Eingaben wurden übersetzt in Metasprachelemente, die dann in die Darstellung der eingestellten Sprache umgewandelt wurden. Das galt für Formeln wie auch für VBA-Elemente.


    Spätestens bei der generellen VBA-Umstellung von Office97 auf die 2000er-Reihen sah man aber die Defekte dieser Steuerung, die auch für VBA-Code gelten sollte. Sie klappte einfach nicht in VBA.

  • Aber tortzdem ist das keine Erklärung dafür warum mein R5 client nun in deutsch mit Excel spricht und mein R6 client nur Englisch sprechen kann. Das macht doch keinen Sinn.


    In den aktivierten Sprachen steht Deutsch / englisch / Französisch / Italenisch.


    Das kann nicht die Lösung sein. !!


    Hast du auf deinem Rechner einen R5 + R6 client. ? Wenn ja dann sollte ja bei dir sowohl in R5 als auch in R6 es möglich sein mit den gleichen Formeln zu arbeiten. Bei mir geht das nicht.

  • Ich gehe einmal davon aus, daß du ein Notes installiert hast und ein weiteres betreibst, ohne daß es im enegeren Wortsinn installiert ist - es geht ja gar nicht anders.


    Notes hat in der Notes.INI normalerweise (neben der Sprache des verwendeten Wörterbuchs) zwei Sprachkennungen.


    Eine ist
    REGION=DE


    Dieser Wert ist für die Steuerung von mit der Global Workbench entworfenen mehrsprachigen Komponenten verantwortlich. Ob er weitere Auswirkungen hat, weiß ich nicht.


    DOMINORESLANG=DE


    ist - meine ich - die Sprache des RessourceKits. Steht dort möglicherweise eine der Sprachen auf EN, wenn dein Excel nur noch englisch mit dir sprechen will ?

  • also auf meinem system habe ich sogar 3 Notesversionen installiert. Das geht schon wieso auch nicht ??


    Bei mir läuft 4.6 / 5.0.11 / 6.5.3


    Alle gleichzeitig !!


    in 5 steht in der Ini


    DominoResLang=de
    AltNameLanguage=de
    ContentLanguage=de
    Region=de


    in 6


    Region=de
    AltNameLanguage=de
    ContentLanguage=de-DE


    nur das R6 spricht englisch (Leider auch bei den Kunden die die Applikationen dann verwenden) Die Kunden hatten vorher R5 und da lief es nun haben sie 6 da läufts nicht. Also ist meine installtion soe wie sie beim Kunden auch sind. !!


    Ich denke es ist ein reines Notes Problem !!


    Nochmal die Frage. Habt Ihr beim Excel-Formel programmieren mit R5 bisher die Deutsche oder englische Schreibe benutzt ?!? Das ist halt die Frage. Ab 6 geht denke ich nur englisch