Fernwartungsmodul via VBA
10.03.2006 18:07:44
Uwe
Nun ja, im Grunde bin ich ja schon stolz, das gerade meine Datei, Excel, (logo) eigentlich schon ein richtiges Programm, in Kürze in knapp 50 Außenstellen meines Arbeitgebers, über nahezu ganz Deutschland verteilt, zum Einsatz kommen soll. So weit, so gut
Regelmäßig werden an dieser Anwendung kleinere Änderungen bzw. Ergänzungen notwen-dig sein. Verständlich, das ich dazu nicht ständig unterwegs sein mag? Sicher. Insgesamt ist es zugleich aber auch, der hinterlegten Lizenzen wegen, schlicht nicht möglich, die Anwen-dung via Mail über einen Verteile komplett zu verschicken und auszutauschen. So denke ich eben über die Fernwartung nach.
Auch ich zähle unmittelbar zu dem Benutzerkreis, so dass ich durchaus jegliche Änderungen eh unter meiner eigenen Lizenz erarbeite und teste. So ist es schlicht erforderlich, aus dieser Administratorversion heraus, überarbeitete Module zu exportieren und über Mailverteiler zu versenden. Der Export könnte folgendermaßen aussehen:
Sub Exportieren()
Dateiname = "c:\temp\Modul.bas"
Application.VBE.ActiveVBProject.VBComponents("Modul1").Export _
Dateiname
End Sub
Könnte! Wobei die Namen der zu exportierenden Module ließen sich über eine Inputbox ab-fragen. Wenn es denn Sinn macht, selbst das via VBA zu lösen. Ich stecke eh in der VA Um-gebung, so es was zu verändern gilt. Wie dann aber genau dieses Modul (Inputbox) via Mail verschicken? Die gewöhnliche Mail, ohne Anlage, dafür mit Standarttext sähe zunächst mal so aus:
Private Declare Function ShellExecute Lib "Shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub Mail(sAdr As String, Optional sSub As String, _
Optional sBody As String)
Call ShellExecute(0&, "Open", "mailto:" + sAdr + _
"?Subject=" + sSub + "&Body=" + sBody, "", "", 1)
End Sub
Private Sub MailVersenden()
Dim Lizenznehmer As String
Lizenznehmer = ThisWorkbook.Worksheets("Start").Cells(2, 10)
Dim Adresse As String
Adresse = "Benutzer@mailadresse.de"
Dim Betreff As String
Betreff = "Programmupdate " + Lizenznehmer
Call Mail(Adresse, Betreff)
End Sub
Im Text dieser Mail mit den neuen Modulen als Anlage ließe sich der Pfad nun flugs genau beschreiben, wo mein Programm neue Bestandteile erwartet.
Aus der Anwendung heraus soll der jeweilige User nun problemlos in der Lage sein, diese neuen Module zu importieren. Das sähe vielleicht ganz einfach so aus:
Sub Importieren()
Dateiname = "c:\temp\Modul.bas"
Application.VBE.ActiveVBProject.VBComponents.Import Dateiname
End Sub
Das Problem ist hierbei einfach das, dass die zu importierenden Module nicht einfach ständig Modul.bas heißen dürfen, da sich sonst innerhalb der Anwendung das eine stets überschrieben wird. Aber, wem sage ich das
Lange Erklärung, dafür kurzer Sinn. Ich bin für jeden Hinweis dankbar, für eine Lösung aber ist schlicht super. Klar, dass all das mal wieder so gar nicht eilig ist!!! Es brennt schlicht-weg.
Wie aber soll ich das denn nun wieder lösen