Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1512to1516
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

SelectionChange

SelectionChange
15.09.2016 12:42:31
Lisa
Hallo zusammen, ich versuche mich an dem SelectionChange Ereignis.
In meiner Tabelle1 wird, wenn in der Zelle A10 ein Eintrag gemacht wird, in der Zelle M10 der User eingetragen.
Dies realisiere ich wie folgt.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A10")) Is Nothing And Range("A10") = "" Then
With Sheets("Tabelle1")
.Unprotect
.Range("M10") = Environ("username")
End With
Else
If Sheets("Tabelle1").Range("A10") = "" Then Sheets("Tabelle1").Range("M10") = ""
End If
End Sub

Nun bin ich hier auf eine Zelle beschränkt, also der A10 und der M10.
Um das für einen Bereich, z.B. A10:A50 und M10:M50 zu realisieren, benötige ich Eure Hilfe.
Kann jemand zu meinem Anliegen weiterhelfen?
Liebe Grüße Lisa

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

Betreff
Datum
Anwender
Anzeige
AW: SelectionChange
15.09.2016 12:51:01
Daniel
Hi
dann ist aber das Change-Ereignis das bessere.
Wenn der Anwender die Zelle nur selektiert, aber nicht ändert, braucht der Code ja nicht laufen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle as Range
If Not Intersect(Target, Range("A10:A50")) Is Nothing Then
Application.enableEvents = False
Me.Unprotect
for each Zelle in Intersect(Target, Range("A10:A50")
if Zelle.Value = "" then
Zelle.Offset(0, 12).value = ""
else
Zelle.Offest(0, 12).Value = Environ("username")
end if
Next
me.Protect
Application.EnableEvents = True
End if
End Sub
bei einem Code in einem Tabellenblattmodul ist es nicht notwendig, das Tabellenblatt hinzuschreiben, wenn du dich auf das Tabellenblattmodul beziehen willst, dieses wird automatisch eingesetzt, wenn es nicht bei Range oder Cells nicht angegeben ist.
Wenn man trotzdem dieses Blatt haben will, kann man auch ME schreiben.
Gruß Daniel
Anzeige
AW: SelectionChange
15.09.2016 13:19:26
Lisa
Es wird leider kein UserName in die Spalte M eingetragen.
Kannst du dir das bitte noch einmal ansehen?
Es gab beim ersten Test ein debugger, der aber nur auf eine fehlende Klammer und eines Buchstabendrehers entstand. Nach der Korrektur tat sich leider nichts.
Lieben Dank Lisa
AW: SelectionChange
15.09.2016 13:38:00
UweD
Hallo
du schreibst, dass es zu einer Fehlermeldung kam.
Das sicherlich, nachdem Application.enableEvents = False bereits abgearbeitet wurde.
Dadurch reagiert das Makro nicht mehr auf eine Änderung.
lass das mal laufen.

Sub onon()
Application.EnableEvents = True
End Sub

es ist immer besser, wenn du diese Befehle in Makros benutzt, eine Fehlerbehandlung einzubauen, so dass solche Deaktivierungen auf jeden Fall wieder eingeschaltet werden.
so z.B.

Sub Dein Makro()
On Error GoTo Fehler
Dim TB1, TB2, i%
' weiter mit deinem Code
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Gruß UweD
Anzeige
AW: Fehlerbehandlung
15.09.2016 13:40:23
UweD
upps
genau das Wichtigste vergessen

'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

AW: Fehlerbehandlung
15.09.2016 14:24:17
Lisa
Hallo Uwe, hallo Daniel,
ich habe also den VBA Code noch einmal neu kopiert und vor dem Debugger die Korrektur vorgenommen.
Jetzt funktioniert das Change Ereignis wie gewünscht.
Es muss also an der Abhandlung des Application.EnableEvents gelegen haben, das der User ncht eingetragen wurde.
Vielen lieben Dank an Euch beide und liebe Grüße
Lisa
Anzeige
Prima! Danke für die Rückmeldung.
15.09.2016 14:26:14
UweD
AW: SelectionChange
15.09.2016 13:40:12
Daniel
Hi
ich habe den Code in Tabellenblattmodul übernommen, die Tippfehler korrigiert und muss feststellen, dass er funktioniert, der Name wird in die Spalte 13 eingetragen.
Wenns nicht geht, muss es an was anderem liegen.
kannst du bitte mal deine Datei hochladen, damit wir sehen können, was du gemacht hast?
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige