2 abhängige Comboboxen außerhalb Userform

  • Excel

Es gibt 64 Antworten in diesem Thema. Der letzte Beitrag () ist von Patrick.

    2 abhängige Comboboxen außerhalb Userform

    Hallo Liebes Forum,

    ich habe eine Exceltabelle in der sich eine Combobox befindet.
    Diese ist mit Daten gefüllt. (Kleidungsstück darunter die Größen).

    Diese Werte befinden sich in A4 bis A 133.
    In B4 bis B133 die anzahl der vorhandenen Kleidungsstücke.
    Wenn ich nun in der Combobox unter Bundhose größe 42 auswähle und in Zelle E4 eine 2 eintarge und mit der Entertaste bestätige wird diese 2 von dem Bestand in B:B abgezogen. gleiches gilt für F4 dort wird dazugerechnet.
    Das funktioniert super.

    Da die Combobox ein elendig langes Feld öffnet möchte ich es einkürzen.
    also möchte ich gerne in der Combobox1 nur Bundhose, Regenjacke, usw. angezeigt bekommen und in Combobox 2 sollen die größen aufgeführt werden.
    es soll also erst das Kleidungsstück in Combobox 1 gewählt werden dann in Combobox 2 die dazugehörige Größe. Die funktion mit der Eingabe der Anzahl soll erhalten bleiben.

    Für eure Hilfe bin ich sehr dankbar.

    Gruß Patrick

    *Topic verschoben und doppelte Dateianhänge entfernt* ~NoFear23m
    @
    ~NoFear23m Vielen Dank für das richtige einsortiern. Gruß Patrick.
    Dateien
    • Tes.7z

      (40,74 kB, 152 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Patrick“ ()

    Nun Bin ich einen Schritt weiter. Die ComboBox 2 füllt sich nun dank .AddItem Range "A4" usw. mit den richtigen Daten.

    ABER: Wenn ich jetzt die Auswahl in ComboBox1 und ComboBox2 tätige, dann die Anzahl eingebe und mit Enter bestätige, werden die Daten egal was in ComboBox1 ausgewählt wurde, in den Bereich B4:B12 geschrieben.

    Wie kann ich das jetzt Lösen?

    Die aktuelle Datei habe ich angehangen.

    Gruß Patrick
    Dateien
    • Test_Neu2.7z

      (48,27 kB, 149 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Patrick“ ()

    Hi, ich würde erstmal dein ComboxBox1_Change etwas übersichtlicher mit Select Case umschreiben:

    Visual Basic-Quellcode

    1. Private Sub ComboBox1_Change()
    2. Select Case ComboBox1
    3. Case "Bundhose_Grau"
    4. ComboBox2.ListFillRange = "BundhoseG"
    5. Case "Bundhose_Cord"
    6. ComboBox2.ListFillRange = "BundhoseC"
    7. 'etc.
    8. End Select


    Ansonsten funktioniert Dein Code deshalb nicht, weil der ListIndex der ComboBox2 immer von 1 runterzählt. Du müsstest folgende Code-Zeile anpassen:

    Visual Basic-Quellcode

    1. Cells(ComboBox2.ListIndex + 3, 2) = Cells(ComboBox2.ListIndex + 3, 2) - Cells(4, 5) + Cells(4, 6)


    Edit: Beispielhaft für BundhoseCord und Grau siehe nachfolgender Code. Man könnte das jetzt auch noch in eine Funktion packen.

    Visual Basic-Quellcode

    1. Private Sub Worksheet_Change(ByVal Target As Range)
    2. Dim FindeGröße As Range
    3. Dim BundhoseCord, BundhoseGrau As Range
    4. Set BundhoseGrau = Range("A4:A12")
    5. Set BundhoseCord = Range("A14:A22")
    6. 'etc.
    7. If Not Intersect(Target, Range("E4:F4")) Is Nothing Then
    8. Select Case ComboBox1
    9. Case "Bundhose_Cord"
    10. Set FindeGröße = BundhoseCord.Find(ComboBox2.Value)
    11. If Not FindeGröße Is Nothing Then
    12. FindeGröße.Offset(0, 1) = FindeGröße.Offset(0, 1) - Range("E4") + Range("F4")
    13. End If
    14. Case "Bundhose_Grau"
    15. Set FindeGröße = BundhoseGrau.Find(ComboBox2.Value)
    16. If Not FindeGröße Is Nothing Then
    17. FindeGröße.Offset(0, 1) = FindeGröße.Offset(0, 1) - Range("E4") + Range("F4")
    18. End If
    19. 'etc.
    20. End Select
    21. End If
    22. End Sub


    Edit: Mit einer Funktion wird der Code übersichtlicher:

    Visual Basic-Quellcode

    1. Private Sub Worksheet_Change(ByVal Target As Range)
    2. Dim BundhoseCord, BundhoseGrau As Range 'etc.
    3. Set BundhoseGrau = Range("A4:A12")
    4. Set BundhoseCord = Range("A14:A22")
    5. 'etc.
    6. If Not Intersect(Target, Range("E4:F4")) Is Nothing Then
    7. Call Entnahme("Bundhose_Cord", BundhoseCord)
    8. Call Entnahme("Bundhose_Grau", BundhoseGrau)
    9. 'etc.
    10. End If
    11. End Sub
    12. Function Entnahme(ByVal Kleidungsstück As String, ByVal Größen As Range)
    13. Dim FindeGröße As Range
    14. Select Case ComboBox1
    15. Case Kleidungsstück
    16. Set FindeGröße = Größen.Find(ComboBox2.Value)
    17. If Not FindeGröße Is Nothing Then
    18. FindeGröße.Offset(0, 1) = FindeGröße.Offset(0, 1) - Range("E4") + Range("F4")
    19. End If
    20. End Select
    21. End Function

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „cry.baby“ ()

    Hallo cray.baby

    Vielen Dank für den Code. Funktioniert tadellos.

    Ich habe ihn noch um ein paar Zeilen ergänzt.

    Und zwar wie folgt.

    Unter If not intersect (Target, Ränge("E4:F4")) Is Nothing Then EDIT: In meinem Code steht Range wer weiß was mit Ränge passiert #Selbstzerstörung??? :thumbsup:

    On Error GoTo Fehler
    Application.EnableEvents = False
    Und dann unter
    FindeGröße.Offset (0, 1) = FindeGröße.Offset (0, 1) - Range("E4") + Range ("F4")

    Range (E4:F4").ClearContents

    Dann unter Endlich Select EDIT: Es heißt End Select Ich hasse diese Autokorrektur

    Fehler:
    Application.EnableEvents = True

    Jetzt werden die Zellen E4:F4 nach Betätigung der Entertaste gelehrt. EDIT: Sie werden selbstverständlich geleert, ihnen wird ja nichts beigebracht. :)


    Ganz großes Dankeschön für deine Hilfe.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Patrick“ ()

    cry.baby schrieb:

    Gerne aber wozu hast Du den On Error Goto Fehler eingebaut?
    Die hat er eingebaut, weil in dieser Zeile
    FindeGröße.Offset (0, 1) = FindeGröße.Offset (0, 1) - Range("E4") + Range ("F4")
    4 Fehlermöglichkeiten eingebaut sind, falls die Werte nicht numerisch sind.
    Sauber codiert wäre der ErrorHandler nicht nötig:

    Visual Basic-Quellcode

    1. FindeGröße.Offset(0, 1).Value = Val(FindeGröße.Offset(0, 1).Value) - Val(Range("E4").Value) + Val(Range ("F4").Value)
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Aus z.B. C# kenne ich die Try Catch Anweisung. Hier hätte ich versucht den Wert in eine Integer zu wandeln, um dann im Fall eines Errors eine Exception ausgeworfen zu bekommen. Etwas Vergleichbares gibt es in VBA nicht, oder? Hier ist man auf On Error GoTo angewiesen?

    Val birgt aber auch die Gefahr, dass man nicht informiert wird, wenn versehentlich ein Buchstabe mit eingegeben wurde. Außerdem werden lt. Microsoft O & H erkannt:

    "Die Funktion erkennt jedoch die Basispräfixe &O (für oktal) und &H (für hexadezimal). "

    "Im folgenden Code gibt Val den Dezimalwert-1 für den angezeigten Hexadezimalwert zurück:"

    Visual Basic-Quellcode

    1. Val("&HFFFF")


    docs.microsoft.com/de-de/offic…terface-help/val-function

    cry.baby schrieb:

    Val birgt aber auch die Gefahr, dass man nicht informiert wird, wenn versehentlich ein Buchstabe mit eingegeben wurde. Außerdem werden lt. Microsoft O & H erkannt:
    Was imho im diesem Fall fachlich egal wäre.
    Falls je nicht, könnte man man das ja beim Füllen der Zellen schon durch entsprechende Schutzabfragen verhindern.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    petaod schrieb:

    cry.baby schrieb:

    Gerne aber wozu hast Du den On Error Goto Fehler eingebaut?
    Die hat er eingebaut, weil in dieser Zeile
    FindeGröße.Offset (0, 1) = FindeGröße.Offset (0, 1) - Range("E4") + Range ("F4")
    4 Fehlermöglichkeiten eingebaut sind, falls die Werte nicht numerisch sind.
    Sauber codiert wäre der ErrorHandler nicht nötig:

    Visual Basic-Quellcode

    1. FindeGröße.Offset(0, 1).Value = Val(FindeGröße.Offset(0, 1).Value) - Val(Range("E4").Value) + Val(Range ("F4").Value)


    Du hast es auf den Punkt getroffen. ;)
    Dafür das ich mit VBA sonst nichts am Hut habe, funktioniert die Sache jetzt super.
    DANK EURER HILFE!!!

    Ich werde den Code noch Optimieren und eure Tips alle ausprobieren.

    Gruß Patrick

    petaod schrieb:

    cry.baby schrieb:

    Val birgt aber auch die Gefahr, dass man nicht informiert wird, wenn versehentlich ein Buchstabe mit eingegeben wurde. Außerdem werden lt. Microsoft O & H erkannt:
    Was imho im diesem Fall fachlich egal wäre.
    Falls je nicht, könnte man man das ja beim Füllen der Zellen schon durch entsprechende Schutzabfragen verhindern.



    Das wäre ja noch eine gute Idee. Lässt sich so etwas denn umsetzen?

    Muss man denn dieses ComboBox2.ListIndex = 0 wirklich unter jede Case Zeile einfügen?
    Case "T-Shirt"
    ComboBox2.ListFillRange = "THEMDEN"
    ComboBox2.ListIndex = 0

    Gruß Patrick

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Patrick“ ()

    Patrick schrieb:

    Lässt sich so etwas denn umsetzen?

    Visual Basic-Quellcode

    1. Private Property NumericCells As Range
    2. Set NumericCells = Range("B:B,E4,F5") 'alle Zellen, die auf numerisch abgeprüft werden sollen.
    3. End Property
    4. Private Sub Worksheet_Change(ByVal Target As Range)
    5. Dim c As Range
    6. For Each c In Target
    7. If Not Intersect(c, NumericCells) Is Nothing
    8. If Not IsNumeric(c.Value) Then
    9. MsgBox "Zelle " & c.Address & " ist nicht numerisch!"
    10. c.ClearContents
    11. End If
    12. End If
    13. Next
    14. End Sub
    Alternativ kannst du auch alle zu prüfenden Zellen mit einer anderen Schriftfarbe versehen, die um eine Farbnuance von der Normalfarbe abweicht und diese abprüfen.
    Möglichkeiten gibt es viele.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    cry.baby schrieb:


    Wüsste nicht wozu das gut sein soll? Wie kommst Du darauf?


    Das bewirkt das in der Combobox2, nach Auswahl in der Combobox1, immer der erste Eintrag angezeigt wird.
    Es macht in den Augen vieler keinen Sinn, aber viele wissen auch nicht wie unbegabt viele andere sind. Aus diesem Grund ist es gewünscht, das in der Combobox2 noch einmal die Art der Bekleidung erscheint die in der Combobox1 ausgewählt wurde. Ohne ComboBox2.ListIndex = 0 wird der erste Größeneintrag (ListIndex=1) gezeigt (S, 44, usw.).

    *Vollzitat entfernt* ~NoFear23m

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Nofear23m“ ()

    petaod schrieb:

    Patrick schrieb:

    Lässt sich so etwas denn umsetzen?

    Visual Basic-Quellcode

    1. Private Property NumericCells As Range
    2. Set NumericCells = Range("B:B,E4,F5") 'alle Zellen, die auf numerisch abgeprüft werden sollen.
    3. End Property
    4. Private Sub Worksheet_Change(ByVal Target As Range)
    5. Dim c As Range
    6. For Each c In Target
    7. If Not Intersect(c, NumericCells) Is Nothing
    8. If Not IsNumeric(c.Value) Then
    9. MsgBox "Zelle " & c.Address & " ist nicht numerisch!"
    10. c.ClearContents
    11. End If
    12. End If
    13. Next
    14. End Sub
    Alternativ kannst du auch alle zu prüfenden Zellen mit einer anderen Schriftfarbe versehen, die um eine Farbnuance von der Normalfarbe abweicht und diese abprüfen.
    Möglichkeiten gibt es viele.


    Oh man was ich begeistert von Eurem Wissen bin

    An welcher Stelle muss das eingefügt werden? st es eine neue Sub oder muss das in die vorhandenen Codeschnipsel mit rein?

    Mein code sieht zur Zeit so aus.

    Visual Basic-Quellcode

    1. Private Sub ComboBox1_Change()
    2. Select Case ComboBox1
    3. Case "Bundhose Grau"
    4. ComboBox2.ListFillRange = "BundhoseG"
    5. ComboBox2.ListIndex = 0
    6. Case "Bundhose Cord"
    7. ComboBox2.ListFillRange = "BundhoseC"
    8. ComboBox2.ListIndex = 0
    9. End Select
    10. End Sub
    11. Private Sub Worksheet_Change(ByVal Target As Range)
    12. Dim FindeGröße As Range
    13. Dim BundhoseCord, BundhoseGrau, LatzhoseGrau, LattzhoseCord, Tshirt, Swetshirt, Winterjacke, Bluson, Fleecejacke, Poloshirtblau, Poloshirtweiss, Übergangsjacke, Schuhe, Regenhose, Regenjacke As Range
    14. Set BundhoseGrau = Range("BundhoseG")
    15. Set BundhoseCord = Range("BundhoseC")
    16. If Not Intersect(Target, Range("E4:F4")) Is Nothing Then
    17. On Error GoTo Fehler
    18. Application.EnableEvents = False
    19. Select Case ComboBox1
    20. Case "Bundhose Cord"
    21. Set FindeGröße = BundhoseCord.Find(ComboBox2.Value)
    22. If Not FindeGröße Is Nothing Then
    23. FindeGröße.Offset(0, 1) = FindeGröße.Offset(0, 1) - Range("E4") + Range("F4")
    24. Range("E4:F4").ClearContents
    25. End If
    26. Case "Bundhose Grau"
    27. Set FindeGröße = BundhoseGrau.Find(ComboBox2.Value)
    28. If Not FindeGröße Is Nothing Then
    29. FindeGröße.Offset(0, 1) = FindeGröße.Offset(0, 1) - Range("E4") + Range("F4")
    30. Range("E4:F4").ClearContents
    31. End If
    32. End Select
    33. Fehler:
    34. Application.EnableEvents = True
    35. End If
    36. End Sub


    EDIT:
    Es scheitert schon bei der Eingabe von Private Property NumericCells As Range.
    Ich erhalte die Meldung Fehler beim Kompilieren: Erwartet: Get oder Let oder Set, wobei dann NumericCells makiert wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Patrick“ ()

    Ich würde auf jeden Fall die Funktion reinpacken, sonst wird Dein Code zu lang. Die IsNumeric-Abfrage von Petaod müsstest dann auch noch dort reinpacken oder Du machst das über On Error GoTo. Weniger elegant aber es tut's.

    Visual Basic-Quellcode

    1. Private Sub ComboBox1_Change()
    2. Select Case ComboBox1
    3. Case "Bundhose_Grau"
    4. ComboBox2.ListFillRange = "BundhoseG"
    5. ComboBox2.ListIndex = 0
    6. Case "Bundhose_Cord"
    7. ComboBox2.ListFillRange = "BundhoseC"
    8. ComboBox2.ListIndex = 0
    9. 'etc.
    10. End Select
    11. End Sub
    12. Private Sub Worksheet_Change(ByVal Target As Range)
    13. Dim BundhoseCord, BundhoseGrau As Range 'etc.
    14. Set BundhoseGrau = Range("BundhoseG")
    15. Set BundhoseCord = Range("BundhoseC")
    16. 'etc.
    17. If Not Intersect(Target, Range("E4:F4")) Is Nothing Then
    18. Call Entnahme("Bundhose_Cord", BundhoseCord)
    19. Call Entnahme("Bundhose_Grau", BundhoseGrau)
    20. 'etc.
    21. End If
    22. End Sub
    23. Private Function Entnahme(ByVal Kleidungsstück As String, ByVal Größen As Range)
    24. Dim FindeGröße As Range
    25. 'MessageBox bei nichtnumerischer Eingabe bei Entnahme/Einlagerung aufrufen!
    26. On Error GoTo NichtNumerisch
    27. Select Case ComboBox1
    28. Case Kleidungsstück
    29. Set FindeGröße = Größen.Find(ComboBox2.Value)
    30. If Not FindeGröße Is Nothing Then
    31. FindeGröße.Offset(0, 1) = FindeGröße.Offset(0, 1) - Range("E4") + Range("F4")
    32. End If
    33. End Select
    34. Exit Function
    35. NichtNumerisch:
    36. MsgBox "Bitte geben Sie einen gültigen numerischen Wert für die Entnahme/Einlagerung ein!", vbCritical
    37. End Function
    Danke für die Mühe cry.baby.

    wenn ich deinen Code verwende bekomme ich die MsgBox auch dann angezeigt wenn ich eine ziffer in E4, F4 eintrage. Danach kann ich keine Zellen mehr auswählen und muss die Datei schließen und wieder öffnen.

    cry.baby schrieb:

    Ich würde auf jeden Fall die Funktion reinpacken, sonst wird Dein Code zu lang. Die IsNumeric-Abfrage von Petaod müsstest dann auch noch dort reinpacken oder Du machst das über On Error GoTo. Weniger elegant aber es tut's.

    Visual Basic-Quellcode

    1. Private Sub ComboBox1_Change()
    2. Select Case ComboBox1
    3. Case "Bundhose_Grau"
    4. ComboBox2.ListFillRange = "BundhoseG"
    5. ComboBox2.ListIndex = 0
    6. Case "Bundhose_Cord"
    7. ComboBox2.ListFillRange = "BundhoseC"
    8. ComboBox2.ListIndex = 0
    9. 'etc.
    10. End Select
    11. End Sub
    12. Private Sub Worksheet_Change(ByVal Target As Range)
    13. Dim BundhoseCord, BundhoseGrau As Range 'etc.
    14. Set BundhoseGrau = Range("BundhoseG")
    15. Set BundhoseCord = Range("BundhoseC")
    16. 'etc.
    17. If Not Intersect(Target, Range("E4:F4")) Is Nothing Then
    18. Call Entnahme("Bundhose_Cord", BundhoseCord)
    19. Call Entnahme("Bundhose_Grau", BundhoseGrau)
    20. 'etc.
    21. End If
    22. End Sub
    23. Private Function Entnahme(ByVal Kleidungsstück As String, ByVal Größen As Range)
    24. Dim FindeGröße As Range
    25. 'MessageBox bei nichtnumerischer Eingabe bei Entnahme/Einlagerung aufrufen!
    26. On Error GoTo NichtNumerisch
    27. Select Case ComboBox1
    28. Case Kleidungsstück
    29. Set FindeGröße = Größen.Find(ComboBox2.Value)
    30. If Not FindeGröße Is Nothing Then
    31. FindeGröße.Offset(0, 1) = FindeGröße.Offset(0, 1) - Range("E4") + Range("F4")
    32. End If
    33. End Select
    34. Exit Function
    35. NichtNumerisch:
    36. MsgBox "Bitte geben Sie einen gültigen numerischen Wert für die Entnahme/Einlagerung ein!", vbCritical
    37. End Function


    Wenn ich versuche den Code von Petaod einzugeben bekomme ich eine Fehlermeldung
    EDIT:
    Es scheitert schon bei der Eingabe von Private Property NumericCells As Range.
    Ich erhalte die Meldung Fehler beim Kompilieren: Erwartet: Get oder Let oder Set, wobei dann NumericCells makiert wird.


    Liebe Grüße Patrick

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Patrick“ ()

    cry.baby schrieb:

    Kann ich mir nicht erklären. Lad mal bitte die Datei hoch.


    So dein Code funktioniert nun...
    es gab ein Problem mit der Schreibweise von T-Shirt.

    Jetzt ist aber wieder das Problem das die Felder E4 und F4 nicht geleert werden, nach dem die Eingabe mit Enter bestätigt wurde.
    Range("E4:F4").ClearContents bringt ja sofort die MsgBox zum Vorschein X/

    Gruß Patrick
    Dateien
    • neu.rar

      (47,76 kB, 139 mal heruntergeladen, zuletzt: )
    Mit Petaod's Methode siehe nachfolgender Code. Allerdings ist hier noch nicht berücksichtigt, dass Du E4 und F4 gelöscht haben möchtest. Muss man noch einbauen, allerdings komme ich heute und morgen nicht mehr dazu...

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Sub ComboBox1_Change()
    3. Select Case ComboBox1
    4. Case "Bundhose_Grau"
    5. ComboBox2.ListFillRange = "BundhoseG"
    6. ComboBox2.ListIndex = 0
    7. Case "Bundhose_Cord"
    8. ComboBox2.ListFillRange = "BundhoseC"
    9. ComboBox2.ListIndex = 0
    10. Case "Latzhose Grau"
    11. ComboBox2.ListFillRange = "LatzhoseG"
    12. ComboBox2.ListIndex = 0
    13. 'etc.
    14. End Select
    15. End Sub
    16. Private Sub Worksheet_Change(ByVal Target As Range)
    17. Dim BundhoseCord, BundhoseGrau, LatzhoseGrau As Range 'etc.
    18. Set BundhoseGrau = Range("BundhoseG")
    19. Set BundhoseCord = Range("BundhoseC")
    20. Set LatzhoseGrau = Range("LatzhoseG")
    21. 'etc.
    22. If Not Intersect(Target, Range("E4:F4")) Is Nothing Then
    23. Call Entnahme("Bundhose_Cord", BundhoseCord)
    24. Call Entnahme("Bundhose_Grau", BundhoseGrau)
    25. Call Entnahme("Latzhose Grau", LatzhoseGrau)
    26. 'etc.
    27. End If
    28. 'Petaod's Methode
    29. Dim NumericCells As Range
    30. Dim c As Range
    31. Set NumericCells = Range("B:B,E4,F4")
    32. For Each c In Target
    33. If Not Intersect(c, NumericCells) Is Nothing Then
    34. If Not IsNumeric(c.Value) Then
    35. MsgBox "Zelle " & c.Address & " ist nicht numerisch!"
    36. c.ClearContents
    37. End If
    38. End If
    39. Next
    40. End Sub
    41. Private Function Entnahme(ByVal Kleidungsstück As String, ByVal Größen As Range)
    42. Dim FindeGröße As Range
    43. Select Case ComboBox1
    44. Case Kleidungsstück
    45. Set FindeGröße = Größen.Find(ComboBox2.Value)
    46. If Not FindeGröße Is Nothing Then
    47. FindeGröße.Offset(0, 1).Value = Val(FindeGröße.Offset(0, 1).Value) - Val(Range("E4").Value) + Val(Range("F4").Value)
    48. End If
    49. End Select
    50. End Function

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „cry.baby“ ()

    Ahhh jetzt dämmert mir langsam wie der Hase läuft...
    Aus Private Property NumericCells As Range
    wird Dim NumericCells As Range.
    Das Privat Property ist also eine extra Funktion und das Dim baut die Funktion in eine Funktion ein?


    Super das es jetzt alles funktioniert. Ich sollte mir ein Lehrbuch kaufen um das alles wirklich zu verstehen.

    Wenn jetzt das mit dem leeren der Zellen noch klappt wäre sehr gut.
    Habe da schon einiges ausprobiert, aber alles mit dem gleichen Ergebnis sobald die Zellen geleert werden kommt die MsgBox.

    Was ich versucht habe hat auch alles die selbe Funktion. Also müsste doch der Ansatz sein das ich sage es ist kein Fehler wenn die Zellen leer sind.

    Nun muss ich das ganze noch in die VBA Sprache übersetzen...

    Eure Hilfe in allen Ehren aber so richtig weiß ich noch nicht was ich da eigendlich mache...

    Vielen Dank für die Zeit die ihr alle in mein Projekt investiert habt.

    Wenn noch jemand Verbesserungsvorschläge hat ich nehme sie gerne an.

    Gruß Patrick

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Patrick“ ()