Microsoft Excel

Herbers Excel/VBA-Archiv

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

Neues Datum, neue Zeile

Betrifft: Neues Datum, neue Zeile von: CaroDe
Geschrieben am: 22.10.2020 08:51:00

Hallo liebe Community,

ich bastle aktuell an einer Abfrage mit Hilfe von VBA. Es geht dabei um einen Performance Indicator. Über den klick auf den ToggleButton sollen MitarbeiterInnen angeben, womit sie aktuell beschäftigt sind (zB Probleme Lager, Produktion, ...).
Ich hätte gern, dass die Informationen im Hintergrund in einer Datenbank gesammelt werden.

Aktuell sammel ich alle klicks in einer Zeile, aber ich hätte gerne, dass mit jedem Mitarbeiter (geteiltes Dokument) und Datum eine neue Zeile generiert wird. Vielleicht habt ihr eine Idee.

Herzlichen Dank im Voraus & liebe Grüße
Caro

Betrifft: AW: Neues Datum, neue Zeile
von: UweD
Geschrieben am: 22.10.2020 09:20:32

Hallo

in den Codebereich des Toggle
Option Explicit

Private Sub ToggleButton1_Click()
    Dim TB As Worksheet, SP As Integer, LR As Long
    
    Set TB = Sheets("LOGBUCH")
    SP = 1 'Daten sollen in Spalte A
    
    With TB
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row + 1 'erte freie Zeile
        
        .Cells(LR, SP) = Environ("Username")
        .Cells(LR, SP + 1) = Format(Now, "DD.MM.YYYY hh_mm_ss")
        .Cells(LR, SP + 2) = "sonst noch was"
        
    End With
End Sub

LG UweD

Betrifft: AW: Neues Datum, neue Zeile
von: CaroDe
Geschrieben am: 22.10.2020 11:50:01

Hallo Uwe,

herzlichen Dank für die schnelle Antwort. Das ist GENAU das, was ich brauche. Danke.
Allerdings habe ich jetzt zwei Probleme:

1. Ich wollte es so formatieren, dass nur eine Wertung möglich ist und habe das mit folgendem if gemacht:
If ToggleButtonLager = True Then
ToggleButtonFeld = False
ToggleButtonProduktion = False
ToggleButtonLieferant = False

Funktioniert jetzt natürlich so nicht. Ich finde aber auch keine replace if Kombi, die mir diese Funktion ermöglichen würde.

2. Bekomme ich beim Test, beim klick auf einen Button zB Produktionsline manchmal zwei Wertungen (Produktionslinie & Lieferant) und manchmal nur eine Wertung, also Zeile geschrieben. Ich finde die Logik und daher den Fehler nicht.

Hier der LogFile:

'HANDLUNGSFELDER

'FELD
Private Sub ToggleButtonFeld_Click()
If ToggleButtonFeld = True Then 'Entweder oder
          ToggleButtonLager = False
          ToggleButtonProduktion = False
          ToggleButtonLieferant = False
End If

    Dim TB As Worksheet, SP As Integer, LR As Long
    
    Set TB = Sheets("Data Handlung")
    SP = 1 'Daten sollen in Spalte A
    
    With TB
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row + 1 'erte freie Zeile
        
        .Cells(LR, SP) = Environ("Username")
        .Cells(LR, SP + 1) = Format(Now, "DD.MM.YYYY hh_mm_ss")
        .Cells(LR, SP + 2) = "1"
        .Cells(LR, SP + 3) = "0"
        .Cells(LR, SP + 4) = "0"
        .Cells(LR, SP + 5) = "0"
        
    End With
End Sub


'LAGER
Private Sub ToggleButtonLager_Click()
If ToggleButtonLager = True Then
          ToggleButtonFeld = False
          ToggleButtonProduktion = False
          ToggleButtonLieferant = False
End If

Dim TB As Worksheet, SP As Integer, LR As Long
    
    Set TB = Sheets("Data Handlung")
    SP = 1 'Daten sollen in Spalte A
    
    With TB
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row + 1 'erte freie Zeile
        
        .Cells(LR, SP) = Environ("Username")
        .Cells(LR, SP + 1) = Format(Now, "DD.MM.YYYY hh_mm_ss")
        .Cells(LR, SP + 2) = "0"
        .Cells(LR, SP + 3) = "0"
        .Cells(LR, SP + 4) = "1"
        .Cells(LR, SP + 5) = "0"
        
    End With
End Sub


'LIEFERANT
Private Sub ToggleButtonLieferant_Click()
If ToggleButtonLieferant = True Then
          ToggleButtonFeld = False
          ToggleButtonLager = False
          ToggleButtonProduktion = False
End If

Dim TB As Worksheet, SP As Integer, LR As Long
    
    Set TB = Sheets("Data Handlung")
    SP = 1 'Daten sollen in Spalte A
    
    With TB
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row + 1 'erte freie Zeile
        
        .Cells(LR, SP) = Environ("Username")
        .Cells(LR, SP + 1) = Format(Now, "DD.MM.YYYY hh_mm_ss")
        .Cells(LR, SP + 2) = "0"
        .Cells(LR, SP + 3) = "0"
        .Cells(LR, SP + 4) = "0"
        .Cells(LR, SP + 5) = "1"
        
    End With
End Sub

'Produktion
Private Sub ToggleButtonProduktion_Click()

If ToggleButtonProduktion = True Then
          ToggleButtonFeld = False
          ToggleButtonLager = False
          ToggleButtonLieferant = False
End If

Dim TB As Worksheet, SP As Integer, LR As Long
    
    Set TB = Sheets("Data Handlung")
    SP = 1 'Daten sollen in Spalte A
    
    With TB
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row + 1 'erte freie Zeile
        
        .Cells(LR, SP) = Environ("Username")
        .Cells(LR, SP + 1) = Format(Now, "DD.MM.YYYY hh_mm_ss")
        .Cells(LR, SP + 2) = "0"
        .Cells(LR, SP + 3) = "1"
        .Cells(LR, SP + 4) = "0"
        .Cells(LR, SP + 5) = "0"
        
    End With
End Sub

Danke =)