Makro für Excel erstellen

  • #1
T

TJ

Mitglied
Themenersteller
Dabei seit
18.07.2008
Beiträge
9
Reaktionspunkte
0
Hallo,

ich bräuchte dringend mal Hilfe. Ich hab eine Exceldatei in die mehrere Leute Sachen eintragen. Gibt es die Möglichkeit, mit einem Makro eine Textdatei zu erstellen, in der drinsteht:

Benutzer A hat am 01.08.08 um 10:00 Uhr in Tabellenblatt1 Zelle G6 geändert

:-? :-? :-?

Ich bin absolut kein Fachman wenn es um Makros geht.

Bin für jeden Tip dankbar.

Gruß TJ
 
  • #2
ola,

du erhälst so ein Protokoll, wenn Du in Excel (welche Version hast du eigentlich) die Arbeitsmappe freigibst.
 
  • #3
Hallo und danke für die Antwort,

ich habe Excel 2000. Und wo finde ich diese Information?
 
  • #4
Ola,

Versionen bis 2003: Extras -> Arbeitsmappe freigeben. Aber erst an einer anderen Mappe testen, bevor das auf die wichtige angewendet wird.
 
  • #5
Hallo,

das ist nicht das was ich will. Das hatte ich schon probiert und hatte dann Probleme mit meiner Exceldatei. Ich kann mich leider nicht mehr erinnern was das Problem war. Es muß doch auch eine Makro Lösung geben. Ich hab es ja schon so weit, dass ich sehe wer wann etwas geändert hat. Ich müßte also nur noch wissen auf welchem Tabellenblatt und in welcher Zelle etwas geändert wurde.

Aber trotzdem danke für den Tipp.



Gruß TJ
 
  • #6
Ola,

hast du das Forum schon durchsucht? Ich erinnere mich dunkel an eine ähnliche Frage
 
  • #7
Hallo,

ja hab ich. Konnte allerdings nichts finden, was passt.
 
  • #8
unser Makro-Spezialist Matjes wird bestimmt bald vorbei schauen.

pan_fee ;)
 
  • #9
Hallo,

ich möchte nun mal mein bereits vorhandenes Makro zeigen.

Vielleicht kann mir ja dann jemand nen Tip geben wie ich weiter machen kann, um das zu erreichen, was ich mir vorstelle.

DieseArbeitsmappe

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Application.EnableEvents = True


Dim Benutzer As String
Dim Rechner As String
Dim Logfile As String
Dim Datum As String
Dim Uhrzeit As String

Logfile = c:\excel-zugriffe.txt
Benutzer = atCNames(1)
Rechner = atCNames(2)
Datum = Format(Now, dd.mm.yyyy)
Uhrzeit = Format(Now, HH:MM)
Dateiname = ActiveWorkbook.Name

Open Logfile For Append As #1
Print #1, Benutzer & vbTab & Datum & vbTab & Uhrzeit & vbTab & Rechner
Close #1

End Sub


Modul1

Code:
Private Declare Function api_GetUserName Lib advapi32.dll Alias GetUserNameA (ByVal lpBuffer As String, nSize As Long) As Long

Private Declare Function api_GetComputerName Lib kernel32 Alias GetComputerNameA (ByVal lpBuffer As String, nSize As Long) As Long

Public Function atCNames(UOrC As Long) As String
On Error Resume Next
Dim NBuffer As String
Dim Buffsize As Long
Dim Wok As Long

Buffsize = 256
NBuffer = Space$(Buffsize)


If UOrC = 1 Then
Wok = api_GetUserName(NBuffer, Buffsize)
atCNames = Trim$(NBuffer)
Else
Wok = api_GetComputerName(NBuffer, Buffsize)
atCNames = Trim$(NBuffer)
End If
If Right(atCNames, 1) = Chr(0) Then
atCNames = Left(atCNames, Len(atCNames) - 1)
End If

End Function

Soweit funktioniert das Ganze schon ganz gut. Jetzt will ich aber noch wissen in welchem Tabellenblatt und in welcher Zelle dort
etwas geändert wurde.

Gruß TJ
 
  • #10
Hallo TJ,

das könnte dann so aussehen:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim Logfile As String
Dim Benutzer As String, Rechner As String
Dim Datum As String, Uhrzeit As String
Dim sWB As String, sWS As String, sAdr As String

Logfile = c:\excel-zugriffe.txt

Benutzer = atCNames(1)
Rechner = atCNames(2)

Datum = Format(Now, dd.mm.yyyy)
Uhrzeit = Format(Now, HH:MM)

sWB = Sh.Parent.Name->Name der Datei
sWS = Sh.Name-> Name des Arbeitsblattes
sAdr = Target.Address(True, True)-> Adresse

Open Logfile For Append As #1
Print #1, Benutzer & vbTab & _
     Datum & vbTab & Uhrzeit & vbTab & _
     Rechner & vbTab & _
     sWB & vbTab & sWS & vbTab & sAdr
Close #1

End Sub

Schwierig wird es beim Löschen/Einfügen von Zeilen oder Bereichen. Das kann man dann nicht so einfach unterscheiden, ob eingefügt wurde oder gelöscht.

Gruß Matjes :)
 
Thema:

Makro für Excel erstellen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben