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.

Komplexes zählverhalten
#21
...Du musst den Code schon komplett übernehmen, denn nach dem Then gehts ja weiter:

If CInt(Mid(Target.Offset(-1, -1), 3, 2)) <> Month(Date) Then .Range("A2") = 0

Und vorallem: in der gleichen Zeile. OHNE Zeilenumbruch!
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
#22
Das habe ich schon so. Aber diesen Teil der Zeile hat der Debugger gelb markiert. da sagt er stimmt was nicht.

Hier mein eingetragener Code:
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Column = 2 And Target <> "" Then
    If Target.Offset(, -1) = "" Then
        Application.EnableEvents = False
        With Sheets("Administrator")
            If CInt(Mid(Target.Offset(-1, -1), 3, 2)) <> Month(Date) Then .Range("A2") = 0
            Target.Offset(, -1) = Format(Date, "YYMM - ") & Format(.Range("A2"), "000")
            .Range("A2") = .Range("A2") + 1
        End With
    End If
End If
    Application.EnableEvents = True
End Sub
Antworten Top
#23
...kann ich nicht nachvollziehen.

Kannst Du die Datei mal anhängen?

PS: Was Du mal versuchen kannst, schreib vor dem Mid mal ein VBA. (mit dem Punkt)

Also:

Code:
If CInt(VBA.Mid(Target.Offset(-1, -1), 3, 2)) <> Month(Date) Then .Range("A2") = 0
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
#24
Hilfe, jetzt geht gar nichts mehr. Es kommen gar keine zahlen mehr raus dabei.

Ich versuch dir die Datei mal kurz über pn zuzustellen.

MFG


.xlsm   231125_OS_Mitgliederliste_test.xlsm (Größe: 115,85 KB / Downloads: 2)
Antworten Top
#25

.xlsm   Cinderella.xlsm (Größe: 17,3 KB / Downloads: 5)

Vor der PN, probier diese. In B10 mal irgendwas eintragen....
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
#26
bei mir geht das nicht. obwohl ich die sicherheitswarnung deaktiviert habe. eigentlich sollte das doch jetzt gehen?
Antworten Top
#27
Hallo

Auch wenn ich hier mit zu tun habe, habe ich aus Interesse die Datei von Ralf A ausprobiert, bei mir läuft sie problemlos und macht das was sie tun soll.
Viele Grüße
PIVPQ
Antworten Top
#28
Hallo Ralf


Danke nochmals für Deinen Aufwand.
Die Datei die du geschickt hast läuft also nun auch bei mir.

Aber nur wenn ich was eintrage.
Wenn ich aber einen Namen hineinkopiere und mit Enter bestätige gibt Excel einen Fehler aus.
Geht das nur mit schreiben?

MFG

Oder kann das was damit zu tun haben das wir auf der Haupttabelle auf A7 beginnen und du auf A1?
Antworten Top
#29
....smile....

Mein Fehler.... hatte nicht bedacht, dass Du noch keine Einträge in der Liste hast. Dann läuft der Code selbstverständlich in einen Fehler.

Hier die Korrektur:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
If Target.Count = 1 And Target.Column = 2 And Target <> "" Then
    If Target.Offset(, -1) = "" Then
        Application.EnableEvents = False
        With Sheets("Administrator")
            If IsNumeric(Mid(Target.Offset(-1, -1), 3, 2)) Then _
            If CInt(Mid(Target.Offset(-1, -1), 3, 2)) <> Month(Date) Then .Range("A2") = 0
            Target.Offset(, -1) = Format(Date, "YYMM - ") & Format(.Range("A2"), "000")
            .Range("A2") = .Range("A2") + 1
        End With
    End If
End If
Fehler:
    Err.Clear
    Application.EnableEvents = True
End Sub
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

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • Cinderella
Antworten Top
#30
Hallo Ralf


Ich habe den Code eingestellt und es funktioniert=)
Vielen herzlichen Dank dir. Das ist superlieb.

Ich wünsche Dir noch ein schönes Wochenende.

MFG
Antworten Top


Gehe zu:


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