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

Änderungen speichern

Änderungen speichern
Eddi
Hallo zusammen,
ich habe zwei Spalten, Spalte A mit Werten, Spalte B = Benutzer
Wird die Datei von einem Benutzer geöffnet und der Wert in Spalte A geändert, soll nach der Änderung der Benutzername in die Spalte B eingetragen werden. Mit dem Worsheet_Change-Ereignis komm ich da nicht weiter (Endlos-Schleife). Würde das ganze gerne über VBA realisieren
Gruß, Eddi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Application.EnableEvents ...
22.10.2009 19:04:06
Matthias
Hallo Eddi
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns(1)) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
Target.Offset(, 1) = Application.UserName
Application.EnableEvents = True
End If
End Sub
Da sollte es keine Endlosschleife geben.
Gruß Matthias
oder Environ("Username") j.n.d was benötigt oT
22.10.2009 19:09:38
Matthias
und das Speichern nicht vergessen :-) kwT
22.10.2009 19:11:14
Matthias
noch eine Version...
22.10.2009 19:28:39
Tino
Hallo,
kannst ja mal testet.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect(Columns(1), Target)

If Not Bereich Is Nothing Then
  Application.EnableEvents = False
    For Each Bereich In Bereich.Areas
     Bereich.Offset(0, 1).Value = Environ$("Username")
    Next Bereich
  Application.EnableEvents = True
End If


End Sub
Gruß Tino
Anzeige
AW: noch eine Version...
22.10.2009 19:50:09
Eddi
Geht super, vielen Dank.
Gruß, Eddi
AW: noch eine Version...
22.10.2009 19:54:24
Matthias
Hi Tino
Bereich.Offset(0, 1).Value
Diese 0 kannst Du übrigens weglassen ;o)
Gehört sich nicht am Ende dann auch:
Set Bereich Is Nothing ?
Gruß Matthias
@Matthias
22.10.2009 20:13:02
Tino
Hallo,
persönlich bevorzuge ich die Version .Offset(0,1), kann den Code so besser leser.
Set Bereich2 = Nothing kann man machen muss aber nicht,
da dieses Objekt innerhalb der Sub Deklariert ist, ist es auch nur zur Laufzeit lebensfähig.
Gruß Tino
AW: @Matthias
22.10.2009 21:24:14
Eddi
Wie würde das ganze eigentlich aussehen, wenn man den Bereich etwas erweitert, sprich die Spaltenanzahl mit Werten erhöht?
Gruß, Eddi
Anzeige
zum Beispiel so...
22.10.2009 21:32:24
Tino
Hallo,
für die Spalte 1, 3 und 5
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

'Überwachte Bereich, hier Spalte 1, 3 u. 5 
Set Bereich = Union(Columns(1), Columns(3), Columns(5))

Set Bereich = Intersect(Bereich, Target)

If Not Bereich Is Nothing Then
  Application.EnableEvents = False
    For Each Bereich In Bereich.Areas
     Bereich.Offset(0, 1).Value = Environ$("Username")
    Next Bereich
  Application.EnableEvents = True
End If


End Sub
Gruß Tino
Anzeige
AW: zum Beispiel so...
22.10.2009 21:37:52
Eddi
Das hab ich schon verstanden. Ich meinte mit Bereich vergrößer quasi Spalte 1-5 sind die Spalten, in denen geändert wird und in Spalte 6 soll der Username stehen. Es müssten so zusagen immer alle 5 Spalten abgefragt werden.
Gruß und vielen Dank bis dato
meinst Du so?
22.10.2009 22:05:13
Tino
Hallo,
Spalte A bis E wird überwacht und in F kommt der Username.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, rZellen As Range

'Überwachter Bereich A-E 
Set Bereich = Range("A:E")

Set Bereich = Intersect(Range("A:E"), Target)

If Not Bereich Is Nothing Then
  Application.EnableEvents = False
   For Each Bereich In Bereich.Areas
        Set rZellen = Bereich.Columns(1)
        rZellen.Offset(0, 6 - rZellen.Column) = Environ$("Username")
   Next Bereich
  Application.EnableEvents = True
End If


End Sub
Gruß Tino
Anzeige
AW: meinst Du so?
22.10.2009 22:24:16
Eddi
Perfekt, Super. Vielen Dank.
Gruß, Eddi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige