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

Code läuft nicht

Code läuft nicht
Bernd
Hallo liebe Wissenden,
folgenden Code habe ich:
If Range("E22:E41") "x" Then
a = 22
Else
b = 23
End If
wenn nun in Zelle E22 z.B. 169 geschrieben wird, gibt es im Code eine Fehlermeldung.
Laufzeitfehler
Wie muss der Code geändert werden?
Gruß Bernd

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Code läuft nicht
19.08.2010 12:43:38
Rudi
Hallo,
du kannst nicht einen Bereich mit einem Wert vergleichen.
Was bezweckst du?
Gruß
Rudi
AW: Code läuft nicht
19.08.2010 12:50:38
Bernd
Die Eingabe in den Zellen E22:E41 ist per Gültigkeit auf das "x" beschränkt.
Allerdingst wird per Code eine Abfrage gestartet.
Wenn nun statt des "x" ein anderer Wert eingetragen wird, kommt halt die Gültigkeitsmeldung und bei Bestätigung der Abfrage im Code mit "ja" kommt es dann zur Fehlermeldung.
Hier mal der komplette Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, Mldg1, Stil1, Titel1, Antwort1, Zelle1, Zelle11, Mldg2, Stil2, Titel2, Antwort2, Zelle2,  _
Zelle22
If Range("E22:E41")  "x" Then
a = 22
Else
If Not Intersect(Target, Range("E22:E41")) Is Nothing And Target.Count = 1 Then
Zelle1 = ActiveCell(0, -2)
Zelle11 = ActiveCell(0, -1)
Mldg1 = "Hat der/die Kollege/Kollegin    " & Zelle11 & " " & Zelle1 & vbCr & _
"auch die folgenden fünf Monate in Vollzeit gearbeitet?"
Stil1 = vbYesNo + vbQuestion
Titel1 = "Autoausfüllen?"
Antwort1 = MsgBox(Mldg1, Stil1, Titel1)
If Antwort1 = vbYes Then
Target.Offset(, 2).Value = "x"
Target.Offset(, 4).Value = "x"
Target.Offset(, 6).Value = "x"
Target.Offset(, 8).Value = "x"
Target.Offset(, 10).Value = "x"
ActiveCell(1, -3).Select
Else
End If
Else
End If
If Not Intersect(Target, Range("F22:F41")) Is Nothing And Target.Count = 1 Then
Zelle2 = ActiveCell(0, -3)
Zelle22 = ActiveCell(0, -2)
Mldg2 = "Hat der/die Kollege/Kollegin    " & Zelle22 & " " & Zelle2 & vbCr & _
"auch die folgenden fünf Monate in Teilzeit gearbeitet?"
Stil2 = vbYesNo + vbQuestion
Titel2 = "Autoausfüllen?"
Antwort2 = MsgBox(Mldg2, Stil2, Titel2)
If Antwort2 = vbYes Then
Target.Offset(, 2).Value = "=RC[-2]"
Target.Offset(, 4).Value = "=RC[-4]"
Target.Offset(, 6).Value = "=RC[-6]"
Target.Offset(, 8).Value = "=RC[-8]"
Target.Offset(, 10).Value = "=RC[-10]"
ActiveCell(1, -4).Select
Else
End If
Else
End If
End If
End Sub

Anzeige
AW: Code läuft nicht
19.08.2010 13:11:42
Rudi
Hallo,
wozu die Abfrage? a kann ich im folgenden Code nicht mehr finden.
Was soll ActiveCell(0, -2) etc? Hast du da OffSet vergessen?
Target.Offset(, 2).Value = "=RC[-2]": Anstatt Value ist FormulaR1C1 angesagt.
Gruß
Rudi
AW: Code läuft nicht
19.08.2010 13:21:56
Bernd
das a habe ich nur als Platzhalter genommen.
Mir geht es darum, die Fehlermeldung zu vermeiden.
Egal ob ich in E22, E23, E24 ... E41 bin.
immer, wenn ich etwas anderes als das X eingebe, und nach der Gültigkeitsmeldung die MSG-Box mit ja bestätige, kommt halt die Fehlermeldung.
AW: Code läuft nicht
19.08.2010 15:43:37
Bernd
.
doppelt gemoppelt
19.08.2010 16:00:55
Rudi
Hallo,
lösche die Gültigkeit und prüfe die Eingabe im Code.
Gruß
Rudi
Anzeige
ahh, gute Idee, werde ich umsetzen. Danke o.w.t.
19.08.2010 16:01:54
Bernd
.
AW: Code läuft nicht
19.08.2010 12:46:31
Hajo_Zi
Hallo Bernd,
mit Deiner schreibweise kannst Du nur eine Zelle prüfen.
Willst Du prüfen ob kein "x" in einer Zelle vorkommt?
Benutze Application.WorksheetFunction.CountA(Range("E22:E41"), "x") = 0
Gruß Hajo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige