Hallo Taurec,
der Fehler kommt immer in der letzten Zeile, da wo er die Sortierung ausführen soll, die Selection zuvor funktionieren
Hallo Taurec,
der Fehler kommt immer in der letzten Zeile, da wo er die Sortierung ausführen soll, die Selection zuvor funktionieren
Hallo Diali,
OK, hab es dann mal angepasst, aber....
xlSheet.Range("F2").Select
xlSheet.Range(xlapp.Selection, xlapp.Selection.End(-4121)).Select
xlapp.Selection.Sort xlSheet.Range("F2"), 1, 0, 1, False, 1, 0
funzt auch nicht. Immer wieder der Fehlerhinweis "Bezug ist ungültig"
habe es dann noch mal mit der UsedRange getestet, aber
xlsheet.UsedRange.Select
xlapp.Selection.Sort xlSheet.Range("F2"), 1, 0, 1, False, 1, 0
aber auch hier kommt der gleiche Fehler, was meint er denn mit "Bezug ist ungültig"? eventl. die Angabe
"xlsheet.Range("F2") ??
Hallo Diali,
vielen Dank für den Tipp.
Aber leider erhalte ich damit nur eine andere Fehlermeldung:
"Instant member SELECTION does not exist"
Hallo Diali,
Hallo Taurec,
ich habe es jetzt mal ganz simpel probiert und nur die beiden ersten Parameter mitgegeben.
xlsheet.UsedRange.Sort xlsheet.Range("F2"), 1,1
ich erhalte aber jetzt die Meldung, dass der "Bezug ungültig" ist.
Was ist denn damit gemeint ?
Den Bereich "UsedRange" und die Spalte ("F2") habe ich doch übergeben.
Weiß Jemand Hilfe ?
Hallo Diali,
habe es jetzt mal so probiert, bekomme aber immer die Fehlermeldung "Bezug ist ungültig"
xlsheet.UsedRange.sort xlsheet.Range("C2"), 1, 2, 0, 0, 1
muss ich eigentlich alle Parameter mitgeben, für
OrderCustom:=1, MatchCase:=False
habe ich keine gefunden (Quickinfo), dafür habe ich 0 gesetzt.
Hallo Diali,
das Makro sieht so aus.
Range("E2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
bei der Anpassung ändere ich Range......
in xlsheet.Range.......
die Doppelpunkte entferne ich auch der Formal,
das klappt ja noch, wie verfahre ich aber mit "Selection",
muss ich die vorher definieren?
With xlsheet
.UsedRange.sort Key1 = .Range("C2"), Order1 = xlAscending, Header = xlno, MachCase = False, Orientation = xlTopToBottom
End With
so klappt es z.B. nicht
Hallo @All,
ich hätte da gerne ein Problem.
Ich exportiere aus Notes eine Datenbank nach Excel und bilde mir dann in Excel Summen, bringe Excel dazu die übergebenen nummerischen Werte auch als solche zu erkennen, etc..... .
Nun möchte ich aber auch noch eine Spalte in Excel sortieren, das klappt aber einfach nicht.
Hat Jemand eine brauchbare Lösung, die Lösungen selbst im Handbuch "Excel 2007 VBA" funzen einfach nicht und auch das googlen hat mir nicht geholfen. Ich suche dringend einen Sehenden.
Gruß Harald
taurec
genau das war es.
Ich habe das Script geändert und das Doc zuvor in den Globals definiert.
If etime = 120 Then
Dim wks As New NotesUIWorkspace
Call wks.EditDocument(True, Doc,,,, False)
doc.saveoptions = "0"
Call uidoc.Close(True)
End If
Jetzt funzt es wunderbar.
Vielen Dank,
Gruß Harald
taurec
vielen Dank habe es mal so probiert, aber leider ohne Erfolg.
If OpenTime = 120 Then
Dim wks As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = wks.CurrentDocument
Set doc = uidoc.Document
Call wks.EditDocument(False,doc)
doc.saveoptions = "0"
Call uidoc.Close(True)
End If
Nun passiert leider überhaupt nichts mehr.
Hallo miteinander,
ich hätte da gerne ein Problem.
In einer Datenbank habe ich einen Timer etabliert, der ein geöffnetes Dokument nach einer bestimmten Zeit (2 Min.) automatisch schließen soll. Das klappt zwar auch, aber es wird nicht das Dokument geschlossen in dem der Timer läuft; sondern das momentan vom User bearbeitete, obwohl dieses sich in einer anderen DB befindet. Es schließt sich also immer das momentan aktive Dokumentenfenster.
mein Code in der Sub für den Timer lautet:
if OpenTime = 300 then
dim Wks as New Notesuiworkspace
dim uidoc as notesuidocument
set uidoc = wks.currentdocument
dim doc as notesdocument
set doc = uidoc.document
doc.SaveOptions = "0"
call uidoc.close(true)
end if
Hat jemand einen Tipp für mich ?
Gruß Harald
Danke für eure Hinweise.
Gruß Harald
Hallo,
sicherlich kann man beim Clientstart das Startlogo von Notes verbergen. Nur leider finde ich dazu nichts in der Hilfe. Weiss jemand Rat?
Gruß Harald
Vielen Dank für die Antworten, leider konntet ihr mir damit nicht so recht weiterhelfen.
Also habe ich einfach mal probiert, die Formel nicht unter "benanntes Element"; sondern als "URL" zu hinterlegen.
Als "URL" funktionierte die Formel mit @GetProfileField
Gruß
Harald
Hallo,
besteht die Möglichkeit in einer Gliederung die "Quelle" per Formel bzw. Script zu ändern.
Es gibt da ja ein Feld "Formel für den Namen des benannten Elements".
Ich habe versucht mit @GetProfileField dort einen Wert zu zuweisen, klappt aber nicht.
In der Hilfe habe so recht auch nichts gefunden, ausser dass @GetProfileField wohl dort nicht funktioniert.
Ist das korrekt oder ist jemanden eine ändere Möglichkeit bekannt. Vielleicht gibt es ja Umwege um zu dem gewünschten Erfolg zu kommen.
Grund dafür ist:
Ich habe eine multiple Workflow-DB und jeder WF hat dort eine eigene View, die individuell durch den DB-Verantwortlichen gestaltet werden kann.
Der DB-Verantwortliche kann den Namen einer View, Spaltenzahl und deren Inhalt etc. auch individuell im ProfilDoc vergeben, die View wird dann per Agent geändert.
Bin für jeden Tipp dankbar.
Gruß
Harald
@Bastian
es sollte eigentlich nur eine Arbeitserleichterung sein. So könnte eine berechtigte Person aus einem Workflow heraus sofort in den Designer wechsel und hätte die DB gleich im Zugriff, ohne über Öffnen etc. zu gehen und er muss die DB auch nicht auf dem Workplace haben.
Diali
Nein, über eine Netzwerkfreigabe wollte ich das sicher nicht tun.
Habe Deinen Vorschlag einmal ausprobiert. Das funzt.
@command([Execute];"C:\\programme\\Notes\\designer.exe";"NameDesDominoServers!!Pfad\\DB.nsf")
Vielen Dank für Deine Hilfe.
Gruß Harald
Hallo,
ich möchte über eine Schaltfläche die Designer-Task aufrufen und dabei gleich eine bestimmte Datenbank auf dem Notesserver öffnen.
OK, mit :
@command([execute];"C:\Programme\Notes\designer.exe";"Dos-Pfad // Datei") funktioniert es ja, aber kann ich da auch irgendwie mit db.server + db.filepath arbeiten ?
Eine Netzressource wollte ich eigentlich nicht extra bereitstellen.
Grüße aus dem nassen S-H
Harald
Ich habe es aufgegeben. Funzt einfach nicht und ich mag nicht mehr.
RockWilder
Vielen Dank für den Tipp, aber das will bei mir nicht so richtig funktionieren. Die Daten sind zwar geändert, aber gedruckt werden die Platzhalter unverändert.
Vielleicht kann sich mal jemand mein Script ansehen und findet meinen Fehler.
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Dim filenames As Variant
Dim TempFilePath As String
Dim TempFileName As String
Dim FilePath As String
Dim Trennzeichen As String
Dim Adresse As String
Trennzeichen = ";"
Salutation = ""
Dim Doc As NotesDocument
Dim body As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim rtrange As NotesRichTextRange
'Get the working document.
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Open FileNames(0) For Input As #1
Line Input #1, Data
Anrede = Strtoken(DATA, Trennzeichen , 1)
Anrede = Mid(Anrede,2,Len(Anrede)-2)
Titel = Strtoken(DATA, Trennzeichen , 2)
Titel = Mid(Titel,2,Len(Titel)-2)
Vorname = Strtoken(DATA, Trennzeichen , 3)
Vorname = Mid(Vorname,2,Len(Vorname)-2)
Nachname = Strtoken(DATA, Trennzeichen , 4)
Nachname = Mid(Nachname,2,Len(Nachname)-2)
Strasse = Strtoken(DATA, Trennzeichen , 5)
Strasse = Mid(Strasse,2,Len(Strasse)-2)
PLZ = Strtoken(DATA, Trennzeichen , 6)
PLZ = Mid(PLZ,2,Len(PLZ)-2)
Ort = Strtoken(DATA, Trennzeichen , 7)
Ort = Mid(Ort,2,Len(Ort)-2)
AnredeBerater = Strtoken(DATA, Trennzeichen , 8)
AnredeBerater = Mid(AnredeBerater,2,Len(AnredeBerater)-2)
NameBerater = Strtoken(DATA, Trennzeichen , 9)
NameBerater = Mid(NameBerater,2,Len(NameBerater)-2)
TelefonBerater = Strtoken(DATA, Trennzeichen , 10)
TelefonBerater = Mid(TelefonBerater,2,Len(TelefonBerater)-2)
ErsatzVariable1$ = Strtoken(DATA, Trennzeichen , 11)
ErsatzVariable1$ = Mid(ErsatzVariable1$,2,Len(ErsatzVariable1$)-2)
ErsatzVariable2$ = Strtoken(DATA, Trennzeichen , 12)
ErsatzVariable2$ = Mid(ErsatzVariable2$,2,Len(ErsatzVariable2$)-2)
ErsatzVariable3$ = Strtoken(DATA, Trennzeichen , 13)
ErsatzVariable3$ = Mid(ErsatzVariable3$,2,Len(ErsatzVariable3$)-2)
ErsatzVariable4$ = Strtoken(DATA, Trennzeichen , 14)
ErsatzVariable4$ = Mid(ErsatzVariable4$,2,Len(ErsatzVariable4$)-2)
ErsatzVariable5$ = Strtoken(DATA, Trennzeichen , 15)
ErsatzVariable5$ = Mid(ErsatzVariable5$,2,Len(ErsatzVariable5$)-2)
ErsatzVariable6$ = Strtoken(DATA, Trennzeichen , 16)
ErsatzVariable6$ = Mid(ErsatzVariable6$,2,Len(ErsatzVariable6$)-2)
ErsatzVariable7$ = Strtoken(DATA, Trennzeichen , 17)
ErsatzVariable7$ = Mid(ErsatzVariable7$,2,Len(ErsatzVariable7$)-2)
ErsatzVariable8$ = Strtoken(DATA, Trennzeichen , 18)
ErsatzVariable8$ = Mid(ErsatzVariable8$,2,Len(ErsatzVariable8$)-2)
ErsatzVariable9$ = Strtoken(DATA, Trennzeichen , 19)
ErsatzVariable9$ = Mid(ErsatzVariable9$,2,Len(ErsatzVariable9$)-2)
ErsatzVariable10$ = Strtoken(DATA, Trennzeichen , 20)
ErsatzVariable10$ = Mid(ErsatzVariable10$,2,Len(ErsatzVariable10$)-2)
If uidoc.FieldGetText("Form") = "Formular(Standard)" Then
If AnredeBerater <> "" And NameBerater <> "" Then
uidoc.FieldSetText("Geschäftsstelle") , AnredeBerater + " " + NameBerater
uidoc.FieldSetText("voba_ap_name") , ""
End If
End If
If TelefonBerater <> "" Then uidoc.FieldSetText("voba_ap_tel") , Cstr(Telefonberater)
If Titel <> "" Then Titel = Titel + " "
If Vorname <> "" Then Vorname = Vorname + " "
Adresse = Anrede+Chr(10)+ _
Titel+Vorname+Nachname+Chr(10)+ _
Strasse+Chr(10)+ _
PLZ+" "+Ort
uidoc.FieldSetText("Address"),Adresse
If Anrede = "Frau" Then
Salutation = "Sehr geehrte Frau "+Titel+Nachname+","
Elseif Anrede = "Herr" Then
Salutation = "Sehr geehrter Herr "+Titel+Nachname+","
Elseif Anrede = "Eheleute" Then
Salutation = "Sehr geehrte Frau " +Titel + Nachname+","+ Chr(10)+ _
"sehr geehrter Herr " +Titel + Nachname+","
Elseif Anrede = "" Or Anrede = "Firma" Then
Salutation = "Sehr geehrte Damen und Herren,"
End If
uidoc.FieldSetText("Anrede") , Salutation
Set body = doc.GetFirstItem("Body")
Set rtnav = body.CreateNavigator
Call rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH)
Set rtrange = body.CreateRange
count& = rtrange.FindAndReplace (SuchVariable1$ , ErsatzVariable1$, RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
Set rtrange = body.CreateRange
count& = rtrange.FindAndReplace (SuchVariable2$ , ErsatzVariable2$, RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
Call body.Compact
Call doc.Save(True, False)
Call uidoc.close
Call workspace.EditDocument(True, Doc,,,, False)
Call uidoc.Print(1)
Close #1
Alles anzeigen
[size=x-small]
/edit RockWilder:
Code bitte in entsprechende Tags verpacken, das macht es übersichtlicher. Danke![/size]
ich habe da ein Problem mit dem Datenaustausch zwischen Back-End und Front-End.
In einem geöffneten Dokument starte ich einen Agenten, der Änderungen in diversen Feldern des Dokuments vornimmt und das Dokument anschließend druckt.
Klappt auch prima soweit, wenn ich aber dabei auch Änderungen in Richtextfeldern vornehme, kommen diese Änderungen nicht rüber.
In der Hilfe steht dazu, dass Änderungen in Richtextfeldern im BackEnd erst nach einem Close und ReOpen zur Verfügung stehen.
Mein Problem, wie kann ich das im Agenten abbilden ?
Geht's überhaupt ?
Gruß Harald
das war's.
Vielen Dank für deine Hilfe.
Gruß Harald