Hallo
ziemlicher langer Code, aber schön das ich mich damit beschäftigen musste. Dabei ist mir bei Intersect etwas aufgefallen, was ich bisher nicht wusste!
Teste meine Änderungen bitte zuerst nicht im Original, sondern in einer kopierten Datei. Zum Schutz vor evtl. Fehlern im Makro.
Ich habe dir eine MsgBox nur zum testen eingebaut, damit du dir nach einer Eingabe mal den Rangebereich selbst anschauen kannst. Dann fällt dir auch was auf!!
Intersect gibt nach einer Eingabe nicht den gesamten Bereich zurück, sondern nur die aktive Eingabezelle. Damit musste die rng Definition als Bereich für die For Next Schleife versagen. Das habe ich jetzt umgestellt. Des weiteren würde das Makro nicht mehr ausgeführt, wenn du in Spalte X einen Text eingibst, denn die erste Set Anweisung wertet den Bereich D5:D60 aus, und verlässt das Makro wenn es dort keine Eingabe gibt! Das habe ich auch geändert. Jetzt musst du bitte mal testen wie sich das in deiner Datei auswirkt.
Im ersten Teil des Makro habe ich for auch mal so umgestellt, kann aber nicht vorhersagen wie sich das auswirkt? For Each Zelle In Range("D5:D60") 'Was passiert jetzt im Code??
Wenn das unerwünscht ist kann man die For Next Schleife ohnehin weglassen und sie direkt durch Select Case mit "rng" ersetzen: Select Case rng.Value
Viel Spss beim Code testen (in der Kopie Datei) , ich bin gespannt was du dabei alles heraus findest und auf die Rückmeldung ....
mfg Gast 123
Nachtrag Pardon, im Code gehört noch eine Zeile rein. Wenn in Spalte X der Text gelöscht wurde. Dann muss auch Spalte WE wieder gelöscht werden!
ziemlicher langer Code, aber schön das ich mich damit beschäftigen musste. Dabei ist mir bei Intersect etwas aufgefallen, was ich bisher nicht wusste!
Teste meine Änderungen bitte zuerst nicht im Original, sondern in einer kopierten Datei. Zum Schutz vor evtl. Fehlern im Makro.
Ich habe dir eine MsgBox nur zum testen eingebaut, damit du dir nach einer Eingabe mal den Rangebereich selbst anschauen kannst. Dann fällt dir auch was auf!!
Intersect gibt nach einer Eingabe nicht den gesamten Bereich zurück, sondern nur die aktive Eingabezelle. Damit musste die rng Definition als Bereich für die For Next Schleife versagen. Das habe ich jetzt umgestellt. Des weiteren würde das Makro nicht mehr ausgeführt, wenn du in Spalte X einen Text eingibst, denn die erste Set Anweisung wertet den Bereich D5:D60 aus, und verlässt das Makro wenn es dort keine Eingabe gibt! Das habe ich auch geändert. Jetzt musst du bitte mal testen wie sich das in deiner Datei auswirkt.
Im ersten Teil des Makro habe ich for auch mal so umgestellt, kann aber nicht vorhersagen wie sich das auswirkt? For Each Zelle In Range("D5:D60") 'Was passiert jetzt im Code??
Wenn das unerwünscht ist kann man die For Next Schleife ohnehin weglassen und sie direkt durch Select Case mit "rng" ersetzen: Select Case rng.Value
Viel Spss beim Code testen (in der Kopie Datei) , ich bin gespannt was du dabei alles heraus findest und auf die Rückmeldung ....
mfg Gast 123
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim Zelle As Range
Dim intIndex As Integer
Dim rng As Range
Set rng = Intersect(Target, Range("X5:X60"))
If Not rng Is Nothing Then GoTo SpW 'Spalte W bearbeiten
Set Bereich = Range("B5:z60")
Set rng = Intersect(Target, Range("D5:D60"))
If rng Is Nothing Then Exit Sub
If Target.Value = Empty Then Exit Sub
Application.EnableEvents = False
MsgBox rng.Address(0, 0) '** nur zum Range testen !!
For Each Zelle In Range("D5:D60") 'Was passiert jetzt im Code??
'For Each Zelle In rng
Select Case Zelle.Value
' falls es unterschiedlicher Text wäre
'Rechts links
Case "2069692": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2068694": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2069693": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2061538": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2061536": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2070577": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2073630": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2079335": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2060109": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2068440": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2067661": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2066453": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2072135": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2065663": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2073641": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2073627": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2073140": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2074487": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2073642": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2073644": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2081273": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
Case "2072030": intIndex = 6: Zelle.Offset(0, 19).Value = "links rechts Markierung"
'KZ48
Case "2066150": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2068006": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2068007": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2068008": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2068009": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2069288": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2069289": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2069351": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2069352": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2069947": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2070379": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2070598": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2070599": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2070623": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2070627": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071522": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071617": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071618": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071619": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071620": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071621": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071622": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071636": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071782": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2071830": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2072503": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2072504": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2073969": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2073972": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2074563": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2075364": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2076374": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2076815": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2077936": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078006": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078007": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078213": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078265": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078266": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078317": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078377": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078531": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078646": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2078882": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2079639": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2079640": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2079703": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2079881": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2080309": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2081008": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2072507": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2072506": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2069353": intIndex = 6: Zelle.Offset(0, 19).Value = "Autoreflex nur Rohglas mit KZ48 verwenden"
Case "2079689": intIndex = 6: Zelle.Offset(0, 19).Value = "Super-Autoreflex nur Rohglas mit KZ45 verwenden"
Case "2075086": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075524": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075525": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075527": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075528": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075529": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075530": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075531": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075532": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075533": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075534": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075537": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075540": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075541": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075542": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075543": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075545": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075547": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075548": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2075555": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2076253": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2077595": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2077653": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2077812": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2077864": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2078112": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2079199": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2079712": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2079713": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2079715": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2079716": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
Case "2084793": intIndex = 3: Zelle.Offset(0, 19).Value = "Mat. 2079712 verwenden KZ91"
Case "2074158": intIndex = 3: Zelle.Offset(0, 19).Value = "Mat. 2079713 verwenden KZ91"
Case "2074275": intIndex = 3: Zelle.Offset(0, 19).Value = "Mat. 2079715 verwenden KZ91"
Case "2079187": intIndex = 3: Zelle.Offset(0, 19).Value = "Mat. 2079716 verwenden KZ91"
Case "2085516": intIndex = 6: Zelle.Offset(0, 19).Value = "Carlex KZ91 verwenden"
'orange Paletten
Case "2077050": intIndex = 0: Zelle.Offset(0, -2).Value = "Tampere (YF)": Zelle.Offset(0, 19).Value = "nur hohe orange Palette möglich"
Case "2075410": intIndex = 0: Zelle.Offset(0, -2).Value = "Tampere (YF)": Zelle.Offset(0, 19).Value = "nur hohe orange Palette möglich"
Case "2068610": intIndex = 0: Zelle.Offset(0, -2).Value = "Tampere (YF)": Zelle.Offset(0, 19).Value = "nur orange Palette möglich"
Case "2077973": intIndex = 0: Zelle.Offset(0, -2).Value = "Solar (YS)": Zelle.Offset(0, 19).Value = "Solar Palette"
Case "2073773": intIndex = 0: Zelle.Offset(0, -2).Value = "Tampere (YF)": Zelle.Offset(0, 19).Value = "nur orange Palette möglich"
Case Else: intIndex = -4142: 'Zelle.Offset(0, 19).Value = "" ' Spalte W leeren
End Select
If Zelle.Value <> "" Then
Zelle.Offset(0, 21).Value = "SM4"
Else
Zelle.Offset(0, 21).Value = "" ' Spalte Y leeren
End If
'Zelle.Offset(0, 19).Value = "Dein Text für Alle" 'hier bei immer gleichem Text
Bereich.Rows(Zelle.Row - 4).Interior.ColorIndex = intIndex
Next
SpW: 'Dein Code
If Target.Value = Empty Then Exit Sub
'** NICHT Exit Sub verwenden wegen EnableEvents = True
'Schleife für alle gültigen Eingaben
For Each Zelle In Range("X5:X60")
Select Case Zelle.Value
Case "Aken", "Witten", "AGP", "Guardian"
Cells(Zelle.Row, "W") = "Beleg drucken"
Case Else
MsgBox Target.Value & " - unbekannter Text"
Zelle.Select: Exit For
End Select
Next
Application.EnableEvents = True
End Sub
Nachtrag Pardon, im Code gehört noch eine Zeile rein. Wenn in Spalte X der Text gelöscht wurde. Dann muss auch Spalte WE wieder gelöscht werden!
Code:
Select Case Zelle.Value
Case "Aken", "Witten", "AGP", "Guardian"
Cells(Zelle.Row, "W") = "Beleg drucken"
Case Empty
Cells(Zelle.Row, "W") = Empty
Case Else
MsgBox Target.Value & " - unbekannter Text"
Zelle.Select: Exit For
End Select