Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Fehler beim Kompilieren Mehrdeutiger Name AutoNew

Frage Microsoft Microsoft Office

Mitglied: Integra

Integra (Level 1) - Jetzt verbinden

17.02.2011 um 11:37 Uhr, 7140 Aufrufe, 8 Kommentare

Hallo Leute

Ich habe nur sehr wenig Ahnung von Makros und stehe hier nun vor einem ziemlichen Problem.

Auf der Microsoft-Homespage habe ich die wichtigsten Punkte zur Erstellung von Makros angeschaut und dann mithilfe eines Kollegens folgendes Script erstellt.
Dieses Script soll die Informationen aus dem AD lesen und in das Word-File schreiben, welches dann als Template bei den Usern eingebettet wird.

Skript:
Sub AutoNew()
'
' AutoNew Makro
'
'
Sub ActiveDirectoryDaten()
Dim qQuery, objSysInfo, objuser
Dim Name, EMail, Phone, Fax
Set objSysInfo = CreateObject("ADSystemInfo") objSysInfo.RefreshSchemaCache qQuery = "LDAP://ou=,ou=,dc=,dc=,ou=" & objSysInfo.UserName Set objuser = GetObject(qQuery)

Name = objuser.firstname & " " & objuser.lastname Phone = objuser.TelephoneNumber Fax = objuser.facsimileTelephoneNumber EMail = objuser.mail

smsEinfügen "ADTelefon", Phone
smsEinfügen "ADName", Name
smsEinfügen "ADFax", Fax
smsEinfügen "ADEmail", EMail

If ActiveDocument.Bookmarks.Exists("Datum") = True Then ActiveDocument.FormFields("Datum").Result = Date End If End Sub

If ActiveDocument.Bookmarks.Exists(Textmarke) = True Then ActiveDocument.FormFields(Textmarke).Result = Variable End If End Sub

Sub AutoOpen()
Call ActiveDirectoryDaten
End Sub

Sub AutoNew()
Call ActiveDirectoryDaten
End Sub

End Sub

Wenn ich das Skript nun ausführe, erhalte ich die im Titel stehende Fehlermedlung.

Ich weis jetzt leider nicht wo der Fehler steckt und welche Zeilen nicht korrekt sind und wäre echt froh wenn mir jemand helfen könnte.

Ich danke sehr und wünsche noch einen angenhemen Tag.

Gruss Integra!
Mitglied: MrTrebron
17.02.2011 um 11:42 Uhr
Hi Integra

01.
' AutoNew Makro 
02.
03.
04.
Sub ActiveDirectoryDaten() 
05.
Dim qQuery, objSysInfo, objuser 
06.
Dim Name, EMail, Phone, Fax 
07.
Set objSysInfo = CreateObject("ADSystemInfo") objSysInfo.RefreshSchemaCache qQuery = "LDAP://ou=,ou=,dc=,dc=,ou=" & objSysInfo.UserName Set objuser = GetObject(qQuery) 
08.
 
09.
Name = objuser.firstname & " " & objuser.lastname Phone = objuser.TelephoneNumber Fax = objuser.facsimileTelephoneNumber EMail = objuser.mail 
10.
 
11.
smsEinfügen "ADTelefon", Phone 
12.
smsEinfügen "ADName", Name 
13.
smsEinfügen "ADFax", Fax 
14.
smsEinfügen "ADEmail", EMail 
15.
 
16.
If ActiveDocument.Bookmarks.Exists("Datum") = True Then ActiveDocument.FormFields("Datum").Result = Date  
17.
End If  
18.
 
19.
If ActiveDocument.Bookmarks.Exists(Textmarke) = True Then ActiveDocument.FormFields(Textmarke).Result = Variable  
20.
End If  
21.
 
22.
End Sub 
23.
 
24.
Sub AutoOpen() 
25.
Call ActiveDirectoryDaten 
26.
End Sub 
27.
 
28.
Sub AutoNew() 
29.
Call ActiveDirectoryDaten 
30.
End Sub
Du musst das Sub AutoNew() mit End Sub abschließen bevor du die nächsten Subs schreibst und auch nicht mehrfach End Sub in den Code packen ohne ein neues Sub anzufangen

Gruß
Norbert
Bitte warten ..
Mitglied: Integra
17.02.2011 um 11:59 Uhr
Hallo Norbert

Danke für die Hilfe.
Werde den Quelltext mal heute ausprobieren.

Eine Frage hätte ich da noch. Reicht es wenn ich bei der LDAP-Abfrage einfach die OU mit allen Usern angebenen oder muss ich für jeden User den kompletten Pfad angeben?

Gruss und danke nochmals für deine Hilfe!

Integra!
Bitte warten ..
Mitglied: MrTrebron
17.02.2011 um 12:55 Uhr
Hi Integra,

zu der Abfrage selbst kann ich dir leider nichts sagen.

Gruß
Norbert
Bitte warten ..
Mitglied: Integra
17.02.2011 um 13:54 Uhr
Hallo Norbert!

Ich habe mir deinen Quelltext nun mal ausgeliehen und bei mir eingefügt, trotzdem erhalte ich bei Zeile 28 immnoch die gleich Fehlermeldung.
Weiter erhalte ich in verschiedenene Zeilen die Meldung "Erwarte Anweisungsende" mit der ich auch wenig anfangen kann.

Hoffe du hast hier auch noch guten Rat.

Danke und Gruss

Integra!
Bitte warten ..
Mitglied: MrTrebron
17.02.2011 um 14:31 Uhr
Hi

es soll eine Funktion aufgerufen werden die heißt
smsEinfügen
Hast du die Funktion noch irgendwo?
Oder was sollen die Zeilen
01.
smsEinfügen "ADTelefon", Phone 
02.
smsEinfügen "ADName", Name 
03.
smsEinfügen "ADFax", Fax 
04.
smsEinfügen "ADEmail", EMail
Gruß
Norbert
Bitte warten ..
Mitglied: Integra
17.02.2011 um 15:13 Uhr
Nein, ich habe die Funktionen nur in diesen Zeilen, sonst niergendwo.

Ich muss dir ehrlich sagen, ich weis nicht was die Zeillen sollen, vielleicht sind sie dafür zuständig, wo auf dem Blatt die informationen eingefügt werden sollen.

Ich habe sie aus dem Text entfernt und erneut kompiliert aber die haben nix zur Sache... die Fehler enstehen bei den Zeilen 7 und 30, wobei bei 30 folgender Fehler erscheint "Fehler beim Kompilieren: Nach End Sub, End Function oder End Property können nur Kommentare stehen" was für mich heisst das auch hier wieder eine Funktion fehlt.

Zudem erhalte ich auf Zeile 7 einen Syntaxfehler... der nur auf die falsche LDAP-Abfrage zurückzuführen ist.

Gruss!
Bitte warten ..
Mitglied: MrTrebron
17.02.2011 um 15:26 Uhr
Hi

01.
 
02.
' AutoNew Makro 
03.
04.
05.
Sub ActiveDirectoryDaten() 
06.
Dim qQuery, objSysInfo, objuser 
07.
Dim Name, EMail, Phone, Fax 
08.
Set objSysInfo = CreateObject("ADSystemInfo") 
09.
objSysInfo.RefreshSchemaCache 
10.
qQuery = "LDAP://ou=,ou=,dc=,dc=,ou=" & objSysInfo.UserName 
11.
Set objuser = GetObject(qQuery) 
12.
 
13.
Name = objuser.firstname & " " & objuser.lastname 
14.
Phone = objuser.TelephoneNumber 
15.
Fax = objuser.facsimileTelephoneNumber 
16.
EMail = objuser.mail 
17.
 
18.
If ActiveDocument.Bookmarks.Exists("Datum") = True Then 
19.
ActiveDocument.FormFields("Datum").Result = Date 
20.
End If 
21.
 
22.
If ActiveDocument.Bookmarks.Exists(Textmarke) = True Then 
23.
ActiveDocument.FormFields(Textmarke).Result = Variable 
24.
End If 
25.
 
26.
End Sub 
27.
 
28.
Sub AutoOpen() 
29.
Call ActiveDirectoryDaten 
30.
End Sub 
31.
 
32.
Sub AutoNew() 
33.
Call ActiveDirectoryDaten 
34.
End Sub
Schaue mal ob dein Code so formatiert ist

Norbert
Bitte warten ..
Mitglied: Integra
18.02.2011 um 11:04 Uhr
Hallo Norbert.

Also, ich habe mein Skript nun mit deinem Vorschlag verglichen.
Mein Code sieht so auf:

01.
Sub AutoNew() 
02.
03.
' AutoNew Makro 
04.
05.
06.
End Sub 
07.
 
08.
Sub ActiveDirectoryDaten() 
09.
Dim qQuery, objSysInfo, objuser 
10.
Dim Name, EMail, Phone, Fax 
11.
Set objSysInfo = CreateObject("ADSystemInfo") 
12.
objSysInfo.RefreshSchemaCache 
13.
qQuery = "LDAP://ou=,ou=,dc=,dc=" & objSysInfo.UserName 
14.
Set objuser = GetObject(qQuery) 
15.
 
16.
Name = objuser.firstname & " " & objuser.lastname 
17.
Phone = objuser.TelephoneNumber 
18.
Fax = objuser.facsimileTelephoneNumber 
19.
EMail = objuser.mail 
20.
 
21.
 
22.
If ActiveDocument.Bookmarks.Exists("Datum") = True Then 
23.
ActiveDocument.FormFields("Datum").Result = Date 
24.
End If 
25.
 
26.
If ActiveDocument.Bookmarks.Exists(Textmarke) = True Then 
27.
ActiveDocument.FormFields(Textmarke).Result = Variable 
28.
End If 
29.
 
30.
End Sub 
31.
 
32.
 
33.
Sub AutoOpen() 
34.
Call ActiveDirectoryDaten 
35.
End Sub 
36.
 
37.
 
38.
Sub Auto() 
39.
Call ActiveDirectoryDaten 
40.
End Sub
Nun scheint eigentlich alles zu passen, leider erhalte ich beim kompilieren nun noch den Fehler "Laufzeitfehler -'2147463168 (80005000)': Automatisierungsfehler" bei Zeile 14.
Ich glaube langsam kommen wir der Geschichte näher^^

Danke und Gruss!

Edit:
In Zeile 14 verlangt er die LDAP-Abfrage und in der Klammer steht der Name der Abfrage die er verwenden soll (qQuery), ich glaube einfach das meine LDAP-Abfrage falsch ist. Ich weis eben nicht ob ich nun den Pfad bis zum User angeben muss oder ob es reicht wenn ich die OU der User angebe. Findet die genau Abfrage in Word nicht in den Zeilen 16-19? Das Makro soll eben den User erkennen der gerade angemeldet ist, also nix vordefiniertes.

Gruss Integra!
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Access 2010 Fehler beim kompilieren (2)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Exchange Server
MS Exchange 2013 KillBit Fehler (2)

Frage von amarsin zum Thema Exchange Server ...

Windows Update
gelöst Windows Update Fehler Code 0x80244018 bei Exchange 2010 (5)

Frage von Froschmedia zum Thema Windows Update ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(5)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...