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

Problem VBA Code

Problem VBA Code
26.09.2018 07:43:11
Gero

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wks As Worksheet
Dim lngLast As Long
Set wks = Worksheets("Info")
lngLast = wks.Range("A65536").End(xlUp).Row + 1
If Target.Count > 1 Then Exit Sub
If Intersect(Range("d8:e23 "), Target) Is Nothing Then Exit Sub
With wks
.Range("A" & lngLast).Value = "Standort LFZ"
.Range("B" & lngLast).Value = Target.Address(0, 0)
.Range("C" & lngLast).Value = mvntWert
.Range("D" & lngLast).Value = Target.Value
.Range("E" & lngLast).Value = VBA.Environ("Username")
.Range("F" & lngLast).Value = Now
End With
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Range("B6:B8,E6:E8"), Target) Is Nothing Then Exit Sub
mvntWert = Target.Value
End Sub

Hallo ihr lieben.
Wie bekomme ich es hin, dass er den "alten Wert" aus der Zelle übernimmt. Auch wenn dort nichts drin steht. Zur Info der Wert ist per Dropdownliste auszuwählen und somit durch den Nutzer eingeschränkt auch durch den Blattschutz.
Der alte Wert sollte eg im Code oben über das DICKGEDRUCKTE ausgelesen werden.
Vielen Dank schonmal

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem VBA Code
26.09.2018 08:01:44
Daniel
Hi
Du musst mvntWert oberhalb der Makros deklarieren.
Gruß Daniel
AW: Problem VBA Code
26.09.2018 08:13:34
Gero
Option Explicit
Dim mvntWert As Variant
Meinst du so? Funktioniert aber nicht :(
AW: Problem VBA Code
26.09.2018 09:27:32
UweD
Hallo
so...!
Microsoft Excel Objekt Tabelle1
Option Explicit 
Public mvntWert 
   
  Private Sub Worksheet_Change(ByVal Target As Range) 
    On Error GoTo Fehler 
   
    Dim wks As Worksheet 
    Dim lngLast As Long 
      
    Set wks = Worksheets("Info") 
    lngLast = wks.Range("A65536").End(xlUp).Row + 1 
      
    If Target.Count > 1 Then Exit Sub 
    If Intersect(Range("d8:e23"), Target) Is Nothing Then Exit Sub 
      
    With wks 
        Application.EnableEvents = False 
        .Range("A" & lngLast).Value = "Standort LFZ" 
        .Range("B" & lngLast).Value = Target.Address(0, 0) 
     
        .Range("C" & lngLast).Value = mvntWert 
     
        .Range("D" & lngLast).Value = Target.Value 
        .Range("E" & lngLast).Value = VBA.Environ("Username") 
        .Range("F" & lngLast).Value = Now 
    End With 
     
    '*** Fehlerbehandlung 
    Err.Clear 
Fehler: 
    Application.EnableEvents = True 
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear 
   
  End Sub 
 
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Target.Count > 1 Then Exit Sub 
    If Intersect(Range("B6:B8,E6:E8"), Target) Is Nothing Then Exit Sub 
    mvntWert = Target.Value 
End Sub 

  • ganz oben als Public definieren
    noch ein Tipp
  • vor dem Ändern die Events ausschalten, sonst wird das Makro bei jeder Änderung durch sich selbst wieder erneut aufgerufen
  • um die Events auch im Fehlerfall wieder einzuschalten die Fehlerbehandlung so werwenden
    LG UweD
  • Anzeige
    AW: Problem VBA Code
    27.09.2018 10:52:04
    Gero
    Hallo Uwe....
    leider übernimmt er immernoch nicht den alten Zellenwert. Weder wenn nichts drin steht noch wenn was drin stand. Irgendwie merkwürdig
    AW: Problem VBA Code
    01.10.2018 13:43:46
    Gero
    Könnte mir da einer helfen warum der alte Wert nicht übernommen wird?

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige