Autor Thema: Excelimport anpassen von Windows7 auf Office365  (Gelesen 4503 mal)

Offline dh-paule

  • Aktives Mitglied
  • ***
  • Beiträge: 199
  • Geschlecht: Männlich
  • DNUG Award 2006
Excelimport anpassen von Windows7 auf Office365
« am: 22.10.18 - 09:12:16 »
Hallo zusammen,

wir nutzen schon seit langer Zeit ein Excelimportscript für unsere Datenbanken.
Dies hat immer sehr zuverlässig funktioniert, doch nun kam Office 365 ;-)

Hat jemand eine Idee auf welche Versionsnummer das Script nun angepasst werden muss damit es mit O365 funktioniert.
Ich habe es mit der 15 probiert, erhalte jedoch eine Fehlermeldung bei der Ausführung.

Hat jemand einen Tipp / eine Idee?
Vielen Dank für eure Hilfe

Hier das script:

Code

Option Public
Option Declare
Sub Initialize
	' Dieser Agent enthält Routinen zum Import von Daten aus einem Excel File.
	' Die Datei kann über das File System ausgewählt werden. Anschließend werden die Daten ausgelesen und
	' über einen Schlüsselbegriff mit der Datenbank verglichen und bei Bedarf entsprechend angepasst 
	' eingetragen
	
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim view As NotesView
	Dim doc As NotesDocument
	Set db = session.CurrentDatabase
	Set doc = New NotesDocument(db)
	Dim item As NotesItem
	Dim One As String		 
	Dim row As Integer
	Dim written, records,ver  As Integer		 
	Dim FName As String
	Dim VName As String
	Dim xlFilename As String	
	Dim ans As String
	Dim Excel As Variant
	Dim xlWorkbook As Variant
	Dim xlSheet As Variant
	Dim fieldname1 As String
	Dim fieldname2 As String
	Dim keygeraet As String
	
	On Error Goto Error_call
	
	'  Datei finden 
	ans$ = Inputbox$("Speicherort der Excel Datei eingeben ","Info","c:\Import.xls")
	If  ans$ = ""  Then
		xlFilename = "c:\import.xls" ' Default Excel Dateiname
	Else
		xlFilename = ans$ ' Eingegebener Excel Dateiname
	End If
	
	' Welche Version von Excel wird benutzt
	ans$ = Inputbox$("Benutzen sie O365 ? ","Info","Y")
	If  ans$ = "n"  Or ans$ = "N" Then
		ver= 14
	Else
		ver= 15
	End If
	
	Set view = db.GetView("$GeraetByNumber") ' Alle Geräte nach seriennummer	
	
   ' Als nächstes eine Verbindung zu Excel herstellen und die Datei öffnen
   ' Dann werden die Zeilen der Reihe nach eingelesen und mit den vorhandenen
   ' Daten verglichen.	
	Print "mit Excel verbinden..."
	If ver =14 Then
		Set Excel = CreateObject( "Excel.Application.14" ) ' für windows7
	Else
		Set Excel = CreateObject( "Excel.Application.15" ) ' für office365
	End If
	
	'Excel.Visible = False ' excel Fenster wird nicht angezeigt
	Print "Öffne " & xlFilename & "..."
	Excel.Workbooks.Open xlFilename ' Excel Datei öffnen
	Set xlWorkbook = Excel.ActiveWorkbook
	Set xlSheet = xlWorkbook.ActiveSheet
	
      ' Geh durch die Excel Zeilen und hole die Daten in Notes rein
	row = 0
	written = 0
	
	Print "Import aus Excel wird gestartet..."
	Do While True 
		With xlSheet
		 ' Feld Definitionen
			row = row +1
			' Die erste Zeile ist für die Feldnamen. 
			If row=1 Then
				Fieldname1=.Cells( row, 1 ).Value
				Fieldname2=.Cells( row, 2 ).Value
				If Fieldname1 = "" Or Fieldname2 = "" Then
					Print "Verarbeitung wegen leerem Feldnamen beendet"
					Exit Do
				End If
			Else
				Fieldname1=.Cells( row, 1 ).Value
				If Fieldname1 = ""  Then
					Print "Verarbeitung wegen leerer Gerätenummer beendet"
					Exit Do
				End If
			' finde heraus, ob das Schlüsselwort (erste Spalte des Excel Files) in der Ansicht vorhanden ist
				KeyGeraet = .cells(row, 1).value
				Set doc = view.GetDocumentByKey(KeyGeraet,True)
				If Not doc Is Nothing  Then
					Set item = doc.ReplaceItemValue( Fieldname2, .Cells( row, 2 ).Value )		 
					Call doc.Save( True, True ) 'Save the new doc	
				End If
			' speicher für doc löschen
				Set doc = Nothing
				
				written = written + 1
				Print Str(written)
			End If		 		 		 			
		End With
	Loop
	Goto Done
Error_call:
	Messagebox "Prüfen Sie den speicherort der Excel Datei oder die Software Version", 64,"Warnung ! "
	Print " " ' Status Zeile löschen
	Exit Sub
	
Done:
	Print "Verbindung mit Excel unterbrechen..."
	xlWorkbook.Close False 'Excel Datei ohne zu Speichern wieder schließen
	Excel.Quit 'Excel Schließen
	Set Excel = Nothing ' Speicher wieder freigeben
	Print "Verarbeitete Zeilen " +Cstr(row) ' Status Z
End Sub

Life on earth may be expensive,
but it does include an annual free trip around the sun


_________________________________________________________

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Excelimport anpassen von Windows7 auf Office365
« Antwort #1 am: 22.10.18 - 09:24:43 »
Lass die Version einfach weg, dann kannst Du DIr auch die Abfrage sparen, die der Benutzer sowieso nicht beantworten kann ("Woher soll ich das wissen, ob ich O365 nutze, und was ist das überhaupt")

Code
Set Excel = CreateObject("Excel.application")
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline dh-paule

  • Aktives Mitglied
  • ***
  • Beiträge: 199
  • Geschlecht: Männlich
  • DNUG Award 2006
Re: Excelimport anpassen von Windows7 auf Office365
« Antwort #2 am: 23.10.18 - 13:04:25 »
Danke Dir… so einfach kanns gehen :-)
Da war mal wieder der Wald mit den vielen Bäumen…

P.S. mit Version 16 statt 15 klappts auch
Life on earth may be expensive,
but it does include an annual free trip around the sun


_________________________________________________________

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz