Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1820to1824
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
Freien Speicher in Textbox 2
16.03.2021 04:19:32
oraculix
Hallo
Folgendes Makro soll mir den Verbrauchten Speicher aus Festplatte E:\ auslesen und in einer Textbox 2(nicht in MsgBox) in der Userform1 anzeigen.
Geht das Überhaupt?
Sub Freiser_Speicher()
Dim FSO As Object, LW As Object
Set FSO = CreateObject("Scripting.filesystemobject")
Set LW = FSO.drives("E:")
MsgBox "Freier Speicherplatz auf " & LW.driveletter & Chr(13) & _
Round(LW.availablespace / 1024 / 1024 / 1024, 1) & " TB"
End Sub
Public Sub Test()
MsgBox Free_Space("E:") & " TB"
End Sub


15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 08:11:43
ralf_b

Function Freier_Speicher(sDrive As String)
Dim FSO As Object, LW As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.DriveExists(sDrive) Then
Set LW = FSO.drives(sDrive & ":")
Freier_Speicher = Round(LW.availablespace / 1024 / 1024 / 1024, 1) & " TB"
Exit Function
End If
Freier_Speicher = ""
Set FSO = Nothing
End Function
Public Sub Test()
MsgBox Freier_Speicher("E")
End Sub


AW: Freien Speicher in Textbox 2
16.03.2021 08:28:45
oraculix
Vielen Dank für Deine Antwort.
Leider Wird mir in Userform1 Textbox2 nichts angezeigt
' Freiser_Speicher E:
Private Sub TextBox2_Change()
Function Freier_Speicher(sDrive As String)
Dim FSO As Object, LW As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.DriveExists(sDrive) Then
Set LW = FSO.drives(sDrive & ":")
Freier_Speicher = Round(LW.availablespace / 1024 / 1024 / 1024, 1) & " TB"
Exit Function
End If
Freier_Speicher = ""
Set FSO = Nothing
End Function
Public Sub Test()
MsgBox Freier_Speicher("K")
End Sub


Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 09:18:02
Luschi
Hallo oraculix,
solche Infos (berechnete/ermittelte Werte) gehören nicht in 1 Textbox, sondern in ein Label (Anzeigefeld) - oder man muß die Textbox vor Veränderungen schützen (Locked = True)
Dann benötigt man ein auslösendes Ereignis um die Funktion 'Freier_Speicher' zu starten:
- UserForm_Initialize
- UserForm_Activate

Private Sub UserForm_Activate()
Me.Label1.Caption = Freier_Speicher("C")
End Sub
Außerdem entspricht der ausgegebene Zahlenwert i.d. Beispiel der Maßeinheit GByte und nicht TByte.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 09:30:52
oraculix
Vielen Dank auch Dir
Aber was ist ein Labl?
Das mit den Tb hast recht wie rechne ich das um ?
Es sollte so im Ergebniss stehen 1,85 Tb freier Speicher
Private Sub UserForm1_Activate()
Dim lngptrStyle As LongPtr
mlngptrHwnd = FindWindowA(GC_CLASSNAMEMSFORM, Caption)
lngptrStyle = GetWindowLongPtr(mlngptrHwnd, GWL_STYLE)
lngptrStyle = lngptrStyle And Not WS_CAPTION
Call SetWindowLongPtr(mlngptrHwnd, GWL_STYLE, lngptrStyle)
Call DrawMenuBar(mlngptrHwnd)
If IsThemeActive = 1 Then
Height = Height - 16
Else
Height = Height - 14
End If
End Sub

Hab nen Fehler Endeckt
Private Sub UserForm_Activate()
Wenn ich hier einen 1er reinschreibe dann funktioniert euer Code Weil es excel nicht zulässt  _
Doppelte zu haben


Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 09:00:19
Alwin
so kann das nicht funktionieren:
ändere es so, wie es ralf_b dir schon als Beispiel richtig vorgegeben hat:
Option Explicit
Function Freier_Speicher(sDrive As String)
Dim FSO As Object, LW As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.DriveExists(sDrive) Then
Set LW = FSO.drives(sDrive & ":")
Freier_Speicher = Round(LW.availablespace / 1024 / 1024 / 1024, 1) & " TB"
Exit Function
End If
Freier_Speicher = ""
Set FSO = Nothing
End Function
Private Sub UserForm_Activate()
TextBox2.Value = Freier_Speicher("E")
End Sub


Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 09:13:30
Engelchen
Hallo,
die von ralf_b und Alwin geposteten Antworten funktionieren sehr gut, allerdings sollte nicht "TB" in "GB" umbenannt werden? Oder alternativ noch mal durch 1024 teilen, wenn TB gewünscht sind?
Gruß!
Andreas

AW: Freien Speicher in Textbox 2
16.03.2021 09:36:46
oraculix
Danke auch Dir.
Der Fehler liegt daran das ich 2 Gleiche Namen habe mit anderem Code.
Wie rechne ich das um? Freier_Speicher = Round(LW.availablespace / 1024 / 1024 / 1024, 1) & " TB"
Das ist der Andere Code beginnt auch mit

Private Sub UserForm_

Private Sub UserForm_Activate()
Dim lngptrStyle As LongPtr
mlngptrHwnd = FindWindowA(GC_CLASSNAMEMSFORM, Caption)
lngptrStyle = GetWindowLongPtr(mlngptrHwnd, GWL_STYLE)
lngptrStyle = lngptrStyle And Not WS_CAPTION
Call SetWindowLongPtr(mlngptrHwnd, GWL_STYLE, lngptrStyle)
Call DrawMenuBar(mlngptrHwnd)
If IsThemeActive = 1 Then
Height = Height - 16
Else
Height = Height - 14
End If
End Sub


Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 09:14:49
oraculix
Danke für Deine Antwort
Es Funktioniert nicht Texbox2 ist leer.
Wo liegt der Fehler?
Was muss ich bei den Einstellungen der Textbox2 Einstellen?
' Freiser_Speicher E:
Function Freier_Speicher(sDrive As String)
Dim FSO As Object, LW As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.DriveExists(sDrive) Then
Set LW = FSO.drives(sDrive & ":")
Freier_Speicher = Round(LW.availablespace / 1024 / 1024 / 1024, 1) & " TB"
Exit Function
End If
Freier_Speicher = ""
Set FSO = Nothing
End Function
Private Sub UserForm1_Activate()
TextBox2.Value = Freier_Speicher("E")
End Sub


Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 09:49:27
Dieter(Drummer)
Hallo oraculix,
das müsste gehen:
Sub Userform_Activate()
UserForm1.TextBox1.Value = Freier_Speicher("K")
End Sub
Gruß, Dieter(Drummer)

AW: Freien Speicher in Textbox 2
16.03.2021 09:57:48
oraculix
Danke für Deine Antwort
Leider Geht das So nicht weil Mehrdeutiger Name Vorhanden ist
Sub Userform_Activate habe ich schon einmal
und wenn ich was Namen andere 

Sub Userform_Activate1 bleibt das Feld leer.

Sub Userform_Activate()
UserForm1.TextBox2.Value = Freier_Speicher("E")
End Sub


Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 10:10:20
Dieter(Drummer)
Hallo oraculix,
das geht auch so nicht:

Sub Userform_Activate1
Du brauchst doch nur in:

Sub Userform_Activate()
diese Zeile auch mit einfügen:
UserForm1.TextBox2.Value = Freier_Speicher("K")
Bei mir geht es problemlos.
Gruß, Dieter(Drummer)

AW: Freien Speicher in Textbox 2
16.03.2021 11:01:53
oraculix
Danke aber
Fehlermeldung sub oder funktion nicht definiert kommt dann.
Private Sub UserForm_Activate()
Dim lngptrStyle As LongPtr
mlngptrHwnd = FindWindowA(GC_CLASSNAMEMSFORM, Caption)
lngptrStyle = GetWindowLongPtr(mlngptrHwnd, GWL_STYLE)
lngptrStyle = lngptrStyle And Not WS_CAPTION
Call SetWindowLongPtr(mlngptrHwnd, GWL_STYLE, lngptrStyle)
Call DrawMenuBar(mlngptrHwnd)
If IsThemeActive = 1 Then
Height = Height - 16
Else
Height = Height - 14
End If
'Aus Laufwerk E: Freie_Speicher in TextBox2 schreiben
UserForm1.TextBox2.Value = Freier_Speicher("K")
End Sub


Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 11:29:24
Dieter(Dummer)
Hallo oroculix,
dann versuch mal statt:
'Aus Laufwerk E: Freie_Speicher in TextBox2 schreiben
UserForm1.TextBox2.Value = Freier_Speicher("K")
in einem Modul eine neue Sub zu erstellen. z.B..
Sub Speicher()
UserForm1.TextBox2.Value = Freier_Speicher("K")
End Sub

und rufe in "Userform_Activate" mit "Call Speicher", den Code auf.
Gruß, Dieter(Drummer)

AW: Freien Speicher in Textbox 2
16.03.2021 11:32:34
Alwin
anbei eine Beispieldatei, welche sowohl die Ausgabe in GB und TB sowie in Textbox als auch in Label zeigt. Wenn du eine Textbox bevorzugst, kannst du zusätzlich die Ausgabe vor Veränderung sperren.
https://www.herber.de/bbs/user/144838.xlsm

Anzeige
AW: Freien Speicher in Textbox 2
16.03.2021 13:03:43
oraculix
Genial Danke das War es jetzt geht es

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige