Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Detailfragen

    Betrifft: Detailfragen von: Jens
    Geschrieben am: 28.09.2003 16:10:34

    Hallo ,
    kann mir jemand helfen=

    1. ich habe ein Makro, welches in einer Endlosschleife läuft und eigentlich nur durch drücken der CTRL Taste beendet werden soll.Drücke ich aber mit der Maus doppelt in ein Feld beendet sich das Makro von selber. Wie kann ich dies verhindern? Es werden auch immer automatisch Einträge in dieses Tabellenblatt vorgenommen!!

    2. Kennt jemand die Keyboardbytes Belegung für die Funktionstasten F1-F15?
    Oder gibt es irgendwo die komplette Liste aller Tasten?

    3. Größtes Problem= Ich trage in diesem Makro, wenn ein Event kommt, einen Zeileneintrag aus einer Tabelle, dreispaltig in eine Listbox ein mit Datum und Uhrzeit. Wenn der Platz in der Listbox zu kleinh wird erscheint ja der Scollbalken rechts.Ab dann zeigt er mir nicht mehr den letzten Eintrag ein und der Scrollbalken hüpft immer wieder ein Stück nach oben, selbst wenn man ihn nach unten drückt.
    Wie kann ich dieses Problem beheben, weil eigentlich immer der letzte Eintrag zu sehen sein sollte???

    Vielen Dank im voraus

    Jens

      


    Betrifft: AW: Detailfragen von: Matthias G
    Geschrieben am: 28.09.2003 16:57:44

    Hallo Jens,

    zu 1:
    Ich gehe davon aus, dass du mit Feld eine Zelle meinst und dass der Doppelklick dazu führt, dass Excel in den Bearbeitungsmodus wechselt.
    Abhilfe:
    Definiere im Ereignis BeforeDoubleClick den Wert Cancel=True:
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    End Sub
    

    zu 2:
    Wozu brauchst du das? Und wo sind bitte die Tasten F13, F14 und F15?
    Es gibt in Excel den Befahl Application.OnKey, damit kannst du Tasten und Tastenkombinationen Makros zuweisen.

    zu 3:
    da kann ich leider nichts dazu sagen.

    Grüße,
    Matthias


      


    Betrifft: AW: Detailfragen von: Jens
    Geschrieben am: 29.09.2003 16:49:17

    Hallo,
    vielen Dank erstmal für die Antwort, aber

    zu 2. das sieht dann ungefähr so aus:
    ich habe jetzt nur die kbArray.kbb(17)von ctrl Taste , also 17 = ctrl und Esc =27
    und die von Esc.
    Ich möchte ihm in der Schleife noch hinzufügen, wenn Taste z.B. "F1" gedrückt, dann gehe nach
    Sub XY. Und bei Loop until möchte ich gerne eine andere Taste als Ctrl benutzen zum Abbrechen!!
    
    
    Declare 
    Function GetKeyboardState Lib "User32.dll" _
    (kbArray As KeyboardBytes) As LongType KeyboardBytes  
    
    Type KeyboardBytes              
    kbb(0 To 255) As Byte   
    
    Dim kbArray As KeyboardBytes   
    
    GetKeyboardState kbArray             
     If DSR = 1 And DCD = 1 Then 
      COM             
       ElseIf DCD = 0 And OFF = 0 Then
        Datenfehler
           ElseIf DCD = 0 And OFF > 0 Then Exit Do
            
              Else
                CLOSECOM                     'Ansonsten Schliessen der Schnittstelle
    End If
    Loop Until kbArray.kbb(17) And 128   'Bis Ctrl
    
    
    Mit den Tasten F13- F15 war nartürlich mein Fehler, geistiger Umnachtung!!
    
    
    
    
    Und zu 3. weiss wirklich keiner Hilfe??????????????
     Ich trage das so in die Listbox ein:
    
    
    Sub Worksheet_Activate()
       
    If Sheets("Comtest").Cells(16, 1) = "COM1 ist geöffnet" Then
    
    ListBox1.ColumnCount = 3        
    ListBox1.AddItem (Date)
    ListBox1.Column(1, ListBox1.ListCount - 1) = Time
    ListBox1.Column(2, ListBox1.ListCount - 1) = Sheets("Comtest").Cells(19, 1).Value
    
    Else
    Sheets("Sehen").Select
    End If
    
    End Sub
    



    Vielen Dank
    Jens