Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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

VBA- automatiosche Zeilenidentifizierung

VBA- automatiosche Zeilenidentifizierung
15.05.2023 10:15:37
Reiko

Hi,
Ich habe ein kleines Protokoll geschrieben in dem der Nutzer einfach per Button
einen Zeitstempel in Spalte D,
den Excel-Nutzernamen in Spalte E sowie ein Eingabefeld welches dann die Eingabe in Spalte F einträgt.

Sub SchaltflächeAudit_07_Klicken()
'Definition der Variablen
Dim StempelZeit As Date
Dim eingabe As String

UserN = Application.UserName
Zeitstempel = Now

Sheets("PROTOKOLLAUFGABE").Range("D7").Value = Zeitstempel
Sheets("PROTOKOLLAUFGABE").Range("E7").Value = UserN

'InputBox mit Dialogfeld
eingabe = InputBox("Bitte geben Sie zusätzliche Informationen ein")

'Eingabewert in MsgBox ausgeben
'MsgBox eingabe

'Eingabewert in eine Zelle schreiben
Sheets("PROTOKOLLAUFGABE").Range("F7").Value = eingabe

End Sub

So habe ich 23 Button kreiert die entsprechend alle in der jeweilige Zeile die Information ablegen.
Jetzt soll ergänzend zur Zeile mit dem Button eine oder mehrere Zeilen eingefügt werden um den Protokollverlauf genauer zu beschreiben oder zu ergänzen...
Somit funktioniert natürlich die Schaltfläche nicht mehr mit der zugehörigen Zeile...

Wie kann ich die jeweilige Zeile des zugehörigen Button identifizieren und in der Formel benutzen?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA- automatiosche Zeilenidentifizierung
15.05.2023 10:29:21
Oberschlumpf
Moin :-)

wenn ich das richtig verstehe, hast du - 23 mal - den obigen Code geschrieben, mit jeweils angepasster Zeile, oder?

Wenn ja = viel zu viel Aufwand!, weil der obige Code reicht genau - 1 mal - und könnte trotzdem von 23 (oder mehr) unterschiedlichen Button verwendet werden...nämlich mit Übergabe eines eindeutigen Parameters, anhand dessen dann immer die jeweils richtige Startzeile für die Tabelle bestimmt wird.

Dazu aber müssten wir wohl deine Datei umbauen...also den Code, so wie du ihn bisher verwendest.
Dazu ist es aber erforderlich, dass du uns bitte mal per Upload eine Excel-Bsp-Datei mit Bsp-Daten, 3 oder 4 Button und deinem bisherigen Code für 3 oder 4 Button zeigst - damit wir auch...sehen können...was da passiert, bzw, was passieren soll.

Ciao
Thorsten


Anzeige
AW: VBA- automatiosche Zeilenidentifizierung
15.05.2023 12:11:28
Reiko
habe mal eine Testmappe hochgeladen
https://www.herber.de/bbs/user/159202.xlsm
Wenn man das ganze vereinfachen kann natürlich gern...
und wenn ich dafür irgendwas umbauen muss kein Problem...

Zielsetzung ist größtmögliche Flexibilität bei standardisiertem Vorgehen... ;-)


AW: VBA- automatiosche Zeilenidentifizierung
15.05.2023 14:49:42
Oberschlumpf
na ja, bevor ich mich mit all dem beschäftige, warte ich erst mal deine weiteren Rückmeldungen ab, bezogen auf Rudi's Idee


AW: VBA- automatiosche Zeilenidentifizierung
15.05.2023 10:56:11
GerdL
Hallo Reiko,

möglicherweise kommst du so von 23 Buttons auf einen.
Sub SchaltflächeAudit_99_Klicken()
'Definition der Variablen
Dim StempelZeit As Date
Dim eingabe As String
Dim Zeile As Long



Zeile = Sheets("PROTOKOLLAUFGABE").Cells(Rows.Count, "D").End(xlUp).Row + 1
If Zeile  7 Then Zeile = 7

UserN = Application.UserName
Zeitstempel = Now

Sheets("PROTOKOLLAUFGABE").Range("D" & Zeile).Value = Zeitstempel
Sheets("PROTOKOLLAUFGABE").Range("E" & Zeile).Value = UserN

'InputBox mit Dialogfeld
eingabe = InputBox("Bitte geben Sie zusätzliche Informationen ein")

'Eingabewert in MsgBox ausgeben
'MsgBox eingabe

'Eingabewert in eine Zelle schreiben
Sheets("PROTOKOLLAUFGABE").Range("F" & Zeile).Value = eingabe

End Sub
Gruß Gerd


Anzeige
AW: VBA- automatiosche Zeilenidentifizierung
15.05.2023 11:01:47
Rudi Maintaire
Hallo,
weise diesen Code allen Buttons zu:
Sub Protokoll()
  'Definition der Variablen
  Dim strEingabe As String
  Dim lRow As Long
  
  With Sheets("PROTOKOLLAUFGABE")
    lRow = .Shapes(Application.Caller).TopLeftCell.Row
    
    .Cells(lRow, 4).Value = Now
    .Cells(lRow, 5).Value = Environ("username")
    
    'InputBox mit Dialogfeld
    strEingabe = InputBox("Bitte geben Sie zusätzliche Informationen ein")
    
    'Eingabewert in MsgBox ausgeben
    'MsgBox eingabe
    
    'Eingabewert in eine Zelle schreiben
    .Cells(lRow, 6).Value = strEingabe
  End With
End Sub
Gruß
Rudi


Anzeige
AW: VBA- automatiosche Zeilenidentifizierung
15.05.2023 13:11:53
Reiko
Vielen Dank Rudi
habe ich mal so umgesetzt...
die Environ für den Benutzernamen habe ich aber wieder auf die Excel umgeschrieben, da sonst nur die Personalnummern im Chiffre zu sehen sind...
ansosten läuft es gut...
die ersten Praxis-Anwendungen werden wahrscheinlich noch ein bisschen Finetuning erfordern aber das ist ja normal

Danke an alle für die schnellen und tollen Antworten


AW: VBA- automatiosche Zeilenidentifizierung
15.05.2023 11:13:48
UweD
Hallo

anstelle der Buttons, könntest du ein Event verwenden
Z.B. BeforeDoubleClick

- Rechtsclick auf den Tabellenblattreiter von PROTOKOLLAUFGABE
- Code anzeigen
- Das hier rechts einfügen

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Zeitstempel As Date, UserN As String, Anz As Integer
    
    If Not Intersect(Target, Columns(6)) Is Nothing Then 'Nur bei in F

        'UserN = Application.UserName 'In Excel hinterlegte Name
        'Besser
        UserN = Environ("Username") 'Anmeldename des Nutzers am Netzwerk

        Zeitstempel = Now

        Anz = InputBox("Anzahl?", "Leerzeilen ergänzen", 0)
        If Anz > 0 Then
            Rows(Target.Row + 1).Resize(Anz).Insert
        End If
        
        Target.Offset(0, -1).Value = Zeitstempel
        Target.Offset(0, -2).Value = UserN
    End If
End Sub
Erklärung:
beim Doppelclick in Spalte F wird das makro aufgerufen
ggf Zeilen eingefügt, der Stempel und User eingetragen
und dann kannst du ganz normal deinen Text erfassen

LG UweD

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige