Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variable1 = V1 & v2 & v3 geht nicht, warum?

Variable1 = V1 & v2 & v3 geht nicht, warum?
14.09.2005 08:48:52
Gülich
Hallo,
habe bei folgendem Makro 2 Probleme:
1. Zusammenbau der variablen ZuÖffnendeDatei
Sobald ich nach dem Rechnername die Dateiendung anhängen will funktioniert es nicht. Wenn ich aber der Variablen Rechnername irgend einen beliebigen Text zuweise, dann funktioniert es. Woran liegt das? Bzw. wie kann man das richtig stellen?
2. Ganz am Ende bei der Application.Close Anweisung wird zwar die Arbeitsmappe geschlossen, aber EXCEL selbst bleibt geöffnet. Bei erneutem Start kommt dann wieder ein neues Fenster und bleibt dann stehen. So vermehren sich meine leeren EXCEL Fenster.
Gibt es eine Möglichkeit EXCEL auch zu schliessen, wenn es nicht bereit s geöffnet ist? Was passiert mit anderen Excel-Dateien, die ggf. geöffnet sind?
Sprich: wenn nichts offen, dann alles schliessen,
wenn noch weitere Datei geöffnet, nur Arbeitsmappe schliessen
Freue mich auf Eure Hilfestellung. Danke.
-------------------------------------------------------------------------------
DieseArbeitsmappe
Option Explicit
-------------------------

Private Sub Workbook_Open()
'Deklaration im Modul1 da in DieseArbeitsmappe Deklaration nicht funktioniert
'Computername auslesen
Dim Rechnername As String * 64
Call GetComputerName(Rechnername, 64)
'Variablen deklarieren
Dim variable1 As Boolean
Dim ZuÖffnendeDatei As String
Dim Pfad As String
Dim Endung As String
Dim fs
'Werte zuweisen
Pfad = "T:\"
Endung = ".txt"
'Zusammenbauen der zu öffnenden Datei
'SOLL: T:\Rechnername.txt wobei Rechnername durch den Namen der Workstation im Netz ersetzt wird
ZuÖffnendeDatei = Pfad & Rechnername & Endung
MsgBox (ZuÖffnendeDatei)   'zum testen, ob alles funktioniert hat.
'Prüfung ob Ddatei vorhanden
Set fs = CreateObject("Scripting.FileSystemObject")
variable1 = fs.FileExists(ZuÖffnendeDatei)
'Abbrechen-Abfrage, wenn Datei NICHT vorhanden
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 = " Datei fehlt - beenden?"                                                            ' Titel definieren.
Antwort = MsgBox(Mldg, Stil, Titel)
If Antwort = 6 Then
GoTo weiter
Else: GoTo abbrechen
End If
End If
'Datei aus KEA ins EXEL einesen, bearbeiten und Antwortdatei zurückschreiben
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!
abbrechen:
End Sub

-------------------------------------------------------------------------------

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable1 = V1 & v2 & v3 geht nicht, warum?
14.09.2005 09:16:13
u_
Hallo,
das scheint mir der Knackpunkt zu sein:
Call GetComputerName(Rechnername, 64)
Du rufst eine Sub mit dem Paramter 'RechnerName' auf.
Wie sieht denn der Code aus?
Imho sollte das eine Function sein.
Gruß
Geist ist geil!
AW: Variable1 = V1 & v2 & v3 geht nicht, warum?
14.09.2005 09:21:25
Michael
Hallo, Code sieht folgendermaßen aus:
'Zum auslesen des Rechnernamens, Makro selbst ist unter "DieseArbeitsmappe" zu finden
Declare Function GetComputerName& Lib "kernel32" Alias "GetComputerNameA" (ByVal lbbuffer As String, nsize As Long)
Code steht im Modul1 ganz oben unter Deklarationen. Den Rechnername selbst bekomme ich schon ausgelesen. Mein Rechner heisst z.b. Fritz. Dann bekomme ich in der MsgBox die ich als Test eingebaut habe t:\Fritz angezeigt, es sollte aber T:\Fritz.txt rauskommen. Ich bekomme einfach nichts hinter den Rechnernamen angehängt.
Anzeige
AW: Variable1 = V1 & v2 & v3 geht nicht, warum?
14.09.2005 10:07:16
Ingo
falls ich nicht völlig daneben liege...schon mal mit
Environ probiert ?
Pfad & Environ("computername") & ".txt"
AW: Variable1 = V1 & v2 & v3 geht nicht, warum?
14.09.2005 10:20:23
u_
Hallo,
so geht's
Dim Rechnername As String * 64, RName As String
Call GetComputerName(Rechnername, 64)
RName = Left(Rechnername, InStr(Rechnername, Chr(0)) - 1)
'Variablen deklarieren
Dim variable1 As Boolean
Dim ZuÖffnendeDatei As String
Dim Pfad As String
Dim Endung As String
Dim fs
'Werte zuweisen
Pfad = "T:\"
Endung = ".txt"
'Zusammenbauen der zu öffnenden Datei
'SOLL: T:\Rechnername.txt wobei Rechnername durch den Namen der Workstation im Netz ersetzt wird
ZuÖffnendeDatei = Pfad & RName & Endung
MsgBox (ZuÖffnendeDatei) 'zum testen, ob alles funktioniert hat.
Gruß
Geist ist geil!
Anzeige
AW: Variable1 = V1 & v2 & v3 geht nicht, warum?
14.09.2005 10:36:02
Michael
Hallo und erst mal vielen Dank.
Es funktioniert tatsächlich. Könntest Du mir jetzt noch erklären, was genau mit diesem Befehl gemacht wird? Und warum benötige ich diesen Zwischenschritt?
Gruß
Michael
AW: Variable1 = V1 & v2 & v3 geht nicht, warum?
14.09.2005 11:35:49
u_
Hallo,
dein Rechnername ist 64 Zeichen lang. Bestehend aus dem eigemntlichen Namen und dann aufgefüllt mit chr(0). Dadurch wurde dein Dateiname
"Fritz.txt"
Ab XL2000 kannst du aber einfacher mit Environ("Computername") arbeiten.
Gruß
Geist ist geil!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige