Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Eintragen erlauben, aber Löschen von Werten verhindern
#11
So,  jetzt habe ich mich selber versucht und stolpere bei einer Sache (für Euch VBA-Profis ein Klacks, vermute ich)

Ich arbeite mit Ralfs Code: Werte einer Zelle und eines Wahlbereiches können nicht (versehentlich) gelöscht werden 

& ich möchte die aktive Zeile farblich markieren, in der gerade der Inventurbestand zählerisch wird. 

bei mir sieht das so aus, siehe Anhang:

Problem dabei: Die Mehrauswahl kann ich dennoch löschen und ich sehe keine "Farbe" - heben sich die Codes gegenseitig auf? Als Fehler kommt "Fehler beim Kompilieren" -> Mehrdeutiger Name.

Was bedeutet das? 

Habt Dank! 
Sebastian


Angehängte Dateien
.txt   VBA.txt (Größe: 1,07 KB / Downloads: 5)
.xlsm   TEST-mitVBA.xlsm (Größe: 19,42 KB / Downloads: 1)
Antworten Top
#12
Datei habe ich mir nicht angesehen, aber die Textdatei mit dem VBA Code. Du hast da 2 x 

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

drin stehen. Das geht natürlich nicht. Eine von den beiden Prozeduren (bis zum End Sub) muss da komplett raus.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#13
Danke, Ralf - ich habe reduziert, danke für den Hinweis.



********
Private Sub Worksheet_Change(ByVal Target As Range)
If Not wert = Empty Then
    Application.EnableEvents = False
    If Target = Empty Then Target = wert:      MsgBox wert & " kann nicht gelöscht werden"
    Application.EnableEvents = True

wert = Empty            'Bereich anpassen...
ActiveSheet.Protect Contents:=False
If Not Intersect(Target, Range("A1:I45")) Is Nothing Then
    If Target.Count = 1 Then
        wert = Target
    Else
        ActiveSheet.Protect Contents:=True

    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    With Target
        ' Highlight the entire row and column that contain the active cell
        .EntireRow.Interior.ColorIndex = 8
    End With
    Application.ScreenUpdating = True

End If
End Sub
*******************

da bekomme ich leider auch die Meldung, dass ein Kompilieren nicht geht. Stehe ich so auf dem Schlauch? 
Es muss doch mit dem End If End Sub-Part enden. ..

VG
Sebastian
Antworten Top
#14
(15.12.2022, 16:30)Ralf schrieb: Nimm den Code des Change Ereignisses aus Post # 3:
Code:
Option Explicit
Dim wert

Private Sub Worksheet_Change(ByVal Target As Range)
If Not wert = Empty Then
    Application.EnableEvents = False
    If Target = Empty Then Target = wert:      MsgBox wert & " kann nicht gelöscht werden"
    Application.EnableEvents = True
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
wert = Empty                                 'Bereich anpassen...
If Target.Count = 1 And Not Intersect(Target, Range("A2:A10")) Is Nothing Then
    wert = Target
End If
End Sub

... und den Code des SelectionChange Ereignisses aus Post #8 hängst Du unten dran...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#15
...ah... sorry... hab gerade beim scrollen entdeckt, dass der kopierte Code im letzten Post auch noch das Selection_Change Ereignis beinhaltet. Das muss natürlich raus...

PS: Schau mal in Deine PN...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste