Collapse column

Autor Thema: Combobox automatisch aktualisieren  (Gelesen 3357 mal)

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Combobox automatisch aktualisieren
« am: September 27, 2016, 20:53:35 Nachmittag »
Hallo,

derzeit grübele ich an folgendem Problem. Ich möchte gern, dass die Werte der Combobox sich sofort mit Eingabe eines Wertes in Zelle (2, 30) ändern und nicht erst, wenn der Ausführen-Button in der Projektansicht betätigt wird. Gibt es da eine sinnvolle Möglichkeit? Ich habe im Internet vieles mit "requery" gefunden. Allerdings bekomme ich mit der Ergänzung um "me.ObfTy.requery" nur die Fehlermeldung, dass das Objekt die Eigenschaft oder Methode nicht unterstützt.

Der bisherige Code sieht wie folgt aus:

Private Sub Workbook_Open()
 Tabelle4.ObfTy_Initialize
End Sub

Public Sub ObfTy_Initialize()
 With ObfTy Ty
  .Clear
  If Cells(2, 30).Value \ 2000 - 5 > 0 Then
   Cells(15, 29).Value = Cells(2, 30).Value \ 2000
   .AddItem Cells(2, 30).Value \ 2000 - 5
   .AddItem Cells(2, 30).Value \ 2000 - 4
   .AddItem Cells(2, 30).Value \ 2000 - 3
   .AddItem Cells(2, 30).Value \ 2000 - 2
   .AddItem Cells(2, 30).Value \ 2000 - 1
   .AddItem Cells(2, 30).Value \ 2000
  Else
   If Cells(2, 30).Value \ 2000 - 4 > 0 Then
    Cells(15, 29).Value = Cells(2, 30).Value \ 2000
    .AddItem Cells(2, 30).Value \ 2000 - 4
    .AddItem Cells(2, 30).Value \ 2000 - 3
    .AddItem Cells(2, 30).Value \ 2000 - 2
    .AddItem Cells(2, 30).Value \ 2000 - 1
    .AddItem Cells(2, 30).Value \ 2000
   Else
    If Cells(2, 30).Value \ 2000 - 3 > 0 Then
     Cells(15, 29).Value = Cells(2, 30).Value \ 2000
     .AddItem Cells(2, 30).Value \ 2000 - 3
     .AddItem Cells(2, 30).Value \ 2000 - 2
     .AddItem Cells(2, 30).Value \ 2000 - 1
     .AddItem Cells(2, 30).Value \ 2000
    Else
     If Cells(2, 30).Value \ 2000 - 2 > 0 Then
      Cells(15, 29).Value = Cells(2, 30).Value \ 2000
      .AddItem Cells(2, 30).Value \ 2000 - 2
      .AddItem Cells(2, 30).Value \ 2000 - 1
      .AddItem Cells(2, 30).Value \ 2000
     Else
      If Cells(2, 30).Value \ 2000 - 1 > 0 Then
       Cells(15, 29).Value = Cells(2, 30).Value \ 2000
       .AddItem Cells(2, 30).Value \ 2000 - 1
       .AddItem Cells(2, 30).Value \ 2000
      Else
       If Cells(2, 30).Value \ 2000 > 0 Then
        Cells(15, 29).Value = Cells(2, 30).Value \ 2000
        .AddItem Cells(2, 30).Value \ 2000
       End If
      End If
     End If
    End If
   End If
  End If
 End With
 ObfTy.Width = 30
End Sub

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Combobox automatisch aktualisieren
« Antwort #1 am: September 30, 2016, 09:03:44 Vormittag »
Hallo,

Requery ist keine Methode aus Excel und deshalb geht das nicht. Im Codemodul zum Tabellenblatt,
wo die Zelle liegt, füge folgendes hinzu. Der Code reagiert auf eine Änderung von Zelle (2,30).

Private Sub Worksheet_Change(ByVal Target As Range)
 
  If Not Target.Row <> 2 And Not Target.Column <> 30 Then
   
    MsgBox "Hier Dein Aufruf zur Prozedur zum Ändern der Combobox"
   
  End If
 
End Sub

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Combobox automatisch aktualisieren
« Antwort #2 am: November 08, 2016, 16:03:35 Nachmittag »
Hallo,

ich bitte umn Entschuldigung für die späte Rückmeldung. Aber andere Projekte bekamen eine höhere Priorität und sollten vorher abgearbeitet werden.

Ich habe mal versucht, deinen Vorschlag nachzuvollziehen. So, wie ich es gemacht habe, kann es aber noch nicht richtig sein. Das Programm beschwert sich, dass ObfTy nicht definiert wurde. Wenn ich eine Zeile "Private Sub ObfTy As Double" hinzufüge, erhalte ich die Fehlermeldung "with-Objekt muß einen benutzerdefinierten Typ oder den Typ Object oder Variant haben". Leider weiß ich nicht so recht, wie ich den Fehler beheben kann. Der derzeitige Code ist unten angehängt.

Private Sub Workbook_Open()
 Tabelle4.ObfTy_Initialize
End Sub

Public ObfTy As Double

Public Sub ObfTy_Initialize()
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Target.Row <> 2 And Not Target.Column <> 30 Then
   With ObfTy Ty
  .Clear
  If Cells(2, 30).Value \ 2000 - 5 > 0 Then
   Cells(15, 29).Value = Cells(2, 30).Value \ 2000
   .AddItem Cells(2, 30).Value \ 2000 - 5
   .AddItem Cells(2, 30).Value \ 2000 - 4
   .AddItem Cells(2, 30).Value \ 2000 - 3
   .AddItem Cells(2, 30).Value \ 2000 - 2
   .AddItem Cells(2, 30).Value \ 2000 - 1
   .AddItem Cells(2, 30).Value \ 2000
  Else
   If Cells(2, 30).Value \ 2000 - 4 > 0 Then
    Cells(15, 29).Value = Cells(2, 30).Value \ 2000
    .AddItem Cells(2, 30).Value \ 2000 - 4
    .AddItem Cells(2, 30).Value \ 2000 - 3
    .AddItem Cells(2, 30).Value \ 2000 - 2
    .AddItem Cells(2, 30).Value \ 2000 - 1
    .AddItem Cells(2, 30).Value \ 2000
   Else
    If Cells(2, 30).Value \ 2000 - 3 > 0 Then
     Cells(15, 29).Value = Cells(2, 30).Value \ 2000
     .AddItem Cells(2, 30).Value \ 2000 - 3
     .AddItem Cells(2, 30).Value \ 2000 - 2
     .AddItem Cells(2, 30).Value \ 2000 - 1
     .AddItem Cells(2, 30).Value \ 2000
    Else
     If Cells(2, 30).Value \ 2000 - 2 > 0 Then
      Cells(15, 29).Value = Cells(2, 30).Value \ 2000
      .AddItem Cells(2, 30).Value \ 2000 - 2
      .AddItem Cells(2, 30).Value \ 2000 - 1
      .AddItem Cells(2, 30).Value \ 2000
     Else
      If Cells(2, 30).Value \ 2000 - 1 > 0 Then
       Cells(15, 29).Value = Cells(2, 30).Value \ 2000
       .AddItem Cells(2, 30).Value \ 2000 - 1
       .AddItem Cells(2, 30).Value \ 2000
      Else
       If Cells(2, 30).Value \ 2000 > 0 Then
        Cells(15, 29).Value = Cells(2, 30).Value \ 2000
        .AddItem Cells(2, 30).Value \ 2000
       End If
      End If
     End If
    End If
   End If
  End If
 End With
 ObfTy.Width = 30
 End If
End Sub

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Combobox automatisch aktualisieren
« Antwort #3 am: November 08, 2016, 18:15:31 Nachmittag »
Hallo,

ersetze mal With ObfTy Ty durch With Tabelle4.ObfTy und lösche Public ObfTy As Double.

Gruß
« Letzte Änderung: November 08, 2016, 18:17:41 Nachmittag von maninweb »
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Combobox automatisch aktualisieren
« Antwort #4 am: November 08, 2016, 21:44:27 Nachmittag »
Hallo maninweb,

vielen Dank. Das Problem mit der Aktualisierung ist gelöst. Es ergibt sich jetzt aber eine Schwierigkeit mit einer Folgeroutine.

Private Sub ObfTy_Change()
 If ObfTy.Enabled = True And ObfW = True Then
  Cells(13, 29).Value = ObfTy.Value * 490
 End If
End Sub

Jetzt kommt die Meldung: "Laufzeitfehler '13': Typen unverträglich". Ich vermute mal, dass ObfTy das Problem verursacht, verstehe aber nicht, wie es zustande kommt. Eigentlich werden in der Combobox Zahlenwerte erhalten, die über .Value ausgelesen werden sollten. Vor deiner vorgeschlagenen Änderung hat es funktioniert. An welcher Stelle wurde da die Variable wie verändert?

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Combobox automatisch aktualisieren
« Antwort #5 am: November 09, 2016, 09:47:56 Vormittag »
Hallo,

was ist ObfW? Eine Variable, ein Steuerelement, etwas anderes?

Insgesamt sind Deine Angaben m.E. nicht ausführlich genug, um das nachzuvollziehen.
Besser wäre es, wenn Du z.B. eine anonymisierte Beispieldatei hochlädst oder falls das
nicht geht dann ausführlicher beschreibt, was für Variablen usw. Du verwendest.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Combobox automatisch aktualisieren
« Antwort #6 am: November 14, 2016, 19:17:16 Nachmittag »
Hallo maninweb,

ObfW ist ein Kontrollkästchensteuerelement. Generell habe ich noch keine Variablen definiert. Bisher arbeite ich nur mit drei Kontrollkästchen und einer Reihe von Comboboxen.

Den kompletten Code für ObfW habe ich einmal angehängt. Die wichtigen Teile sind aber vermutlich nur die letzten beiden IF-Schleife, da sie direkt mit ObfTy zu tun haben.

Code: Visual Basic
  1. Private Sub ObfW_Click()
  2.  If ObfW = True And Cells(11, 12).Text = "" Then
  3.   Cells(11, 12).Interior.ColorIndex = 36
  4.  Else
  5.   Cells(11, 12).Interior.ColorIndex = 2
  6.  End If
  7.  
  8.  If ObfW = True And AtIm.Enabled = True And AtIm.Value = "Sm" Then
  9.   Cells(13, 12) = "SmO"
  10.   Cells(13, 29) = 50
  11.   Cells(17, 12) = ""
  12.   Cells(17, 29) = ""
  13.   ObfChmCsm.Enabled = False
  14.   ObfChmCsm.Visible = False
  15.   ObfImmSm.Enabled = False
  16.   ObfImmSm.Visible = False
  17.   ObfImoSm.Enabled = False
  18.   ObfImoSm.Visible = False
  19.   ObfEl1.Enabled = False
  20.   ObfEl1.Visible = False
  21.   ObfEl2.Enabled = False
  22.   ObfEl2.Visible = False
  23.   ObfEl2Aufr.Enabled = False
  24.   ObfEl2Aufr.Visible = False
  25.   ObfTy.Enabled = False
  26.   ObfTy.Visible = False
  27.  Else
  28.   If ObfW = True And AtIm.Enabled = True And AtIm.Value = "Sm, IA" Or ObfW = True And _
  29.      ObfImmSm.Enabled = True And AtIm.Enabled = True And AtIm.Value = "Sm, T" Or ObfW = True And _
  30.     AtIm.Enabled = True And AtIm.Value = "Sm, IA, T" Then
  31.    Cells(13, 12) = ""
  32.    Cells(17, 12) = ""
  33.    Cells(17, 12) = ""
  34.    Cells(17, 29) = ""
  35.    ObfChmCsm.Enabled = False
  36.    ObfChmCsm.Visible = False
  37.    ObfImmSm.Enabled = True
  38.    ObfImmSm.Visible = True
  39.    ObfImoSm.Enabled = False
  40.    ObfImoSm.Visible = False
  41.    ObfEl1.Enabled = False
  42.    ObfEl1.Visible = False
  43.    ObfEl2.Enabled = False
  44.    ObfEl2.Visible = False
  45.    ObfEl2Aufr.Enabled = False
  46.    ObfEl2Aufr.Visible = False
  47.    ObfTy.Enabled = False
  48.    ObfTy.Visible = False
  49.   Else
  50.    If ObfW = True And AtIm.Enabled = True And AtIm.Value = "IA" Or ObfW = True And _
  51.       AtIm.Enabled = True And AtIm.Value = "T" Or ObfW = True And AtIm.Enabled = True And AtIm.Value = "IA, T" Then
  52.     Cells(13, 12) = ""
  53.     Cells(17, 12) = ""
  54.     Cells(17, 12) = ""
  55.     Cells(17, 29) = ""
  56.     ObfChmCsm.Enabled = False
  57.     ObfChmCsm.Visible = False
  58.     ObfImmSm.Enabled = False
  59.     ObfImmSm.Visible = False
  60.     ObfImoSm.Enabled = True
  61.     ObfImoSm.Visible = True
  62.     ObfEl1.Enabled = False
  63.     ObfEl1.Visible = False
  64.     ObfEl2.Enabled = False
  65.     ObfEl2.Visible = False
  66.     ObfEl2Aufr.Enabled = False
  67.     ObfEl2Aufr.Visible = False
  68.     ObfTy.Enabled = False
  69.     ObfTy.Visible = False
  70.    Else
  71.     If ObfW = True And AtCh.Enabled = True And AtCh.Value = "Csm" Or ObfW = True And _
  72.        AtCh.Enabled = True And AtCh.Value = "Csm, K" Or ObfW = True And AtCh.Enabled = True And _
  73.        AtCh.Value = "Csm, D" Or ObfW = True And AtCh.Enabled = True And AtCh.Value = "Csm, K, D" Then
  74.      Cells(13, 12) = ""
  75.      Cells(17, 12) = ""
  76.      Cells(17, 12) = ""
  77.      Cells(17, 29) = ""
  78.      ObfChmCsm.Enabled = True
  79.      ObfChmCsm.Visible = True
  80.      ObfImmSm.Enabled = False
  81.      ObfImmSm.Visible = False
  82.      ObfImoSm.Enabled = False
  83.      ObfImoSm.Visible = False
  84.      ObfEl1.Enabled = False
  85.      ObfEl1.Visible = False
  86.      ObfEl2.Enabled = False
  87.      ObfEl2.Visible = False
  88.      ObfEl2Aufr.Enabled = False
  89.      ObfEl2Aufr.Visible = False
  90.      ObfTy.Enabled = False
  91.      ObfTy.Visible = False
  92.     Else
  93.      If ObfW = True And AtCh.Enabled = True And AtCh.Value = "K" Or ObfW = True And _
  94.         AtCh.Enabled = True And AtCh.Value = "D" Or ObfW = True And AtCh.Enabled = True And AtCh.Value = "K, D" Then
  95.       Cells(13, 12) = "Dp"
  96.       Cells(13, 29) = 45
  97.       Cells(17, 12) = ""
  98.       Cells(17, 29) = ""
  99.       ObfChmCsm.Enabled = True
  100.       ObfChmCsm.Visible = True
  101.       ObfImmSm.Enabled = False
  102.       ObfImmSm.Visible = False
  103.       ObfImoSm.Enabled = False
  104.       ObfImoSm.Visible = False
  105.       ObfEl1.Enabled = False
  106.       ObfEl1.Visible = False
  107.       ObfEl2.Enabled = False
  108.       ObfEl2.Visible = False
  109.       ObfEl2Aufr.Enabled = False
  110.       ObfEl2Aufr.Visible = False
  111.       ObfTy.Enabled = False
  112.       ObfTy.Visible = False
  113.      Else
  114.       If ObfW = True And V.Value = "O" Then
  115.        Cells(13, 12) = "Mb"
  116.        Cells(13, 29) = 50
  117.        Cells(17, 12) = ""
  118.        Cells(17, 29) = ""
  119.        ObfChmCsm.Enabled = False
  120.        ObfChmCsm.Visible = False
  121.        ObfImmSm.Enabled = False
  122.        ObfImmSm.Visible = False
  123.        ObfImoSm.Enabled = False
  124.        ObfImoSm.Visible = False
  125.        ObfEl1.Enabled = False
  126.        ObfEl1.Visible = False
  127.        ObfEl2.Enabled = False
  128.        ObfEl2.Visible = False
  129.        ObfEl2Aufr.Enabled = False
  130.        ObfEl2Aufr.Visible = False
  131.        ObfTy.Enabled = False
  132.        ObfTy.Visible = False
  133.       Else
  134.        If ObfW = True And V.Value = "El" Then
  135.         Cells(13, 12) = "Rp"
  136.         Cells(17, 12) = "Av "
  137.         ObfChmCsm.Enabled = False
  138.         ObfChmCsm.Visible = False
  139.         ObfImmSm.Enabled = False
  140.         ObfImmSm.Visible = False
  141.         ObfImoSm.Enabled = False
  142.         ObfImoSm.Visible = False
  143.         ObfEl1.Enabled = True
  144.         ObfEl1.Visible = True
  145.         ObfEl2.Enabled = True
  146.         ObfEl2.Visible = True
  147.         ObfEl2Aufr.Enabled = True
  148.         ObfEl2Aufr.Visible = True
  149.         ObfTy.Enabled = False
  150.         ObfTy.Visible = False
  151.        Else
  152.         If ObfW = True And V.Value = "Ty" Then
  153.          Cells(13, 12) = "Do"
  154.          Cells(13, 29).Value = ObfTy.Value * 490
  155.          Cells(17, 12) = ""
  156.          Cells(17, 29) = ""
  157.          ObfChmCsm.Enabled = False
  158.          ObfChmCsm.Visible = False
  159.          ObfImmSm.Enabled = False
  160.          ObfImmSm.Visible = False
  161.          ObfImoSm.Enabled = False
  162.          ObfImoSm.Visible = False
  163.          ObfEl1.Enabled = False
  164.          ObfEl1.Visible = False
  165.          ObfEl2.Enabled = False
  166.          ObfEl2.Visible = False
  167.          ObfEl2Aufr.Enabled = False
  168.          ObfEl2Aufr.Visible = False
  169.          ObfTy.Enabled = True
  170.          ObfTy.Visible = True
  171.         Else
  172.          Cells(13, 12) = ""
  173.          Cells(13, 29) = ""
  174.          Cells(17, 12) = ""
  175.          Cells(17, 29) = ""
  176.          ObfChmCsm.Enabled = False
  177.          ObfChmCsm.Visible = False
  178.          ObfImmSm.Enabled = False
  179.          ObfImmSm.Visible = False
  180.          ObfImoSm.Enabled = False
  181.          ObfImoSm.Visible = False
  182.          ObfEl1.Enabled = False
  183.          ObfEl1.Visible = False
  184.          ObfEl2.Enabled = False
  185.          ObfEl2.Visible = False
  186.          ObfEl2Aufr.Enabled = False
  187.          ObfEl2Aufr.Visible = False
  188.          ObfTy.Enabled = False
  189.          ObfTy.Visible = False
  190.         End If
  191.        End If
  192.       End If
  193.      End If
  194.     End If
  195.    End If
  196.   End If
  197.  End If
  198. End Sub
  199.  
« Letzte Änderung: November 15, 2016, 12:18:47 Nachmittag von maninweb »

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Combobox automatisch aktualisieren
« Antwort #7 am: November 15, 2016, 12:23:03 Nachmittag »
Hallo,

Danke für den Code - aber sorry, das mit den Steuerelementen werde ich nicht nachbauen.

Wenn der Fehler bei Cells(13, 29).Value = ObfTy.Value * 490 liegt, könntest Du als Ersatz Cells(13, 29).Value = CDbl(ObfTy.Value) * 490
ausprobieren, vorausgesetzt, dass ObfTy.Value in eine Zahl umwandelbar ist.

Gruß

Hinweis: habe Deinen Beitrag leicht verändert, indem ich Zeilenumbrüche eingefügt habe, wegen desLayout hier im Forum.
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Combobox automatisch aktualisieren
« Antwort #8 am: November 15, 2016, 13:35:34 Nachmittag »
Hallo,

ist kein Problem. Das nachzuarbeiten würde wahrscheinlich zu lange dauern.

So wie es aussieht, habe ich mich aber bzgl. der Folgeroutine geirrt. Das Problem wird scheinbar immer noch von ObfTy verursacht. Immer wieder mal, beschwert sich das Programm bei der Zeile
Cells(13, 29).Value = ObfTy.Value * 490über eine Typenunverträglichkeit (Laufzeitfehler 13). CDbl hat dabei auch leider nichts weiter bewirkt, als dass es von vornherein den Fehler ausgibt, nicht nur gelegentlich.
Soweit ich das feststellen konnte, tritt das Problem immer dann auf, wenn ich den Inhalt von Zelle (2, 30) ändere, während ein Wert in ObfTy steht. Wenn ich die Veränderung erst vornehme und anschließend einen Wert in ObfTy auswähle, dann berechnet er das Ergebnis in Zelle (13, 29) richtig.

Gruß,
Cobrus

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Combobox automatisch aktualisieren
« Antwort #9 am: November 15, 2016, 14:47:50 Nachmittag »
Hallo,

was stehen denn für Werte in der Combobox ObfTy drin? Sind die auch negativ? Gibt es einen leeren Eintrag?

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Combobox automatisch aktualisieren
« Antwort #10 am: November 15, 2016, 15:42:35 Nachmittag »
Hallo,

es sind positive ganzzahlige Werte von 1 bis 5, je nachdem, wie groß der Zellinhalt (2, 30) ist. Über den Code in meinem ersten Post habe ich definiert, dass das Programm negative Werte ausschließen soll. Dabei tauchen auch weder 0 noch ein leeres Feld bei den Werten auf.

Gruß,
Cobrus

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Combobox automatisch aktualisieren
« Antwort #11 am: November 15, 2016, 16:43:16 Nachmittag »
Hallo,

für mich nicht mehr nachvollziehbar. Wenn Du magst, kannst Du mir die Datei auch gerne per E-Mail
zusenden. Dann schaue ich mir diese mal an. Meine E-Mail-Adresse kann ich Dir per PN senden,
wenn Du einverstanden bist.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Combobox automatisch aktualisieren
« Antwort #12 am: November 15, 2016, 18:08:14 Nachmittag »
Okay, dann machen wir das so.

Offline maninweb

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1.063
    • Profil anzeigen
    • Excel Formula Translator
  • Office-KnowHow: Experte
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2016
Antw: Combobox automatisch aktualisieren
« Antwort #13 am: November 15, 2016, 18:23:53 Nachmittag »
Hallo,

PN ist raus.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte

Offline Cobrus

  • Newbie
  • *
  • Beiträge: 10
    • Profil anzeigen
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw: Combobox automatisch aktualisieren
« Antwort #14 am: November 20, 2016, 11:58:15 Vormittag »
Die Lösung für das Problem wurde gefunden und sieht wie folgt aus:

Die Zeile
Cells(13, 29).Value = ObfTy.Value * 490wurde ersetzt durch
If Len(Trim(CStr(ObfTy.Value))) > 0 Then
 Cells(13, 29).Value = CDbl(ObfTy.Value) * 490
Else
 Cells(13, 29).Value = ""
End If

Vielen Dank für die Hilfe.

Wenn du dich noch intensiver mit Excel beschäftigen möchtest, dann empfiehlt sich ein Online-Kurs,
in dem du sehr viel über Excel erfährst und das gelernte umgehend in der Praxis anwenden kannst.