Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable aus Modul in DieseArbeitsmappe verwenden

Forumthread: Variable aus Modul in DieseArbeitsmappe verwenden

Variable aus Modul in DieseArbeitsmappe verwenden
13.09.2005 15:07:24
Gülich
Hallo,
ich deklariere in einem Modul eine Variable mit dem aktuellen Rechnernamen
Modul 1:
Public rechnername As String
Declare Function GetComputerName& Lib "kernel32" Alias "GetComputerNameA" (ByVal lbbuffer As String, nsize As Long)
------------------------------------------------------------------------------
Sub Rechnername_auslesen()
Dim rechnername As String * 64
Call GetComputerName(rechnername, 64)
End Sub
In diesem Modul sind auch noch weitere Makros
In "DieseArbeitsmappe" läuft folgendes Makro beim Start ab:
Option Explicit
-------------------------------------------------------------

Private Sub Workbook_Open()
Application.Run ("LFR_4_KEA.XLS!Rechnername_auslesen")
Dim variable1 As Boolean
Dim ZuÖffnendeDatei
Dim fs
'Prüfen ob Datei "Rechnername.txt" besteht
ZuÖffnendeDatei = "T:\" & rechnername & ".txt"
Set fs = CreateObject("Scripting.FileSystemObject")
variable1 = fs.FileExists(ZuÖffnendeDatei)
'Wenn Datei nicht besteht, dann Fragen ob beenden oder nicht
'(um ActiveWindow.Close umgehen zu können)
If variable1 = "Falsch" Then
Dim Mldg, Stil, Titel, Antwort                                                               ' Variablen definieren
Mldg = "Datei aus Caché konnte nicht gefunden werden! Luftfrachtrechner wieder schliessen?"   ' Meldung definieren.
Stil = vbYesNo + vbCritical + vbDefaultButton1 + vbApplicationModal + vbMsgBoxSetForeground  ' Schaltflächen definieren.
Titel = ZuÖffnendeDatei & " Datei fehlt - beenden?"                                                        ' Titel definieren.
Antwort = MsgBox(Mldg, Stil, Titel)
If Antwort = 6 Then
GoTo weiter
Else: GoTo abbrechen
End If
End If
'eigentlicher Sinn des Skriptes: Daten von KEA auslesen, in Excel bearbeiten und
'und Textfile wieder zurückschreiben - funktioniert gut
Application.Run ("LFR_4_KEA.XLS!Daten_KEA_2_XLS")
Application.Run ("LFR_4_KEA.XLS!Daten_XLS_2_KEA")
weiter:
'EXCEL schliessen
ActiveWindow.Close SaveChanges:=False ' ACHTUNG!!! Nach aktivieren schliesst EXCEL selbständig!
Close
abbrechen:
End Sub

Jetzt sollte ich also in "DieseArbeitsmappe" die Variable "Rechnername" zur Verfügung haben. geht das irgendwie? Ich hatte auch schon versucht das Makro "Rechnername_auslesen" in diese Arbeitsmappe zu schreiben, ging aber auch nicht.
Hat jemand eine Lösung auf mein Problem?
Meine VBA-Kenntnisse sind recht dürftig, ich arbeite viel mit der Hilfe und mit logischem Denken, weniger mit Wissen - also erwartet nicht viel von mir. Danke.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable aus Modul in DieseArbeitsmappe verwenden
13.09.2005 15:23:07
Ramses
hallo
nachdem du mit Hilfe und logischem Denken arbeiten kannst, hier mal ein Link
http://www.vbarchiv.net/vbapi/GetComputerName.php
Wo die Funktion besser dargestellt ist.
Irgendwie muss deine Variable den Namen erhalten !!!!
GetComputerName ist nur der Aufruf einer API-Funktion um einen Wert zu erhalten,... deine Variable hat ihn aber noch nicht
Gruss Rainer
Brain und Google sind keine Konkurrenten :-)
Anzeige
AW: Variable aus Modul in DieseArbeitsmappe verwen
14.09.2005 08:12:12
Michel
Hallo,
habe selbst nochmal rumgetüftelt. Also die Deklaration muss man im Modul machen, das eigentliche Makro Rechnername_auslesen() habe ich gelöscht und den Inhalt direkt in DieseArbeitsmappe ( Sub Workbook_Open() )verwendet. Funktioniert jetzt tadellos.
Danke für due Unterstützung.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige