Makro für Excel erstellen

Dieses Thema Makro für Excel erstellen im Forum "Microsoft Office Suite" wurde erstellt von TJ, 18. Juli 2008.

Thema: Makro für Excel erstellen Hallo, ich bräuchte dringend mal Hilfe. Ich hab eine Exceldatei in die mehrere Leute Sachen eintragen. Gibt es die...

  1. TJ
    TJ
    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. TJ
    TJ
    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. TJ
    TJ
    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. TJ
    TJ
    Hallo,

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

    pan_fee ;)
     
  9. TJ
    TJ
    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 :)
     
Die Seite wird geladen...

Makro für Excel erstellen - Ähnliche Themen

Forum Datum
Makro für bleibendes Datum einrichten Microsoft Office Suite 23. Mai 2011
benötige Hilfe für ein Excel 2007 Makro Windows XP Forum 26. Mai 2010
Excel: Makros gültig für nahezu alle WS Microsoft Office Suite 17. Aug. 2006
ACDSee: Gibt es ein plugin für die Programmierung eines Makros(=Befehlskette)? Software: Empfehlungen, Gesuche & Problemlösungen 18. Juli 2005
excel: makro für aktuelle zellfarbe Microsoft Office Suite 5. Juli 2005