Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1328to1332
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

automatisieren in excel

automatisieren in excel
17.09.2013 12:17:10
nou
Guten tag
Ich habe im Internet viele ihrer Einträge und Tipps zu excel gefunden.
Nun hoffe ich dass sie eventuell auch mir einen Tipp geben könen, denn ich möchte ein Changelog automatisieren sprich alles was in Tabelle 14 bspw. geändert wird soll als komplette Zeile in Tabelle 3 bspw. hinzugefügt werden und es soll eine Abfrage geben wieso es geändert wurde und ein Kommentar abgegeben.
In der Tabelle 3 will ich Das die Änderung übernommen wird und dadurch das der User der etwas geändert hat eingeloggt ist soll automatisch in Tabelle 3 das Datum und die Person hinzugefügt werden.
Jedoch stolper ich an allen Ecken vielleicht können sie mir einen Tipp geben.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatisieren in excel
17.09.2013 15:42:27
Bastian
Hallo,
der folgende Code gehört in das Modul von Tabelle14 (die überwacht werden soll):
Option Explicit Dim lngRow As Long Dim strAlterWert As String Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub With Worksheets("Tabelle3") lngRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 .Cells(lngRow, 1).Value = Target.Address(False, False) .Cells(lngRow, 2).Value = strAlterWert .Cells(lngRow, 3).Value = Target.Value .Cells(lngRow, 4).Value = Application.UserName .Cells(lngRow, 5).Value = Now End With End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub strAlterWert = Target.Value 'Wert der ausgewählten Zelle merken, um den alten Zellwert _ zu dokumentieren End Sub
Die Tabelle mit dem Changelog sieht dann so aus. Kannst Du ja entsprechend Deinen Bedürfnissen anpassen.
Tabelle3

 ABCDE
1Zelladressealter Zellwertneuer Zellwertgeändert vonÄnderungsdatum / Zeit
2A1 HalloMustermann, Max17.09.2013 15:39
3A1HalloTschüßMustermann, Max17.09.2013 15:39


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß, Bastian

Anzeige
AW: automatisieren in excel
18.09.2013 08:43:25
nou
Vielen Dank Bastian du hast mir hiermit bereits gut weiter geholfen, ich möchte aber wenn ich etwas in Tabelle 14 ändere und dann auf speichern drücke eine abfraga kommt, in der steht möchten die änderung speichern ja nein und im falle von ja möchte ich die Möglichkeit geben im abfrage feld ein Kommentar abgeben zu müssen für den grund der änderung ´, und dieses abgegebene Kommentar soll nur im Changelog in einer eigenen Spalte bsp grund auftauchen.
Sprich ich möchte den Grund nicht manuell im Changelog eingeben sondern direkt bei der Abfrage.
Wäre cool wenn jemand hier weiter weiß :)

Anzeige
AW: automatisieren in excel
18.09.2013 09:33:42
Bastian
Hallo,
hier ein erweiterter Code. Allerdings kommt die Nachfrage nach jeder Änderung und nicht erst, wenn der User die Datei speichern möchte.
Option Explicit
Dim lngRow As Long
Dim intYesNo As Integer
Dim strGrund As String
Dim strAlterWert As String
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
intYesNo = MsgBox("Möchten Sie die Änderung übernehmen?", vbYesNo, "Änderungsabfrage")
Select Case intYesNo
Case 6
Do
strGrund = InputBox("Bitte Änderungsgrund angeben", "Änderungsgrund")
Loop Until (strGrund  "") 'Eingabe erzwingen
' Changelog in Tabelle3 ausfuellen
With Worksheets("Tabelle3")
lngRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lngRow, 1).Value = Target.Address(False, False)
.Cells(lngRow, 2).Value = strAlterWert
.Cells(lngRow, 3).Value = Target.Value
.Cells(lngRow, 4).Value = Application.UserName
.Cells(lngRow, 5).Value = Now
.Cells(lngRow, 6).Value = strGrund
End With
Case Else
'Falls bei der Abfrage "Nein" gewaehlt wird, wird der alte Wert wieder eingetragen ( _
Aenderung verworfen)
Application.EnableEvents = False
Target.Value = strAlterWert
Application.EnableEvents = True
Exit Sub
End Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Verhindern, dass mehr als eine Zelle selektiert wird
On Error GoTo ErrorExit
Application.EnableEvents = False
ActiveCell.Select
ErrExit:
Application.EnableEvents = True
'Wert der ausgewaehlten Zelle merken, um im Changelog den alten Zellwert zu dokumentieren
strAlterWert = Target.Value
ErrorExit:
End Sub

Die Tabelle mit dem Changelog sieht dann so aus:
 ABCDEF
1Zelladressealter Zellwertneuer Zellwertgeändert vonÄnderungsdatum / ZeitÄnderungsgrund
2A2 Neuer TextMustermann, Max18.09.2013 09:29nur so


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß, Bastian

Anzeige
AW: automatisieren in excel
18.09.2013 11:29:02
nou
Super es funktioniert mir wird nur die ganze zeit ein laufzeitfehler "9" angezeigt, liegt wahrscheinlich an einer von mir falschen deklaration finde das problem nur gerade noch nicht..
aber ansonsten vielen dank hat super geklappt ;)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige