Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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
Fehler in VBA-Code
08.04.2017 09:14:00
Sven
Hallo ihr lieben,
Ich bin am verzweifeln...
Dieses Makro:
Sub MyForm90003()
'
' MyForm90003 Makro
'
'
If Sheets("Home").Range("K11") = "1" Then
Sheets("WC").Activate
aktDatum = Application.Match(CLng(Date), Columns(22), 0)
Cells(aktDatum, 3) = "1"
Sheets("Home").Activate
Sheets("Home").Range("K11") = ""
Sheets("Home").Range("C4").Select
End If
End Sub

funktioniert in verbindung mit einer Schaltfläche einwandfrei.
Als direkten VBA-Code im Arbeitsblatt Home:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim clearCell As Boolean
If Sheets("Home").Range("K11") = "1" Then
Sheets("WC").Activate
aktDatum = Application.Match(CLng(Date), Columns(22), 0)
Cells(aktDatum, 3) = "1"
Sheets("Home").Activate
Sheets("Home").Range("K11") = ""
Sheets("Home").Range("C4").Select
End If
End Sub

bekomme ich in der Zeile Cells(aktDatum, 3) = "1" aber eine Fehlermeldung.
Hätte jemand eine Idee wo der Fehler sein könnte?
LG Sven

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler in VBA-Code
08.04.2017 09:18:32
Rainer
Hallo Sven,
ohne deine Datei sehen zu können wird es schwierig.
Ich spekuliere mal und sage, dass deine Variable "aktDatum" nicht vom richtigen Typ ist oder einfach "0" weil deine Quelle leer ist.
Gruß,
Rainer
AW: Fehler in VBA-Code
08.04.2017 09:28:41
hary
Moin
Da fehlt die Zuweisung des Sheets("WC") bei Columns(22) und Cells
so sollte es klappen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aktDatum As Variant
If Sheets("Home").Range("K11") = 1 Then
With Sheets("WC")
aktDatum = Application.Match(CLng(Date), .Columns(22), 0)
If IsNumeric(aktDatum) Then
.Cells(aktDatum, 3) = 1
Sheets("Home").Range("K11") = ""
End If
End With
End If
End Sub

gruss hary
Anzeige
AW:korrektur
08.04.2017 09:31:08
hary
Moin
Sheets("Home"). kann im Code auch weg, da dieses ja das Blatt mit dem Code ist.
gruss hary
AW: AW:korrektur
08.04.2017 09:40:25
Sven
Perfekt Harry,
Vielen lieben Dank.
Gruß Sven
AW:Nachtrag
08.04.2017 09:58:55
hary
Moin
Dir ist aber bewusst dass der Code bei jeder Aenderung im Blatt startet?
Eigenlich ueberwacht man eine Zelle bzw. Bereich damit dies nicht passiert.
gruss hary
AW: AW:Nachtrag
08.04.2017 10:37:20
Sven
Ok...
und wie macht man das?
AW: AW:Nachtrag
08.04.2017 10:46:50
hary
Moin
Welche Zelle(n) soll ueberwacht werden? K11
Wie kommt die 1 in die Zelle haendisch/Formel?
Change wirkt nur bei haendischer Aenderung!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aktDatum As Variant
If Target.Count > 1 Then Exit Sub '--wenn Ausahl groesser eine Zelle Code beenden
If Not Intersect(Target, Range("K11")) Is Nothing Then '--wirkt nur bei Aenderung in K11
If Target = 1 Then
With Sheets("WC")
aktDatum = Application.Match(CLng(Date), .Columns(22), 0)
If IsNumeric(aktDatum) Then
.Cells(aktDatum, 3) = 1
Sheets("Home").Range("K11") = ""
End If
End With
End If
End If
End Sub

gruss hary
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige