Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1004to1008
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
Inhaltsverzeichnis

userform

userform
05.09.2008 17:30:00
ganz
Hallo,
ich habe eine Exceldatei und möchte dort eine UserForm einfügen, die sich sofort beim öffnen der exceldatei über den ganzen bildschirm öffnet.
Ausserdem habe ich in der Userform einige Textfelder deren text dann nach klick auf die befehlsschaltfläche in die jeweiligen zellen übernommen werden sollen.
zum dritten würde ich gerne eine suchfunktion einfügen, dh. wenn ich ein textfeld ausfülle dann sollen nach dem klick auf die befehlsschaltfläche "suchen" die anderen daten des artikels mit aufgerufen werden.
einfacher gesagt: ich gebe eine artikelnummer ein und klicke suchen, alle anderen daten die zu dieser nummer gehören sollen im userform angezeigt werden.
da ich absoluter anfänger bin würde ich mich freuen, wenn mir dabei jemand helfen kann.
vielen dank im voraus
ralf

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: userform
05.09.2008 17:51:00
Jochen
Hi,
erstmal: das Forum hat ein tolles Archiv.
Du hast viel geschrieben, doch keine konkrete Frage gestellt.
Wenn du wissen willst, ob das, was du vorhast geht, ja.
mfg Jochen
@Walter! AW: Eins nach dem anderen...
05.09.2008 23:35:00
Henner
Hab mir deine Datei mal angesehen. Nachdem ich sie einmal geöffnet hatte wird sie jetzt beim Öffnen JEDER Excel Datei automatisch vorher geladen - das ist EXTREMST nervig!
Sag mir doch mal bitte was ich tun muss damit das aufhört! Ich bekomm bei jedem Öffnen einer xls Datei eine Meldung das mein Name vorhanden sei, die Datei die immer mitgeöfnet wird heißt 0_Start-Menü.xls und wird eindeutig aus dem Quelltext der von dir hochgeladenen Mappe erzeugt, aber das wirst du ja sicher wissen. Die mitgeöffnete Datei ist übrigens nirgendwo zu finden, auch nicht per windowssuche.
Bitte um wirklich schnelle Rückantwort, ich platze gleich. Danke
Anzeige
@Walter! AW: Eins nach dem anderen...
06.09.2008 00:04:00
Henner
Auch nach einer Systemwiederherstellung gleicher Fehler, ich kotze gleich im Strahl..
@Walter! AW: Eins nach dem anderen...
06.09.2008 00:22:00
Chris
Hi Henner,
schau mal ob du die Datei hier findest:
"C:\Dokumente und Einstellungen\" & usn & "\Anwendungsdaten\Microsoft\Excel\XLSTART\0_Start-Menü.xls"
usn = dein Windows User Name
Diese Datei wird beim Workbook open im Ordner XLStart gespeichert daher wird
sie beim starten von Excel geöffnet.
Einfach löschen und beim nächsten mal mit deaktivierten makros öffnen und schauen was der code so macht.
Grüße
Chris
Nicht richtig nachvollziehbar....
06.09.2008 10:41:00
Ramses
Hallo
Für den Fragesteller, gib dies im VB-Editor im Direktfenster ein und schliesse die Eingabe mit "Enter" ab
Füge diesen Code in ein Modul deiner Mappe ein und lass den Code laufen


Sub Kill_WB()
    Dim wkb As Workbook
    Dim killWkb As String
    Dim usn As String
    killWkb = "0_Start-Menü.xls"
    usn = Environ("Username")
    On Error GoTo myErrHandler
    For Each wkb In Application.Workbooks
        If wkb.Name = killWkb Then
            wkb.Close
            Kill "C:\Dokumente und Einstellungen\" & usn & "\Anwendungsdaten\Microsoft\Excel\XLSTART\0_Start-Menü.xls"
            MsgBox "Erfolgreich enfernt"
            Exit Sub
        End If
    Next
    Kill "C:\Dokumente und Einstellungen\" & usn & "\Anwendungsdaten\Microsoft\Excel\XLSTART\0_Start-Menü.xls"
    MsgBox "Erfolgreich enfernt"
    ErrorExit:
    Exit Sub
    
    myErrHandler:
    MsgBox "Datei konnte nicht erfolgreich entfernt werden." & Chr$(10) & "Fehler: " & Err.Number & Chr(10) & Err.Description
    Resume ErrorExit
End Sub

"...und schauen was der code so macht..."
DAS würde mich auch interessieren was hinter diesem Chaos ursprünglich steckte.
Für unbedarfte Excel-User ist das schon ein "kleiner Virus" :-)
Für alle die sich das runterladen nicht antun wollen, hier der implementierte Code

Option Explicit



Private Sub Workbook_Open()
    
    ' Application.ScreenUpdating = False
    
    Sheets("Eingang").Select
    '--------------------------------------------
    'Dim usn As String
    ' Environ("Username")
    ' usn = Application.UserName 'Excelanwender
    ' usn = Environ("Username") 'Netzwerkanwender
    ' If Wer <> "" Then
    ' MsgBox "Anwender: " & usn & " vorhanden "
    'If Wer = "walbuhl" Then
    'MsgBox "Jetzt kommt Walters-Makro " 'jetzt Makro für Herrn Buhl
    'Application.Environ("Username") = usn
    
    Dim usn As String
    '-- für Viste: "C:\Users\" & usn & "\AppData\Roaming\Microsoft\Excel\XLSTART"
    
    usn = Environ("Username") 'Netzwerkanwender
    
    ' der Pfad gilt aber nur für XP, bei Vista ist der Pfad anders:
    ' "C:\Users\" & usn & "\AppData\Roaming\Microsoft\Excel\XLSTART"
    
    MsgBox "Anwender: " & usn & " vorhanden "
    
    ' ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\" & usn & "\AppData\Roaming\Microsoft\Excel\XLSTART\0_Start-Menü.xls """ _
    , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False

    
    
    'ActiveWorkbook.SaveAs Filename:= _
    Environ("%Appdata%") & "\Microsoft\Excel\XLSTART\0_Start-Menü.xls" _
    , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False

    
    
    ' ActiveWorkbook.SaveAs Filename:= _
    "C:\Documents and Settings\" & usn & "\Application Data\Microsoft\Excel\XLSTART\0_Start-Menü.xls" _
    , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False

    
    'Dokumente und Einstellungen
    'C:\Dokumente und Einstellungen\wb\Anwendungsdaten\Microsoft\Excel\XLStart
    
    Application.DisplayAlerts = False 'mit False wird Meldung unterdrückt
    ActiveWorkbook.SaveAs Filename:= _
    "C:\Dokumente und Einstellungen\" & usn & "\Anwendungsdaten\Microsoft\Excel\XLSTART\0_Start-Menü.xls" _
    , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    
    ' Exit Sub
    
    
    
    UFStarten.Show
    
    '---- ab hier ICON erstellt ---------------
    Dim wsh As Object
    Dim tarLink As Object
    Dim tarDeskTop As String
    Set wsh = CreateObject("WScript.Shell")
    tarDeskTop = wsh.SpecialFolders("Desktop")
    Set tarLink = wsh.CreateShortcut(tarDeskTop & _
    "\" & ThisWorkbook.Name & ".lnk")
    With tarLink
        .Targetpath = ThisWorkbook.FullName
        .Save
    End With
    Set wsh = Nothing
    
    '------------------------------------------
    
    
    Application.ScreenUpdating = True
    
End Sub



Das ist der Code in der UF


Option Explicit

Private Declare Function GetDeviceCaps Lib "gdi32.dll" ( _
    ByVal hdc As Long, _
    ByVal nIndex As Long) As Long

Private Declare Function GetDC Lib "user32.dll" ( _
    ByVal hWnd As Long) As Long

Private Declare Function ReleaseDC Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal hdc As Long) As Long

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

Private Declare Function GetSystemMenu Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal bRevert As Long) As Long

Private Declare Function DeleteMenu Lib "user32.dll" ( _
    ByVal hMenu As Long, _
    ByVal nPosition As Long, _
    ByVal wFlags As Long) As Long


Private Const SC_MOVE As Long = &HF010&
Private Const MF_BYCOMMAND As Long = &H0&
Private Const HORZRES = 8&
Private Const VERTRES = 10&
Private Const GC_CLASSNAMEMSEXCELFORM = "ThunderDFrame"





'---- 0_VF-Lauf+Abge-RR-2008.xls HOLEN ----------
Private Sub CommandButton1_Click()
    '------------- Excel Dateimanager --------------
    Dim strDatei
    ChDrive "C:\"
    ChDir "C:\"
    
    strDatei = Application.GetOpenFilename("Microsoft Excel-Dateien ,*.*")
    If strDatei = False Then Exit Sub
    Workbooks.Open strDatei
End Sub




Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
    If CloseMode = vbFormControlMenu Then
        Cancel = True
        MsgBox "Sie können so nicht Beenden! " _
        & Chr(13) & Chr(13) & "Bitte drücken Sie " _
        & Chr(13) & Chr(13) & "Schließen - Button ! ", vbInformation, " Hinweis !"
    End If
    
End Sub



'Private Sub UserForm_Click()
Private Sub UserForm_Initialize()
    '--------------- für die Bildschirmanpassung ----------------------------------
    Dim hwndForm As Long
    Dim hwndMenu As Long
    Dim intY As Integer
    Dim intLast As Integer
    Dim intNext As Integer
    Dim UserForm
    
    ' On Error Resume Next
    
    '----------------------------------------------
    'Dim UserForm
    '--------------- für Bildschirmanpassung ------
    With Me
        .StartUpPosition = 0
        .Top = 0
        .Left = 0
        .Height = GetDeviceCaps(GetDC(0&), HORZRES)
        .Width = GetDeviceCaps(GetDC(0&), VERTRES)
    End With
    ReleaseDC 0, GetDC(0&)
    hwndForm = FindWindow(GC_CLASSNAMEMSEXCELFORM, Me.Caption)
    If hwndForm <> 0 Then
        hwndMenu = GetSystemMenu(hwndForm, 0)
        If hwndMenu <> 0 Then DeleteMenu hwndMenu, SC_MOVE, MF_BYCOMMAND
    End If
    Sheets("Eingang").Select
    ' ActiveSheet.Unprotect (getStrPasswort)
    ActiveWindow.ScrollRow = 1 '8 Zeile
    ActiveWindow.ScrollColumn = 1 '2 Spalte
    Range("A1").Select
    
End Sub

Private Sub CommandButton3_Click()
    Unload Me
    ActiveWindow.ScrollRow = 1 '8 Zeile
    ActiveWindow.ScrollColumn = 1 '2 Spalte
    Range("A1").Select
    
End Sub

Gruss Rainer
Anzeige
AW: Nicht richtig nachvollziehbar....
06.09.2008 11:10:56
Henner
Hi Rainer,
kurz: DANKE! Nachdem ich deinen Code hab durchlaufen lassen klappts auch wieder. Das merkwürdige ist das der angegebene Pfad C:\Dokumente und Einstellungen\MeinBenutzername\Anwendungsdaten\Microsoft\Excel\XLSTART\... unter Vista garnicht existiert und ich die Datei somit auch nicht per Hand löschen konnte weil ich die Datei weder nach dem Pfad, noch per Windows-Suchfunktion finden konnte. Wirklich merkwürdig. Den Sinn des ganzen habe ich allerdings noch nicht verstanden. Und wenn man so ein Makro hier schon zum Download anbietet, sollte man meiner Meinung nach auch reinschreiben, was das Makro genau macht und vor allem wie man es wieder rückgängig machen kann!
Nochmals vielen Dank, so langsam ging mir das leicht aufn Keks
Anzeige
AW: Nicht richtig nachvollziehbar....
06.09.2008 11:29:16
Ramses
Hallo
"...unter Vista garnicht existiert .."
Doch der Pfad existiert schon, sonst hätte das Makro ja nicht funktioniert :-).
Der Pfad ist allerdings "zum Schutz des Anwenders vor versehentlichem Löschen wichtiger Dateien" ausgeblendet, und wird im Explorer nicht angezeigt.
Gruss Rainer
AW: Nicht richtig nachvollziehbar....
06.09.2008 12:36:48
ganz
hallo,
da habe ich ja was tolles angefangen.
ich bekomme den mist nicht mehr los und in jeder mappe öffnet sich die UF. wie muß ich vorgehen damit es wieder weggeht?
muß ich jede einzelne mappe löschen?
danke für antworten
ralf
AW: Nicht richtig nachvollziehbar....
06.09.2008 12:44:00
Henner
Hi Ralf,
ich bau dir (und den hilflosen geschädigten) das mal eben, gib mir ein paar Minuten.
Gruß Henner
Anzeige
Kleines Lösungstool
06.09.2008 13:05:00
Henner
Gehe wie folgt vor:
1. Öffne diese Mappe
2. Die Meldung "Anwender XXXXX vorhanden" mit OK bestätigen
3. Laufzeitfehler mit "Beenden" abbrechen
4. Bei Sicherheitswarnung die Makros für diese Mappe aktivieren
5. Suchen und entfernen mit "Ja" bestätigen
6. Fertig
Hier die Mappe:
https://www.herber.de/bbs/user/55220.xls
AW: Nicht richtig nachvollziehbar....
06.09.2008 15:23:32
ya
Hallo
Du musst doch bloss den ersten Code "Sub Kill_Wkb()" wie in meinem Beispiel beschrieben laufen lassen, dann solltest du es wieder los sein
Gruss Rainer
AW: userform
06.09.2008 10:55:00
Tino
Hallo,
beziehe mich auf die Frage:
"eine UserForm einfügen, die sich sofort beim öffnen der exceldatei über den ganzen bildschirm öffnet"
Die Userform müsstest du so an die Bildschirmgröße anpassen können.
Version 1
Dialog UserForm1
Option Explicit 
Private Declare Function GetSystemMetrics Lib "user32" _
  (ByVal nIndex As Long) As Long 
 
Private Sub UserForm_Initialize() 
UserForm1.Width = GetSystemMetrics(0) * 0.75 
UserForm1.Height = GetSystemMetrics(1) * 0.75 
End Sub 


Version 2
Dialog UserForm1

Option Explicit 
Private Sub UserForm_Initialize() 
Application.WindowState = xlMaximized 
With Me 
.Top = 0 
.Left = 0 
.Height = Application.Height 
.Width = Application.Width 
End With 
End Sub 


Das starten der Userform, machst du über dass Event Workbook_Open
Microsoft Excel Objekt DieseArbeitsmappe

Option Explicit 
 
Private Sub Workbook_Open() 
UserForm1.Show 
End Sub 


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Nachtrag
06.09.2008 11:02:00
Tino
Hallo,
stell die Eigenschaft der Userform "StartUpPosition" auf 0-Manuel
Gruß Tino

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige