1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel: Laufzeitfehler '438'

Discussion in 'Office-Programme' started by Doctore IV, Jan 29, 2007.

Thread Status:
Not open for further replies.
  1. Urs2

    Urs2 Megabyte

    @Hascheff

    Bis zum letzten Tag wussten wir die Verwendung des Wertes Check20000 ja nicht > Checkbox! Bei einem anderen VB musste ich aber jetzt an das Problem von doctore denken.

    Es gibt zwei Arten von Checkbox-Steuerelementen in Excel:
    - Formular-Steuerelement, was wir jetzt angenommen hatten, für unseren Code mit benannten Zellen
    - ActiveX-Steuerelemente, mit Direktzugriff aus VBA

    Bei ActiveX funktioniert der alte Code von doctore! Er ist natürlich sehr umständlich und vermutlich ist das ActiveX-Element in Excel falsch benannt.

    Es braucht darüber "Application.ControlCharacters = True" (bin nicht sicher, vielleicht unnötig)
    und dann als Ersatz für jedes If...End If nur eine Zeile, z.B.:

    Application.ActiveSheet.Check230 = chb230kv.Value

    Bei mir funktionierts. Aber bei Ihm?


    @doctore
    Bevor Du irgendwas änderst, prüf folgendes:

    In Excel, rechtsclick auf die Box mit dem 230-Volt-Kabel dann erscheinen Befehle...

    - wenn der Befehl "Makro zuweisen" dabei ist, ist es ein Formular-Element und was ich hier schreibe ist nicht anwendbar. Mach es so wie es in #39 und #40 steht.

    - wenn aber der Befehl "Eigenschaften" dabei ist, ist es ein ActiveX-Element. Wenn gar nichts erscheint auch!

    Wenn nichts erscheint, dann: Menü Ansicht > Symbolleisten > Steuerelement-Toolbox. In der Box zuoberst links auf Entwurfsmodus clicken. Jetzt müssen die Befehle bei rechtsclick auf 230-Volt erscheinen.

    Wähl dort Eigenschaften und eine Box wie in VB erscheint. Zuoberst muss der Name sein: Check230. Wenn nicht, eintragen!

    Jetzt müsste es klappen, wenn du im Formular bei 230V den Haken setzt.

    Berichte wieder

    Gruss Urs
     
  2. Hascheff

    Hascheff Moderator

    @ urs2: Respekt! Aber das
    ist nicht sicher.
    Wie war das gleich? Wurde ActiveX nicht mal mit einem Internet-Explorer geliefert? Fragen wir doch mal, welcher installiert ist. Doctore IV will ja am 5. März aus dem urlaub kommen, da werden wir ja nicht allzu lang auf die Folter gespannt.
     
  3. Doctore IV

    Doctore IV Byte

    So, da bin ich wieder!
    Wir arbeiten hier mit dem Internet Explorer Version 6.0.29

    In der Zeit in der ich nicht in der Firma war, hat mein Chef jemanden da gehabt, der ein wenig Ahnung von Excel hatte. Der hat die Liste durchgeschaut und gesagt, dass es alles mit dem eingabe Feld zusammen hängt das der Fehler entsteht. Ihr kennt das ja, ein Makroaufgaben Feld. Ihr seht auf meinem Screenshot dieses graue Kästchen "Ausfüllen". Wenn man darauf klickt öffnet sich ein Abfragefeld indem man wie ich glaube ich schonmal erwähnt habe verschiedene Aufgabenbereiche ausfüllen kann.
    Bevor ich eure Methoden für dich ich euch auch sehr dankbar bin probiere versuche ich die methode, da sie angeblich all unsere probleme lösen kann!

    Allerdings: Wie komme ich in die Entwurfsansicht der Abfrage? Irgendwelche Ideen? Würde es helfen wenn ihr einen Screen der Abfrage habt?
    Mein Vorgänger hat das alles erstellt, wenn alle Stricke reisen und wir nicht weiterkommen muss ich ihn hier her bestellen...

    Zu den Namen der einzelnen Checkboxfelder, in der Entwurfsansicht habe ich gesehen, dass sie einfach alle den Namen Checkbox tragen...ob jetzt z.B. Checkbox1, Checkbox2, CheckboxSuchschlitze etc...

    Also dann, nochmal danke!

    Gruß
    Doctore IV
     
  4. Urs2

    Urs2 Megabyte

    @doctore > Musst Du die Urlaube der letzten 10 Jahre abarbeiten?

    Auf Deinem Screenshoot sehe ich die Zelle H10, vermutlich die von Dir mit Check20000 benannte Zelle. Ich sehe kein Kästchen "Ausfüllen" > wahrscheinlich im Bereich der Interna, die nicht zu sehen ist.

    Ueber die Entwursansicht der Abfrage brauchst Du Dir keine Gedanken zu machen > Du warst dort immer drin: Es ist der Code im Visual Basic Editor!

    Du hast also offenbar ActiveX-Checkboxen im Excelblatt!
    Die Namen Checkbox1, ...2 usw entstehen automatisch beim Einfügen der Box ins Blatt > dieser Name muss anschliessend an den Code in VB angepasst werden.
    Der Name "CheckboxSuchschlitze" wurde so geändert, er entspricht aber noch nicht dem Code, "CheckSuchschlitze" wäre richtig. Allerdings ist dein Makro ja gar nie soweit gekommen, es wurde vorher schon blockiert.

    Mein Auftrag:
    In Deinem Code ist die Check20000-Box ja schon geändert und schreibt 0/1 in Zelle H10.
    Also mach wie oben in #41 beschrieben, aber nimm die nächste Zelle.
    In Excel: Die Checkbox mit dem 230V-Kabel in den Entwurfsmodus setzen und direkt im Eigenschaftenfenster den Namen Check230 ändern/eintippen. Wenn ich alles richtig verstanden habe, so steht dort jetzt Checkbox2?

    Wenn Du das Ding jetzt laufen lässt, mit Haken bei 230V im Eingabeform, erscheint dann dieser Haken in Excel?
    Bei der nächsten Box dürfte dann wieder der Laufzeitfehler erscheinen...

    Berichte und Gruss Urs
     
  5. Urs2

    Urs2 Megabyte

    @doctore > Korrektur/Verbesserung meines Textes im obigen Beitrag:
    > Wenn ich alles richtig verstanden habe, stand vorher dort Checkbox2 (oder halt sonst was).
    > Diesen alten Eintrag musst Du ändern auf Check230.

    Gruss Urs
     
  6. Doctore IV

    Doctore IV Byte

    urs, du hattest vollkommen recht, es hieß vorher Checkbox2, jetzt wo ich es Check230 genannt habe und dann wie du bereits vorher gesagt hast in der Angabe eingebe erscheint der passende tick!

    es erscheint allerdings immernoch die fehlermeldung mit dem debuggen, heißt das man möglicherweise jedes einzelne kästchen dementsprechend verändern müsste um eine verbesserung zu erzielen!

    Wir sind uns einig das es bei dem Fehler nur einer von den Checkboxen sein kann, oder?

    Braucht ihr noch einen Screen von irgendwas um besser arbeitenzu können?

    Zu deiner ersten Frage, ich muss keine Urlaube abarbeiten, ich habe einen etwas ungewöhnlichen Wochentakt bei den Arbeitszeiten *g*

    Danke!

    Gruß
    Doctore IV
     
  7. Doctore IV

    Doctore IV Byte

    Nach meiner momentanen Bearbeitung der Codedarstellung habe ich erkannt, dass es einige der Felder gibt, die völlig falsch benannt sind. In der theorie habe ich nun die nötige Umbenennung durchgearbeitet und bevor ich es wirklich versuche möchte ich von euch wisen, ob ihr auch der Meinung seid, dass es möglicherweise so funktionieren könnte:

    Als erstes sollte der Code den ich einige Schritte zuvor bei 20000 verändert habe wieder in seine Ursprungsfunktion zurückgebracht werden, denn die Ursprungscodes sind scheinbar für die Checkbox von nöten. Unsere Frage damals, warum da 20000kv steht ist in meiner Spekulation eine andere Bezeichnung für KabelVolt und nicht für kV im ursprünglichen Sinne.
    Danach geht mein Gedankengang wie folg:

    Check230 = 230/400-Volt Kabel (Passende Umbenennungen haben funktioniert)
    CheckSB=Strapenlampen-Kabel
    CheckInfo=Informationskabel
    CheckKein = keine Kabel vorhanden
    CheckSuschschlitze = Suchschlitze gefordert
    CheckAchtung=Achtung 20kV-Kabel im Einweisungsbereich
    CheckHand=HAndschachtung in Kabelnähe
    CheckKabeltrasse=Bei Näherung an die 20kV Kabeltrasse......

    Als Erklärung weshalb trotz einiger richtig benannter Zellen keine Funktion zu stande kam, erkläre ich mir folgendermaßen:
    In der CodeAnsicht der Subs ist zu erkennen, dass es eine gewisse Reihenfolge gibt: 20000,230,SB etc. wenn ich die Zellen nach der richtigen Reihenfolge mit dem richtigen Namen benenne wandert der Gelbebalken in der Codeansicht immer auf die nächste Zeile, z.B. von 230 auf SB, von SB auf Info etc. ab da funktioniert die entsprechende Checkbox wie ich annehme.

    Wenn ich das richtig Sehe müsste der Fehler, wenn ich alle diese Punkte behebe und alle Zellen neu benenne behoben werden, nichtwahr?

    Sagt mir bitte mal eure Meinung zu meiner These!

    Gruß
    Doctore IV
     
  8. Urs2

    Urs2 Megabyte

    @doctore > Dein Vorgänger hatte vor seiner Flucht offensichtlich nicht mehr die Zeit, die Namen in den ActiveX-Checkboxen einzutragen...

    Ferndiagnosen sind immer speziell, schmerzende Füsse werden mit Kreislaufmitteln, Venentropfen, Fusspilzsalben usw behandelt und dann reicht der Kauf grösserer Schuhe.

    So wie Du es schreibst muss es gehen, etwa so >

    Mach entweder 1.1. oder 1.2. und dann den Rest:

    1.1. > Mach alle vorgenommenen Aenderungen rückgängig, im VB (auskommentierte Zeilen wieder aktivieren, die 2 eingefügten Zeilen entfernen) und im Excelblatt (benannte Zelle löschen).
    oder
    1.2. > Oeffne die ursprüngliche Datei xyz.xls, an der noch nichts verändert wurde. Speichere sie ab unter xyz - versuch2.xls.

    2. Oeffne den Visual Basic Editor mit dem Code bei den 20000kv.

    3. Im Excel-Blatt, Bearbeitungsmodus für Steuerelemente aktiviert, Rechtsclick auf Kästchen 20000-Volt-Kabel > Eigenschaften > Aendere dort den Namen auf Check20000. Das heisst, genau auf den Namen wie er im VB-Editor steht, in der Zeile: Application.ActiveSheet.Check20000 = 0.

    4. Nun weiter so, mit allen Kästchen im Excel-Blatt, mit dem entsprechenden Namen aus dem VB-Editor.
    > Arbeite mit Kopieren/Einfügen dieses Namens, sonst ist es fehlerträchtig. Ein einziger Buchstabe zu viel, zu wenig oder falsch und die Anwendung spuckt wieder einen Laufzeitfehler aus...

    Dann Holz anfassen, ein Stossgebet und... funktionierts?

    Gruss Urs
     
  9. Doctore IV

    Doctore IV Byte

    Ja, Urs, es funktioniert! Es war nur eine Testversion, aber in der Funkitonierts und sofern Gott will wird es auch weiterhin funktionieren wenn ich mich an meine eigene Version mache die für alle in der Firma funktionieren muss!

    Alles ist so gelaufen wie wir beide gedacht haben und endlich kann ich sogar das automatische Ausfüllen samt Drucken verwenden!

    Falls etwas nicht klappt, werde ich mich nochmal melden!

    Aber soweit möchte ich mich bei euch allen Bedanken, vorallem bei Urs2 und Hascheff! Ich danke euch!

    Auf Bald, allerdings vl dann in Zusammenarbeit bei dem Problem eines anderen statt bei einem meiner Probleme!

    Ich wünsche euch was!
    Melde mich vl nochmal hier in dem Thema wenn alles dann geklappt hat!


    Die besten Grüße
    Doctore IV:danke:
     
  10. Urs2

    Urs2 Megabyte

    @doctore > Mein letzter Auftrag und die Erfolgsmeldung hatten sich gekreuzt > auch recht, das Resultat zählt!

    Zum Dank kann Dein Chef der örtlichen Kirchgemeinde ja einen Sack voll Gratisstrom spenden > aber nicht 20 Megavolt, das Ewige Licht braucht nicht so viel.

    Gruss Urs
     
  11. Hascheff

    Hascheff Moderator

    Leider konnte ich gestern und heute nicht mehr aktiv eingreifen, ich hatte mich selbst aus dem Forum ausgesperrt.
    Ich wollte noch sagen, du musst beim Testen aufpassen, stand da nicht in einer Sub der Befehl MailVersenden?
    Oder hat er sich die Zeit genommen, Verwirrung zu stiften?

    Na dann: Gut Strom!
     
  12. Urs2

    Urs2 Megabyte

    Ich halte fest: DU hattest das geschrieben.
    Das für den Urlaub reservierte Geld verspiele ich nicht im Gerichtssaal! Obwohl... dass man beim Erfinder nicht nachfragen wollte, war ja nicht zu übersehen.

    Vielleicht sollte man vorsorglich doch schon alle Badewannen und Eimer mit Strom füllen... man weiss ja nie...

    Gruss Urs
     
  13. Doctore IV

    Doctore IV Byte

    Kein Misstrauen an den freundlichen Stromlieferer von nebenan bitte *g*
    Ihr müsst nicht jetzt alles und jeden mit Strom füllen, ich bin ja nicht für euren wohnbereich zuständig *g*

    Ich denke Excel hat das alleine umbenannt, da ich die ganze Zeit nichts mit der Tabelle zu tun hatte, weil sie ja völlig einwandfrei gelaufen ist, habe ich auch mir nicht die mühe gemacht etwas zu ändern.

    Das mit der SubMail habe ich grade auch entdeckt, aber ich mache mir da keine großen Sorgen, vl hat es was damit zu tun das man es per FAXmaker, also mit nem Mail-Fax programm verschicken kann oder das es irgendwelche sonstige benachrichtigungen gibt. egal! =)

    Ich hoffe das das jetzt alles vollkommen klappt, dann muss ich euch nicht mehr mit noch mehr problemen nerven!


    Nochmal dank!

    Gruß
    Doctore IV
     
  14. Urs2

    Urs2 Megabyte

    @doctore > Nach der schweren Arbeit muss man blödelnd dekomprimieren...

    Mach Dir keine Gedanken über das Sub Mail, und wenn schon, dann nur positive.

    Die Subs cmdMail_Click und cmdDrucken_Click sind identisch, ausser dass cmdDrucken das Blatt gleich druckt. Für mich würde ich cmdMail verwenden.

    cmdDrucken:
    Vorteil = Ungeübte Anwender müssen sich nicht mit dem Drucken in Excel beschäftigen.
    Nachteil = Bei einem Tippfehler im Eingabeformular hat der Drucker für den Papierkorb gearbeitet.

    - cmdMail:
    Vorteil = Ausser das ausgefüllte Formular in Excel anzeigen, tut das Makro gar nichts. Dort kann man überprüfen und direkt Korrekturen anbringen. Anschliessend drucken oder, wie vermutlich geplant, das Blatt als PDF-Anhang (oder sonstwie) per Email versenden.
    Nachteil = Ungeübte Anwender haben mehr Möglichkeiten Fehler zu machen...

    Die Beschriftung der Knöpfe im Form verständlicher zu machen ist kein Problem:
    Im VB-Editor, wenn er das Formular anzeigt, einmal auf den Button clicken > jetzt kann die Beschriftung geändert werden.

    Für weitere Erklärungen einfach ein Bezeichnungsfeld (Werkzeugsammlung anzeigen > auswählen) einfügen und dort hineinschreiben was zu beachten ist.

    Gruss Urs
     
  15. Doctore IV

    Doctore IV Byte

    Danke für die Auskunft Urs =)

    Ich habe noch einige andere kleine Fehler auf dem Excel Datenblatt behoben, was mich doch fast vermuten lässt die Tabelle hat nochnie 100% gearbeitet, aber wer weiß...

    Jetzt ist die Tabelle auf den Sever gestellt und alles funktioniert bestens!

    Wenn mir jetzt nichts mehr einen Dämpfer in meiner Euphorie verpasst, dann bin ich froh!

    Gruß
    Doctore IV
     
  16. Hascheff

    Hascheff Moderator

    Kann mir mal einer erklären, wozu das Formular gut sein soll? Warum klickt man nicht gleich die Checkboxen auf dem Tabellenblatt an, wenn man das Tabellenblatt ausfüllen will?
    Es sei denn, man will vermeiden, das im Tabellenblatt jemand an der falschen Stelle irgendeine Bemerkung einfügt. Der Nutzen solcher Makros besteht doch zum Beispiel in Plausibilitätskontrollen, aber ich kann mich nicht entsinnen, eine gesehen zu haben. Naja, es wird kontrolliert, ob ein Ortsname angegeben ist, und man kann da keinen Schreibfehler machen.

    Wahrscheinlich wurde bisher immer gleich ins Tabellenblatt geschrieben,
     
  17. Urs2

    Urs2 Megabyte

    Wird man kaum können. Er ist weg.
    Diese Grundsatzfrage hatte ich in #31 schon rhetorisch gestellt.

    Entweder hatte er zufällig mit VB begonnen und sich dann Scheuklappen aufgesetzt, oder das VB ist nur ein laufendes Projekt wo noch zusätzliche Aktionen eingefügt werden sollten.

    - Prüfung der Eingaben auf Plausibilität
    - Nachführen von externen Dateien/Listen
    - Adressen schreiben
    - Uebergabe des Resultats an ein Mailprogramm
    - Informationen verteilen
    ... für ungeübte Benutzer ist die Eingabe ins Form immer sicherer > die Eingabefehler sind leicht abzufangen.

    Gruss Urs
     
  18. Doctore IV

    Doctore IV Byte

    Die direkte eingabe und das suchen nach den jeweiligen Feldern für die Namen etc. wäre denke ich bei den vielen Kunden die wir haben ein wenig umständlich. Das direkte eingeben aller Daten in die Tabelle über unser Abfragefenster ermöglicht das schnelle eintragen aller daten.

    du hast natürlich recht, hascheff, man kann es auch direkt einfügen, so wurde es während dem fehler auch gemacht, aber so ist das einfacher.

    zu deiner frage für was das formular gut ist kann ich sagen, es geht um die einlegung der Kabel, das ganze Dokument heißt Kabelauskunft, hier werden unsere neuen Kunden eingetragen und die Service Leistungen für jeden Kunden individuellanfallen durch die Checkboxen ergänzt.

    Gruß
    Doctore IV
     
  19. Hascheff

    Hascheff Moderator

    So habe ich die Frage nicht gemeint. Eher so:
     
  20. Doctore IV

    Doctore IV Byte

    Nagut, deine Antwort hast du scheinbar trotzdem erhalten, ob nun an der richtigen Stelle oder nicht...ist ja dann alles gut!

    Gruß
    Doctore IV
     
Thread Status:
Not open for further replies.

Share This Page