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

Entladen einer Form

Frage Entwicklung VB for Applications

Mitglied: Tolwyn

Tolwyn (Level 1) - Jetzt verbinden

08.05.2007, aktualisiert 10.05.2007, 3913 Aufrufe, 3 Kommentare

Hallo

ich habe ein kleines VBA Problem unter Outlook 2003.

Hier eine kurze Beschreibung dazu:

Ein Kontakt wird geöffnet und anschließend soll der User die Möglichkeit haben dem Kontakt bspw einen Brief oder ein Fax zu schreiben.
Wenn ein Fax geschrieben wird, wird zusätzlich noch ein Betreff oder eine alternative Faxnummer benötigt, welche über eine Userform eingegeben werden kann.
In der Userform kann man zwischen 2 verschiedenen Faxvorlagen, welche ein Dokument unter Word öffnen

Nun die Fragen bzw. das Problem.

1. Weiß jemand, ob und wie man einem Button in Outlook einen Befehl zuweisen kann. Also dass mein selbst erstellter Button zum Beispiel eine VBA-Funktion aufruft. (subroutinen sind problemlos möglich)
Damit hätte sich das meiste unter 2. erledigt.


2. Da ich dafür bisher keine Möglichkeit gefunden habe, bin ich auf ein Workaround ausgewichen, das folgendermaßen aussieht.

Die frage dazu gleich vorweg:


Wie kann ich VBA dazu bewegen, dass er bei einem Kontakt die Faxform lädt oder sie komplett weglässt?
bzw. er sie wieder entlädt, wenn ich auf abbrechen drücke ?






Button (in OL)
|
|
Sub c_h_fax
|
|
Form mit 2 Buttons
|
|
func_word (welche in ein Word dokument schreibt)

In worten:

Der Button in Outlook ruft eine Subroutine c_h_fax auf, welche die Form Faxform lädt.

code
load faxform
code


Die faxform ruft eine funktion konttak() auf und übernimmt deren Werte

code
public sub userform_initialize()


Set Daten_fax = kontakt()

FaxForm.txt_betreff.Value = "Kein Betreff"

FaxForm.faxbox.Value = Daten_fax.BusinessFaxNumber

FaxForm.Show

end sub

code

Wenn ich nun auf den Button "Abbrechen klicke, bekomme ich folgende Fehlermeldung:

Runtime error 91

Object variable or With block variable not set


Abbrechen-Button führt folgendes aus:


code

Unload FaxForm


code


Gruß

Tolwyn

PS:

Die benötigten Methoden müssten "Load" und "unload" sein, oder?
Mitglied: Diskilla
08.05.2007 um 15:54 Uhr
Ersetz das Unload FaxForm mal durch Unload Me
Bitte warten ..
Mitglied: Tolwyn
09.05.2007 um 22:58 Uhr
Hallo

das Problem besteht leider weiterhin.

Ich poste mal die relevanten Teile des Quelltextes:

Soviel nach dem es aussieht, ist es gar nicht;
Das meiste sind Kommentare und Deklarationen.

Ich füge noch kurz eine Erläuterung hinzu:

Zuerst wird über einen Button Modul 1 aufgerufen "c_h_fax"
Dieses ruft die Form "faxform" auf.

Beim Laden der Form wird die Funktion "Kontakt" geladen, welche als Rückgabewert die Kontaktdaten des aktuellen Kontakts hat. Diese werden der Variablen "Daten_Fax" übergeben.

Nun kann man in der Form einen Betreff und eine Faxnummer eingeben und sich ein Faxvorlage über einen der Buttons aussuchen oder die Aktion abbrechen.




Modul 1:

01.
 
02.
Sub c_h_fax() 
03.
 
04.
 
05.
Load FaxForm 
06.
 
07.
End Sub 
08.
 

Modul 2:


01.
 
02.
'last edited on 30-4-07 15:47 
03.
Public Function kontakt() As Object 
04.
 
05.
 
06.
'Variablen für Outlook 
07.
Dim app As Outlook.Application 
08.
Dim objactive As Outlook.Inspector 
09.
Dim obj_contact As Object 
10.
 
11.
' Es wird eine neue Instanz von Outlook erzeugt 
12.
Set app = New Outlook.Application 
13.
Set objactive = app.ActiveInspector 
14.
 
15.
 
16.
    ' Falls es kein aktives Fenster gibt, wird der Vorgang abgebrochen 
17.
   
18.
  If objactive Is Nothing Then 
19.
 
20.
        MsgBox "Es konnte kein aktives Kontaktfenster gefunden werden. Bitte oeffnen Sie einen Kontakt " & _ 
21.
        "und führen Sie die Aktion erneut aus.", vbInformation 
22.
         
23.
         
24.
 
25.
    ' Falls es ein aktives Fenster gibt, wird dessen Typ in obj_contact gespeichert. 
26.
     
27.
    Else 
28.
 
29.
        Set obj_contact = objactive.CurrentItem 
30.
         
31.
 
32.
         
33.
        ' Verschiedene Kontaktdaten werden ausgelesen, falls das aktuelle Fenster 
34.
        ' ein Kontakt ist; falls nicht wird eine Meldung ausgegeben 
35.
         
36.
        If obj_contact.Class = olContact Then 
37.
 
38.
         
39.
            Set kontakt = obj_contact 
40.
               
41.
                               
42.
            
43.
             
44.
    Else 
45.
         
46.
        MsgBox "Dies ist kein Kontakt(ContactItem) sondern ein " & TypeName(obj_contact) & ". Bitte oeffnen Sie einen Kontakt.", _ 
47.
        vbInformation 
48.
             
49.
 
50.
    End If 
51.
 
52.
End If 
53.
 
54.
 
55.
 
56.
End Function 
57.
 

Form:

01.
 
02.
 
03.
Dim Daten_fax As Object 
04.
 
05.
 
06.
Private Sub c_fax_Click() 
07.
 
08.
'Cotec-fax 
09.
 
10.
Call func_word(2, Daten_fax) 
11.
 
12.
Unload FaxForm 
13.
 
14.
End Sub 
15.
 
16.
 
17.
 
18.
Private Sub h_fax_Click() 
19.
 
20.
'Habersang-fax 
21.
 
22.
Call func_word(4, Daten_fax) 
23.
 
24.
Unload FaxForm 
25.
End Sub 
26.
 
27.
Private Sub abort_Click() 
28.
 
29.
Unload Faxform 
30.
 
31.
End Sub 
32.
 
33.
 
34.
Private Sub faxbox_Change() 
35.
 
36.
'Faxnummer 
37.
 
38.
End Sub 
39.
 
40.
 
41.
Private Sub txt_betreff_Change() 
42.
'Betreff 
43.
 
44.
End Sub 
45.
 
46.
Public Sub UserForm_initialize() 
47.
 
48.
 
49.
Set Daten_fax = kontakt() 
50.
 
51.
 
52.
FaxForm.txt_betreff.Value = "Kein Betreff" 
53.
 
54.
        FaxForm.faxbox.Value = Daten_fax.BusinessFaxNumber 
55.
 
56.
        FaxForm.Show 
57.
 
58.
 
59.
 
60.
End Sub 
61.
 
Bitte warten ..
Mitglied: Diskilla
10.05.2007 um 10:14 Uhr
01.
> Private Sub h_fax_Click() 
02.
>  
03.
> 'Habersang-fax 
04.
>  
05.
> Call func_word(4, Daten_fax) 
06.
>  
07.
> Unload FaxForm 
08.
> End Sub 
09.
>  
10.
> Private Sub abort_Click() 
11.
>  
12.
> Unload Faxform 
13.
>  
14.
> End Sub 
15.
>  
16.
>  
17.
> Private Sub faxbox_Change() 
18.
>  
19.
> 'Faxnummer 
20.
>  
21.
> End Sub 
22.
>  
23.
> 

Hi. Du hast da einmal Unload FaxForm stehen. Fax und Form jeweils groß und bei der nächsten Sub hast du Unload Faxform stehen. Könnte es vielleicht schon an diesem einen tipfehler liegen??
Dein Problem tritt beim Klicken des Abbrechen buttons auf oder?? Genau da ist Faxform einmal anders geschrieben als sonst.

Hoffe das hilft schon. Sonst entdecke ich nämlich nix

Greetz Diskilla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...