Anzeige
Archiv - Navigation
1920to1924
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

Fehler im Code

Fehler im Code
03.03.2023 14:06:41
Ralf
Hallo alle zusammen,
Ich habe mich erstmalig selbst an einen Code probiert und das Ergebnis war, sagen wir mal so "grrrrrrr" nicht ganz wie ich dachte.
Ich wollte folgende Funktion haben. Wenn ich in der Kalkulation!C20 etwas eingebe, nur dann soll das Datenblatt!R1 und der Terminvordruck!R1 aktualiesiert werden und das Logo wechseln.
Wie gesagt hat nicht geklappt.
Kann vielleicht bitte jemand den Code berichtigen ?
https://www.herber.de/bbs/user/158106.xlsm
Gruß
Ralf

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler im Code
03.03.2023 20:47:34
Yal
Hallo Ralf,
fehlt unter den Begriff "ich habe ein Problem mit einem Nadel. Hier mein Heuhaufen."
Sorry, aber in diesem Zustand wird es nichts.
Schönes Wochenende trotzdem.
VG
Yal
AW: Fehler im Code
03.03.2023 21:15:13
Ralf
Was für ein Kommentar !!!!
Ich habe doch betont, das dass mein erster Code ist.
Gruß
Ralf
AW: Fehler im Code
03.03.2023 22:05:56
Yal
Hallo Ralf,
entschuldigung, Ralf, es war nicht meine Absicht, Dich zu bruskieren oder beleidigen, sondern zu erklären, warum Du keine Antwort bekommst.
Denk daran: wenn Du es nicht schaffst, jemand für dein Problem zu interessieren, bleibst Du auf eine Frage ohne Antwort.
Für dein ersten Code hast Du ganz schön viele Zeilen eingesammelt. Der Hinweis "es handelt sich um die Funktion Worksheet_Change von Blatt Kalkulation" wäre hilfreich gewesen. Eine VBA-Projekt lässt sich nicht zwangsläufig an der Stelle öffnen, wo Du das letzte mal etwas gesehen hast.
Verwechsle nicht Quantität und Qualität. Je kürzer dein Code, je weniger Variablen, desto besser. Geb dich nicht zufrieden mit etwas, was funktioniert, sondern nur mit das, was Du selber verstehst und eigenständig wieder implementieren kannst. Kopie-paste aus Internet ist nicht falsch, müsste aber geherrscht sein.
Dein Code könnte so aussehen. Ich habe einige Sachen drin gelassen, die eigentlich auch weg sein sollte. Achte auf ein sauberes Einrücken. Nur so entdeckst Du sofort die falschen If-Then-Else-End If.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Kunu '?
    
    'On Error GoTo Fehler
Const APPNAME = "Worksheet_Change"
Const SpK = 2 'Spalte der Kundennummer 'NICHT VERWENDETE KONSTANTE
Const SpR = 35 'Spalte für Rüstung 'auch nicht verw
Const cZelle_Hausebene = "$C$20"
'Hier ist das Codepane von "Kalkulation". "Kalkulation" ist hier "me"
    Set TB = Sheets("Kalkulation")
'Beweis:
    MsgBox "Es wurde eine Zelle in """ & Me.Name & """ geändert!" & vbLf & "und zwar " & Target.Address
'MsgBox Target.Address
'NUR, wenn in B3 eine Änderung erfolgt, werden in der Vorlage die Pflichtfelder wieder geleert
   
    Application.EnableEvents = False 'wenn hier Änderung auf das Blatt Kalkulation gemacht wird, wird "Worksheet_Change" gestartet (zweite Ebene), bis zum Abstürzt
    
    If Target.Address = "$B$3" Then
        If Sheets("Datenblatt").ProtectContents Then
            Sheets("Datenblatt").Range("R1").Formula = "=Kundendatenbank!AG1"
            Sheets("Terminvorlage").Range("R1").Formula = "=Kundendatenbank!AG1"
            Sheets("Datenblatt").Unprotect "tresor1958"
            X = True
        End If
    End If
'nur bei Änderungen in diesen Zellen auslösen
    If Target.Address = cZelle_Hausebene Then
        Kunu = Range(cZelle_Hausebene)
        Sheets("Datenblatt").Range("R1").Formula = "=Kundendatenbank!AG1"
        Sheets("Terminvorlage").Range("R1").Formula = "=Kundendatenbank!AG1"
        MsgBox "Du hast die Zelle " & Target.Parent.Name & "!" & Target.Address & " geändert."
    End If
                 
'reset
    Range(cZelle_Hausebene).Formula = ""
    Application.EnableEvents = True
    Exit Sub
'*** Fehlerbehandlung
Fehler:
    If Err.Number > 0 Then
        MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf & "Fehlernummer: " & Err.Number & vbLf & Err.Description
        Err.Clear
    End If
End Sub
Wie gesagt, das ist dein Code und DU musst wissen, was da passiert, nicht irgendjemand den Du im Internet mit "kannste mal nachschauen" anspricht.
VG
Yal
Anzeige
AW: Fehler im Code
04.03.2023 08:15:16
Ralf
Hallo YAL,
danke für deine Hilfe, aber leider funktioniert er nicht.
1. die MsgBox sind unnötig, wenn ich bei Kunden dann den neuen Kunden aufrufe z. B. 2. kommen lauter Meldungen.
2. weder im Datenblatt noch in der Terminvorlage werden die Logos automatisch geändert.
3. in der Kalkulation wird Zelle C20 geleert ohne das der dort befindliche Inhalt auf das Datenblatt übertragen wird.
4. Das leeren der Zellen im Datenblatt und in der Terminvorlage erfolgen bereits mittels Makros, also wird das in deinen Code nicht benötigt.
Wenn du in Kalkulation keinen Code eingibst und das Blatt mit "tresor1958" schützt, und im Code von Kunden habe ich 2 Zeilen Sheets mit " NEU" wenn du diese aktivierst: Funktioniert die ganz Kiste eigentlich. NUR wenn ich in der Zelle C14 ein neues Datum eintrage, dann erscheint in Datenblatt die Frage nach dem Passwort.
Wäre soweit in Ordnung, ABER die Abfrage muss bereits erfolgen, wenn in C4 eine neue Kd.-Nr. erscheint. Dann braucht man auch nicht den Code in der Kalkulation.
Fazit:
Mit der neuen Kd.-Nr. muss im Datenblatt resp. Terminvorlage die Abfrage nach dem Passwort erfolgen. Dann würde es laufen. Also wird nur zur falschen Zeit die Abfrage angefordert.
Beide Tabellenblätter haben bereits auch ein Makro.
Gruß
Ralf
Anzeige
AW: Fehler im Code
04.03.2023 08:41:08
Ralf
Hallo Yal,
ich habe den Code in Kalkulation rausgenommen und die Sheets im Code in Kunden aktiviert.
Also wenn bei Kunden Zelle C4 sich die Kd.-Nr. ändert wird im Datenblatt nach dem Passwort gefragt. Soweit oK. aber leider wird das Passwort auch bei Datum Zelle C14 abgefragt und das ist FALSCH.
https://www.herber.de/bbs/user/158113.xlsm
Gruß
Ralf
Hört sich wie eine Bestellung
04.03.2023 15:31:44
Yal
Hallo Ralf,
Du hast von meiner Anmerkungen, dass Du beim Helfer die Lust, dir zu helfen wecken soll und dass Du dein Code selber in der Hand nehmen muss, wenig verstanden.
Ich unterstütze gern hier und da auf gezielten Fragen, werde aber nicht für dich etwas vollständig erledigen.
Ich stellte für dich den Haken "Frage noch offen" an und wünsche dir viel Erfolg.
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige