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

Unzulässige Verwendung von Null

Unzulässige Verwendung von Null
Null
Hallo im Forum
Habe ein Makro zum einfügen von Werten.
Bekomme aber immer in der Zeile:
  bool = UCase(Target.Text) Like "[A-I]" Or UCase(Target.Text) Like "[A-E][1-2]"
Die Fehlermeldung "Unzulässige Verwendung von Null"
Könnte mir bitte jemand weiterhelfen ?
Gruß
Heinz
Public Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Bereich As Range
Dim rng As String, Zeile As Long
Dim bool As Boolean
Set Bereich = Range("B3:B156")
Application.EnableEvents = False
bool = UCase(Target.Text) Like "[A-I]" Or UCase(Target.Text) Like "[A-E][1-2]"
If bool Then
If Not Intersect(Target, Bereich) Is Nothing And Target.Offset(0, -1).Text  "" Then
Zeile = 500 + Asc(UCase(Target.Text)) - Asc("A")
Select Case Right(Target.Text, 1)
Case "1": Zeile = Zeile + 9
Case "2": Zeile = Zeile + 14
End Select
rng = "C" & Zeile & ":AG" & Zeile
End If
Application.CutCopyMode = False
End If
Application.EnableEvents = True
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Unzulässige Verwendung von Null
11.09.2010 14:26:57
Null
Hallo,
bei welcher Gelegenheit tritt dieser Fehler auf, da ich es bisher nicht reproduzieren konnte?
Gruß
Bosko
AW: Unzulässige Verwendung von Null
11.09.2010 14:58:03
Null
Hallo BoskoBiati
Wenn ich dieses Makro aufrufe.
Bin gerade noch dabei.eine Mappe hochzuladen, ist momentan noch zu groß
Danke
Heinz
Sub Neuer_Schichtplan()
Application.ScreenUpdating = False
If MsgBox("Wollen Sie die Schichten einfügen ? Die alten Schichtpläne werden gelöscht.",  _
vbQuestion + vbYesNo, _
" Nachfrage Schichten einfügen !") = vbNo Then Exit Sub
Sheets("Jänner").Unprotect
Sheets("Februar").Unprotect
Sheets("März").Unprotect
Sheets("April").Unprotect
Sheets("Mai").Unprotect
Sheets("Juni").Unprotect
Sheets("Juli").Unprotect
Sheets("August").Unprotect
Sheets("September").Unprotect
Sheets("Oktober").Unprotect
Sheets("November").Unprotect
Sheets("Dezember").Unprotect
Sheets("Schichtplan").Range("Y42:AG71").Copy
Sheets("September").Range("C500").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Sheets("September").Range("C500:AG508").ClearComments
Sheets("September").Range("C500:AG508").Replace What:="0", Replacement:=""
Sheets("September").Range("C3:AG156").Interior.ColorIndex = xlNone
Sheets("September").Range("C3:AG156").Font.ColorIndex = 0
'Vorarbeiter
Sheets("Schichtplan VA").Range("Q42:U71").Copy
Sheets("September").Range("C509").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Sheets("September").Range("C509:AG513").ClearComments
Sheets("September").Range("C509:AG513").Replace What:="0", Replacement:=""
'Sheets("September").Range("C3:AG156").Interior.ColorIndex = xlNone
'Sheets("September").Range("C3:AG156").Font.ColorIndex = 0
'Schrumpfer
Sheets("Schichtplan Schrumpfer").Range("Q42:U71").Copy
Sheets("September").Range("C514").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Sheets("September").Range("C514:AG518").ClearComments
Sheets("September").Range("C514:AF518").Replace What:="0", Replacement:=""
'Sheets("September").Range("C3:AG156").Interior.ColorIndex = xlNone
'Sheets("September").Range("C3:AG156").Font.ColorIndex = 0
'Qualitätssicherung
Sheets("Schichtplan QS").Range("Q42:U71").Copy
Sheets("September").Range("C519").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Sheets("September").Range("C519:AG523").ClearComments
Sheets("September").Range("C519:AF523").Replace What:="0", Replacement:=""
'Sheets("September").Range("C3:AG156").Interior.ColorIndex = xlNone
'Sheets("September").Range("C3:AG156").Font.ColorIndex = 0
Dim i As Integer
Dim j As Integer
For i = 1 To 12
For j = 3 To 156
If Sheets(i).Cells(j, 1)  "" Then
Workbook_SheetChange Sheets(i), Cells(j, 2)
End If
Next j
Next i
Sheets("Jänner").Protect
Sheets("Februar").Protect
Sheets("März").Protect
Sheets("April").Protect
Sheets("Mai").Protect
Sheets("Juni").Protect
Sheets("Juli").Protect
Sheets("August").Protect
Sheets("September").Protect
Sheets("Oktober").Protect
Sheets("November").Protect
Sheets("Dezember").Protect
Application.ScreenUpdating = True

Anzeige
AW: Unzulässige Verwendung von Null
11.09.2010 21:45:25
Null
Hallo Heinz,
ergänze bitte mal die Call-Anweisung:
Dim i As Integer
Dim j As Integer
For i = 1 To 12
For j = 3 To 156
If Sheets(i).Cells(j, 1) "" Then
DieseArbeitsmappe.Workbook_SheetChange Sheets(i), Sheets(i).Cells(j, 2)
End If
Next j
Next i
Modul DieseArbeitsmappe:
Public Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Bereich As Range
Dim rng As String, Zeile As Long
Dim bool As Boolean
Set Bereich = Range("B3:B156")
Application.EnableEvents = False
If Not Intersect(Target, Bereich) Is Nothing And Target.Offset(0, -1).Text  "" Then
bool = UCase(Target.Text) Like "[A-I]" Or UCase(Target.Text) Like "[A-E][1-2]"
If bool Then
Zeile = 500 + Asc(UCase(Target.Text)) - Asc("A")
Select Case Right(Target.Text, 1)
Case "1": Zeile = Zeile + 9
Case "2": Zeile = Zeile + 14
End Select
rng = "C" & Zeile & ":AG" & Zeile
End If
Application.CutCopyMode = False
End If
Application.EnableEvents = True
End Sub
Hier habe ich nur die Prüfung If Intersect ..... versetzt, damit nur bei Eingabe bzw. Vorgabe
B3:B156 geprüft wird.
Die Variable bool ist überflüssig. Stattdessen könntest Du genausogut eine weitere IF.. Then.. EndIf - Bedingung daraus machen.
Es wird der Kopiermodus abgeschaltet u. der String rng gefüllt.
Eine Stringvariable mit meinen Standard-Präfix für Range-Variablen benannt zu sehen, schmerzt mich etwas. Aber dies nur nebenbei.
Mehr, in einer Tabelle oder so, passiert nicht, weil diese Variable lokal deklariert ist u. keine Codezeile für 's Tun vorhanden ist.
Da musst Du noch etwas nacharbeiten.
Außerdem wäre m.E. eine eigene Prozedur außerhalb des Workbook_Change für die Verarbeitung sinnvoller, ggf. in Verbindung mit einer Call-Anweisung nach IF Not Intersect ....is Nothing.
Gruß Gerd
Anzeige
AW: Unzulässige Verwendung von Null
12.09.2010 07:52:21
Null
Guten morgen Gerd
Habe nun die Mappe hochladen können.
Es fehlen die Monate Februar bis Juli,wegen der Grösse zum hochladen.
Im Monat Dezember ist der Button "Schichten einfügen" der das Makro auslöst.
Könntest du mir bitte hier weiterhelfen.
Danke & Gruß
Heinz
https://www.herber.de/bbs/user/71483.zip
AW: Unzulässige Verwendung von Null
12.09.2010 09:04:06
Null
Hallo Heinz,
ausgelöst wird die Event-Routine durch diese Zeile:
Sheets("Jänner").Range("C500").PasteSpecial Paste:=xlPasteValues, Transpose:=True
Dabei werden 279 Zellen geändert. Diese sind dein Target. Daher gibt die Text-Eigenschaft NULL zurück, da sie sich nicht auf eine einzelne Zelle bezieht.
Du musst also entweder in der Routine "Neuer_Schichtplan" die Events unterdrücken, oder in der Event-Prozedur eine Abfrage einbauen ob sich Target auf eine einzelne Zelle bezieht, oder den Bereich eingrenzen, oder den Bereich in einzelne Zellen auflösen und ihn in einer Schleife abarbeiten.
Gruß
Nepumuk
Anzeige
AW: Unzulässige Verwendung von Null
12.09.2010 16:03:01
Null
Hallo Nepomuk
Könntest du mir BITTE ein Beispiel in der Arbeitsmappe eingeben ?
Danke & Gruß
Heinz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige