Office: (Office 2016) Code funktioniert nach Speichern nicht mehr

Helfe beim Thema Code funktioniert nach Speichern nicht mehr in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe das Problem bereits in http://www.office-hilfe.com/support/showthread.php/21908-Userform-mit-mehreren-Listboxen gepostet,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Lutz Fricke, 4. April 2017.

  1. Lutz Fricke Erfahrener User

    Code funktioniert nach Speichern nicht mehr


    Hallo zusammen,

    ich habe das Problem bereits in
    http://www.office-hilfe.com/support/showthread.php/21908-Userform-mit-mehreren-Listboxen
    gepostet, möchte aber der Übersichtlichkeit hier nochmal mein Problem kund tun.

    - Ich kopiere ein Formular inkl. Code in meinen Code. Es funktioniert.
    - Ich passedie den Code auf meine Original-Datei an. Es funktioniert.
    - Ich speichere die Datei. Und es funktioniert nicht mehr.

    Gestern hat geholfen, dass ich die Datei unter neuem Namen abspeichere. Und es hat funktioniert. Heute habe ich auch hier das Problem.

    Gibt es dafür irgendeine Erklärung?
    Vielleicht hat ja jemand eine Idee.

    Gruß,
    Lutz
     
    Lutz Fricke, 4. April 2017
    #1
  2. silex1
    silex1 Super-Moderator
    Hallo,

    dies wird man Dir nur beantworten können, wenn man den Code hat oder eine Bsp.-Datei! ;-)
     
    silex1, 5. April 2017
    #2
  3. Lutz Fricke Erfahrener User
    Hallo Silex,

    Du hast ja rechtCode funktioniert nach Speichern nicht mehr :rolleyes:.
    Eine Beispieldatei ist im verlinkten Thread. Sie ist von Anton und funktioniert perfekt.

    Ich habe jetzt den Code angepasst auf meine Originaldatei:
    Code:
    Private Sub UserForm_Initialize()
    
      Dim StdZeile As Long, LstZeile As Long, Erfolg As Boolean
      Dim Marker1 As Long
      
      Erfolg = False
      
      Mat_Nr.Caption = ProcessOrders(2)(Zeile, 1)
      Mat_Bez.Caption = ProcessOrders(3)(Zeile, 1)
      KlassAkt.Caption = Liste(Daten, 3)
      SVAkt.Caption = ProcessOrders(1)(Zeile, 1)
      
      Marker1 = ListBox_Füllen(Me!ListBoxKlass, "", 2)  '<-- Rufzeichen nicht entfernen - sonst Fehler
      
      With Me.ListBoxKlass
          .Width = 120!
          If Marker1 > 0 Then
            .Selected(Marker1) = True    '<-- Click-Ereignis für "ListBoxKlass" auf Listeneintrag "Test8"
            If Marker1 > 2 Then
                .TopIndex = Marker1 - 3
            End If
        End If
      End With 'ListBoxKlass
      
    ' Die folgende "ListBox_füllen"-Zeile wird nicht benötigt (deshalb auskommentiert!),
    '     weil durch die obige Zeile "Me.ListBoxKlass.Selected(Marker1)=True" ein Click-Ereignis für das
    '     ListBoxKlass-Objekt ausgelöst wird: dabei zeigt "Marker1" genau auf den Listeneintrag "Test8",
    '     sodass die "ListBoxSV" genau für diesen Wert befüllt wird:
    ' ListBox_Füllen Me!ListBoxSV, "Test8", 1  'Liste mit passenden Werten füllen
      
     'Die Listbox-Breite muss größer sein als die Breite aller Listboxspalten:
      With Me.ListBoxSV
    '      .Width = ListeSummieren(ListBoxSV.ColumnWidths) + 5
          .Height = ListBoxKlass.Height
      End With
    
    End Sub
    Code:
    '
    'Summiert die semikolon-getrennte "Liste$" von Werten auf,
    'wobei je Wert eine durch 1 Leerzeichen getrennte Einheitenbezeichnung entfernt wird.
    '1) Parameter "Liste$" hat zB. folgenden Aufbau:  "10,3 Pt;17,45 Pt;14,333 Pt"
    '2) Rückgabewert "ListeSummieren" beträgt dann:   42,083!
    '
    Private Function ListeSummieren(Liste$) As Single
      Dim Elem As Variant
      Dim Su!
      Su! = 0!
      For Each Elem In Split(Liste$, ";")
          Su! = Su! + CSng(Split(Elem, " ")(0))
      Next Elem
      ListeSummieren = Su!
    End Function
    Code:
    '
    'Behandeln des Click-Ereignis für "ListBoxKlass":
    'Dadurch wird "ListBoxSV" für den ausgewählten/angeklickten Eintrag von "ListBoxKlass" mit Werten befüllt
    '
    Private Sub ListBoxKlass_Click()
      With Me
        ListBox_Füllen Ctrl:=!ListBoxSV, Filter:=.ListBoxKlass.Text, Spalte:=1
      End With
    End Sub
    Code:
    '
    'Mit dieser Funktion kann sowohl "ListBoxKlass" als auch "ListBoxSV" befüllt werden.
    'Der Rückgabewert ist entweder 0 oder er enthält die Nummer des Listeneintrags "Test8".
    '
    Private Function ListBox_Füllen(Ctrl As Control, Filter As String, Spalte As Integer) As Long
      Dim StdZeile As Long, LstZeile As Long
      Dim Erfolg As Boolean, NoFilter As Boolean
      
      Erfolg = False
      NoFilter = Len(Filter) = 0
      ListBox_Füllen = 0
      With Ctrl
          .List = Array()
          For StdZeile = 1 To AnzahlStandards
              If (Standard(StdZeile, 2) = Filter) Or NoFilter Then 'Filtern nach 2.Spalte
                  For LstZeile = 0 To .ListCount - 1               'Testen, ob in "List" enthalten
                      If .List(LstZeile) = Standard(StdZeile, Spalte) Then
                          Erfolg = True
                          Exit For
                      End If
                  Next LstZeile
                  If Erfolg Then
                      Erfolg = False                          'Bereits in "List"
                  Else
                      .AddItem Standard(StdZeile, Spalte)     'Noch nicht in "List"
                      If Standard(StdZeile, 2) = Liste(Daten, 3) Then
                         ListBox_Füllen = .ListCount - 1      'Rückgabewert, falls "Test8"
                      End If
                  End If
              End If
          Next StdZeile
      End With 'LB
    End Function
    Jetzt passiert im Detail folgendes:
    Manchmal funktioniert der Code einwandfrei. Ich bekomme eine erste Listbox mit allen Werten aus dem Datenfeld "Standard" (Spalte2) ohne Doppelungen, der Wert Liste(Daten, 3) ist markiert und die zweite Listbox ist mit den Werten aus dem Datenfeld "Standard" (Spalte1) gefiltert nach Liste(Daten, 3) und ohne Doppelungen gefüllt.
    Manchmal (und da erkenne ich keine Logik) bekomme ich die erste Listbox mit allen Werten aus dem Datenfeld "Standard" (Spalte2) ohne Doppelungen und der Wert Liste(Daten, 3) ist markiert. In der zweiten Listbox stehen allerdings ALLE Werte aus dem Datenfeld "Standard" (Spalte1). Sobald ich einmal einen anderen Wert in der ersten Listbox anklicke funktioniert's einwandfrei. Ich rufe das Userform im Laufe meines Codes mehrere Male auf, bei allen weiteren Aufrufen funktioniert's.
    Im Falle des falschen Ablaufs wird der Wert Liste(Daten, 3) in der ersten Listbox markiert, aber er wird nicht als Me.ListBoxKlass.Text an den zweiten Durchlauf von ListBox_Füllen übergeben. Außerdem wird der Vergleich Ctrl.List(LstZeile) = Standard(StdZeile, Spalte) ständig als falsch interpretiert. Hier ist mir aufgefallen, dass Ctrl.List(LstZeile) scheinbar ein String ist ("4") und Standard(StdZeile, Spalte) eine Zahl (4). An diesem Unterschied stört sich der Code beim korrekten Ablauf aber auch nicht.

    Noch eine Merkwürdigkeit. Ich habe am Dienstag den Code gespeichert. Er hat nicht funktioniert. Heute früh öffne ich den gespeicherten Code und er funktioniert Code funktioniert nach Speichern nicht mehr :confused:.

    Ich hoffe irgendjemand kann mir erklären, was da passiert und was ich dagegen tun kann.

    Vielen Dank,
    Lutz
     
    Lutz Fricke, 6. April 2017
    #3
  4. Lutz Fricke Erfahrener User

    Code funktioniert nach Speichern nicht mehr

    Lutz Fricke, 19. April 2017
    #4
  5. Lutz Fricke Erfahrener User
    Hallo zusammen,

    ich habe gestern trotz der Probleme am Code weitergearbeitet und aktuell keine Probleme mehr. Warum auch immer...

    Ich würde mich nochmals melden, sollte ich wieder Probleme haben.

    Viele Grüße und schönes Wochenende,
    Lutz
     
    Lutz Fricke, 21. April 2017
    #5
Thema:

Code funktioniert nach Speichern nicht mehr

Die Seite wird geladen...
  1. Code funktioniert nach Speichern nicht mehr - Similar Threads - Code funktioniert Speichern

  2. VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"

    in Microsoft Excel Hilfe
    VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst": Hallo Leute dieser Code für Zellenhöhe bei Verbundenen Zellen Funktioniert fast. Ich habe ein Code von jemand anderem bekommen der nicht in einem Forum ist. Ich kann gerade diese Person nicht...
  3. VBA Code Schliesen nach Zeit X funktioniert nicht

    in Microsoft Excel Hilfe
    VBA Code Schliesen nach Zeit X funktioniert nicht: Hallo Leute , habe ein Problem in meiner Excel Datei wo ich nicht weiter komme. Versuche es so verständlich wie möglich zu beschreiben. ich habe ein Code von jemanden bekommen (leider komme ich an...
  4. VBA Code Funktioniert nicht

    in Microsoft Excel Hilfe
    VBA Code Funktioniert nicht: Hallo Leute habe ein Code von einem Lieben User bekommen. Obwohl es beim ersten mal funktioniert hat geht es nicht mehr. Da ich den User nicht erreichen kann (er hat wahrscheinlich viel zu tun :-)...
  5. Code funktioniert nicht

    in Microsoft Excel Hilfe
    Code funktioniert nicht: Code: Sub Preisliste() If InStr(Range("H43").Value, "*2016*") > 0 Then Call Liste2016 ElseIf InStr(Range("H43").Value, "*2019*") > 0 Then Call Liste2019 Else Call Liste2020 End If End Sub...
  6. Office 365 64 Bit-Version, VBA-Code funktioniert nicht mehr

    in Microsoft Access Hilfe
    Office 365 64 Bit-Version, VBA-Code funktioniert nicht mehr: Hallo Gemeinde Ich habe eine alte Datenbank, erstellt unter Access 2000, konvertiert nach Access 2007. Eine Kundin hat nun auf ihrem PC Office 365 in der 64 Bit-Version installiert. Nun...
  7. Code funktioniert nicht mehr

    in Microsoft Access Hilfe
    Code funktioniert nicht mehr: Hallo zusammen, ich habe ein Formular, dort gebe ich in zwei Feldern einen Benutzernamen und ein Passwort ein. im Bericht soll mir das Passwort als Barcode angedruckt werden. das hat bisher...
  8. VBA - BackUp-Speichern - Code funktioniert nicht

    in Microsoft Excel Hilfe
    VBA - BackUp-Speichern - Code funktioniert nicht: Hallo in die Runde, seit etwa einem Jahr benutze ich in einer Datei ein Makro um automatische BackUps zu speichern. Jetzt benötige ich diese Funktion auch für eine andere Datei, habe den...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden