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

Auftragsformular in Excell

Discussion in 'Office-Programme' started by KIKO63505, Jan 3, 2008.

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

    KIKO63505 Byte

    Moin Beverly,
    Das Kalenderproblem habe ich vorerst gelöst. Diese Kalenderfunktion ist ein Mitbringsel von Access und das habe ich nicht. Geht nicht gibts nicht sagte ich mir und habe im Netz nach Lösungen gesucht. Ich habe dort lediglich eine ältere Version von Mscal.ocx (Calendercontroll 8.0) gefunden und diese mal getestet, Es hat zwar geklappt, aber diese Version soll Probleme mit Vista haben. In 2 Wochen werde ich meinen PC neu einrichten müssen, er geht zu Dell zurück wegen Probleme mit dem Board, bei imstallieren von Office werde ich mal Bentzerdefieniert auswählen und schauen was alles geht.

    Speichern mit nur einem Tabellenblatt hat geklappt.

    Das "Klickmich" Problem
    Den oben genannten Weg (A1:A zu B1:B) hatte ich schon vor der ersten Anfrage an Dich getestet, allerdings ohne Erfolg. Nachdem Du mir aber diesen Rat gegeben hast, habe ich das alles nochmals versucht, ohne Erfolg. Ich ging davon aus das Du Dich nicht geirrt hast und nach einer Lösung gesucht. Also eine neue Mappe erstellt und das Nötigste getan um das alles zu testen, voller Erfolg. Das Problem also liegt noch woanderst im Code, vermutlich bei der Abfrage vorher.......

    Private Sub Neuer_Auftrag_Click()
    '
    '
    'Zellen leeren und die Auftragsnummer um 1 erhöhen
    '
    'ActiveSheet.Unprotect "1"
    Dim A() As String, i As Long, Zelle As Range
    A = Split("A37", ",")
    For i = LBound(A) To UBound(A)
    For Each Zelle In Range(A(i)).Cells
    Zelle.MergeArea.ClearContents
    Next Zelle
    Next i
    With Sheets("Rechnung")
    Range("M1").Value = WorksheetFunction.Max(.Range("B1:B" & .Range("A65536").End(xlUp).Row).Value) + 1
    End With
    'ActiveSheet.Protect "1"
    End Sub
    ................ oder aber Im "Auftrag speichern
    Private Sub Auftrag_speichern_Click()

    Dim WS As Worksheet, WSRechnung As Worksheet, WB As Workbook
    Dim loLetzte As Long
    Dim boAction As Boolean
    Dim Pfad As String
    Dim strAbfrage As Variant
    Pfad = ThisWorkbook.Path & Application.PathSeparator & "" & Range("M1").Text & Range("P1").Text & "_AU" & ".xlsx"
    Pfad = Replace(Pfad, "/", "_")
    Set WS = ThisWorkbook.Worksheets("Auftrag")
    Set WSRechnung = ThisWorkbook.Worksheets("Rechnung")
    Application.ScreenUpdating = False
    With WSRechnung
    '.Unprotect "Passwort"
    loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
    For loZeile = 2 To loLetzte
    If .Cells(loZeile, 1) = WS.Range("M1") Then
    strAbfrage = MsgBox("Soll der vorhandene Datensatz überschrieben werden", vbYesNo)
    If strAbfrage = vbNo Then
    Exit Sub
    Else
    boAction = True
    Exit For
    End If
    End If
    Next loZeile
    If boAction = False Then
    WS.Range("M1") = .Cells(loLetzte, 1) + 1
    loZeile = loLetzte + 1
    End If
    mfg
    kiko
     
  2. Beverly

    Beverly Halbes Megabyte

    Hi,

    ich habe mich auch ein wenig im INet umgeschaut und folgendes ermittelt: das Kalender-Steuerelement gehört seit Version 2002 (XP) zu Excel, hat also nichts mehr mit Access zu tun. Bei Excel wird bei der Vollinstallation eine Art "Zusatzmodul" mit diesem Steuerelement und noch einigen anderen Dingen mit installiert. Versuche also auf alle Fälle eine Vollinstallation und installiere auch das SP1 (hier der Link dazu, den ich freundlicherweise von einem User in einem anderen Forum erhalten habe http://support.microsoft.com/kb/936982/de).

    Mir ist nicht ganz klar, was du mit der Klick-mich-Spalte erreichen willst. Wenn du mit einem Klick in eine Zelle (besser ist ein Doppelklick, weil sonst der Code ja ständig ausgelöst wird sobald eine Zelle angewählt wird) einen Datensatz in dein Auftragsformular übertragen willst, dann musst du den Code zum Übertragen ins Codemodul der betreffenden Tabelle (also "Rechnung") ins Doppelklick-Ereignis schreiben und auf die Spalte B beschränken und nicht in ein allgemeines Modul.
     
  3. KIKO63505

    KIKO63505 Byte

    Mahlzeit.
    ich habe alle neuen Updates von Microsoft auf meinem Rechner, aber danke für den Tipp.

    Mir ist nicht ganz klar, was du mit der Klick-mich-Spalte erreichen willst
    Der Code selbst wird via doppelklick ausgelöst, alles andere machte keinen Sinn.
    Klickmich Spalte ist ein Gedanke von mir gewesen, Hintergrund hierzu ist nunmal der Blattschutz, also ein ungewolltes oder auch gewolltes verändern oder löschen von Daten zu verhindern. Mit dieser Klickmichspalte erreiche ich, das bei einem gesperrten Blatt, Spalte A frei, der Code nur ausgelöst wird wenn auf A geklickt wird. Am Ende oder irgendwo in der Tabelle macht diese Spalte keinen Sinn, also bleibt nur Spalte A. Was nun mit dem jetzt benutzten Code möglich ist, sollte doch auch für andere Spalten möglich sein. Ein weiterer Grund diese Spalten zu verschieben ist ein neuer Gedankengang, der erst entstanden ist als ich die Mappe getestet habe, Spalte A könnte dem Doppelklick dienen, Spalte B könnte als Schnellzugriff auf die gespeicherten Mappen dienen, was liegt näher in Spalte B neben jede Auftragsnummer einen Link einzutragen der auf das gespeicherte Dokument hinweist.
    mfg
    Kiko
     
  4. Beverly

    Beverly Halbes Megabyte

    Hi,

    einen Doppelklick auf eine Zelle kannst du auch machen, wenn sie geschützt ist, du musst nur beim Blattschutz einstellen, dass geschützte Zellen ausgewählt werden dürfen. Dafür ist keine extra Spalte erforderlich, kann also einfach auf die Spalte mit den Auftragsnummern bezogen werden. Ebenso benötigst du keine extra Spalte, um mit einem Link die entsprechende Datei zu öffnen. Mit dem Doppelklick kannst du z.B. ein UserForm starten, in dem du auswählst, ob du die Daten in das Auftragsformular und/oder Stornoformular übernehmen möchtest oder die betreffende Arbeitsmappe öffnen. Oder du verwendest eine Ja/Nein AbfrageBox.

    Ich würde dir aber auf jeden Fall dringendst empfehlen, keine verbundenen Zellen zu verwenden, weil sie nur Ärger bereiten, wenn man mit VBA arbeitet - ich nehme an, dass das das Problem in deinem Code ist. Benutze stattdessen Textfelder, die du auf die Zeleln legst - sie lassen sich genau so gut (oder eigentlich wesentlich besser) mit VBA ansprechen.
     
  5. KIKO63505

    KIKO63505 Byte

    Hallo Beverly,
    Mit dem Tipp der gesperrten Zellen kann ich leben, ist einfach,wirkungsvoll und genügt den gestellten Ansprüchen.
    Mit dem Thema Userform sagst Du ein böses Wort, denn mit diesem Thema habe ich mich noch garnicht auseinandergesetzt. Mal reingeschnuppert habe ich da schon, jedoch weiss ich nichts damit anzufangen. Den Gedanke via Userform die Eingabemasken für die Datenerfassung oder Datenänderung hatte ich auch schon, aber ich möchte weder Deine Gedult/Gutmütigkeit noch die, der anderen freiwilligen Helfer überanspruchen. Du hast eigentlich schon mehr getan wie man erwarten dürfte.
    mfG
    kiko
     
  6. Beverly

    Beverly Halbes Megabyte

    Hi,

    Foren sind doch dazu da, dass Fragen gestellt werden und wer antwortet, tut das aus freien Stücken. :)

    Ich habe dir mal ein kleines Demonstrationsbeispiel für ein UserForm erstellt. Vielleicht hilft es dir als Anfang weiter. Dennoch würde ich empfehlen, dass du zum Thema UserForm einen neuen Thread eröffnest. Zum einen ist das eigentliche Thema diese Threads beendet und zum anderen würde niemand vermuten, dass es jetzt nicht mehr um das Eröffnungsthema sondern um etwas völlig anderes geht.
     

    Attached Files:

  7. Hascheff

    Hascheff Moderator

    Hallo,
    ich muss mich mal kurz einmischen.
    Beverly als Profi denkt, es ist selbstverständlich, aber als Anfänger muss man erst mal drauf kommen: Im VBA-Editor kannst du bei einer Userform umschalten zwischen Ansicht - Code und Ansicht - Objekt.
    Ansonsten muss ich Beverly beipflichten. Mach lieber einen neuen Thread auf.
    Und: Userform ist nicht schwerer als VBA-Code.
     
  8. KIKO63505

    KIKO63505 Byte

    Auch Hi,

    sicher ist das eigentliche Thema abgehandelt und das ist auch gut so. Ich muss allerdings sagen das ich dennoch nicht sehr viel verstanden habe. Was ich jetzt kann und das auch nur im engen Spielraum, sind vorhandene Codes in anderen Mappen zu verwenden, vielleicht mit der einen oder anderen Abänderung.
    Ein neues Thema im Forum wäre zu überdenken....
    ...schön wäre es wenn sich eine kleine Gruppe entschliesen könnte, unter fachgerechter Anleitung, ein gemeinsames Projekt von Anfang an zu gestalten. Hierzu wäre eine kleine Gruppe, ein Fachmann und ein Thema nötig.

    Dein Userformbeispiel habe ich mal geöffnet und mir auch den Code angeschaut, ja so könnte man es machen, nein ich verstehe es nicht. Vielleicht ist mein Kopf zu viereckig oder so, jedenfalls kann ich diese Userform nur starten wenn ich im Editor auf Ausführen klicke... wie auch immer.
    Ich möchte damit nur sagen das ein neues Thema wirklich Schritt für Schritt und mit Erklärungen sein müsste. Ich gehe hierbei von meiner Unwissenheit aus, die auf viele User ebenfalls zutrifft. Wieviel Arbeit sowas ist kenne ich noch aus der Zeit von Win98, da war ich in der Lage anderen Usern zu helfen, auch im Forum der PC Welt.
    liebe Grüße
    kiko
     
Thread Status:
Not open for further replies.

Share This Page