Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Ausblenden von Comboboxen und Textboxen
#21
Hallo,

ich weiß nicht, ob ich Deine Frage jetzt richtig verstehe. Hast Du die .REPAINT Methode schon mal ausprobiert?


Zitat:https://docs.microsoft.com/de-de/office/...rm.repaint

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
[-] Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:
  • Maria 6
Top
#22
Hallo Marcus

Wenn ich dich richtig verstehe müsste ich das hinzufügen richtig?

Zitat:Private Sub UserForn1_Activate()
    Me.Repaint
End Sub
Habe es so getestet ändert sich nix bleibt alles gleich, die Aktualisierung klappt nur richtig wie am Geschrieben 26.03.2020, 09:05, leider.
Top
#23
Hallo Maria,

ich dachte eher daran das in deinem Code auszuführen:

Private Sub ComboBox8_Change()
If ComboBox8.Value > 0 Then
BlendeCB ComboBox8.Value
Sheets("NameDerTabelleMitDerPivot").PivotTables("qZusetz_" & ComboBox8.Value).PivotCache.Refresh
UserForm.repaint 'oder Me.
End If
End Sub


Testen kann ich das nicht, da ich deine Tabelle nicht kenne.

Du hast allerdings einen Fehler in deinen Code eingebaut:
Es heißt Userform nicht Userforn

Private Sub UserForm1_Activate()
    Me.Repaint
End Sub

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
[-] Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:
  • Maria 6
Top
#24
Hallöchen,

wenn der Code auf eine Änderung in der Combo reagieren soll gehört er auch in die Combo.
Normalerweise, wenn die Änderung in einem Userform eine Änderung in einem Blatt vornimmt, sollte man selbige auch sofort sehen können.
Ausnahmen bestätigen natürlich die Regel. Es sei denn z.B., man hat Application.ScreenUpdating=False irgendwo eingebaut. Dann sieht man es erst, wenn man es wieder auf True setzt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Maria 6
Top
#25
Hallo André,
dann lag ich mit meinem Gedanken nicht falsch. Das Application.ScreenUpdating=False und True gesetzt werden muss, das setzte ich bei den gesaamten Fragen, welche Marie bereits gestellt hat, voraus, denn sonst gibt es ja Bildschirmflackern.

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
[-] Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:
  • Maria 6
Top
#26
Hallo ihr beiden

Danke für die Tipps 

Das  Application.ScreenUpdating=False und True hatte ich schon vorher drin am Anfang (False) und Ende (True) 
Habe alles der Reihe nach hin und her ausprobiert aber ohne erfolg, was nur funktioniert bis jetzt hatte ich schon geschrieben.
Top
#27
Hallöchen,

vielleicht kannst Du mal den aktuellen Stand hochladen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#28
Hallo

Wie kann ich diesen Code richtig einkürzen?

Code:
Function CheckTextboxen() As Boolean
    Dim ok As Boolean, arrBox, var
    If ComboBox0.Value = 0 Then BlendeCB ComboBox0.Value
            If ComboBox0.Value = 1 Then
               BlendeCB ComboBox0.Value
               ok = True
               arrBox = Array("txtbPkt1")
        For Each var In arrBox
            If Me.Controls(var).Text = "" Then ok = False: MsgBox var & "Punkte eintragen Bitte!!": Me.Controls(var).SetFocus: Exit For
        Next
        CheckTextboxen = ok
    End If
    If ComboBox0.Value = 2 Then BlendeCB ComboBox0.Value
            If ComboBox0.Value = 2 Then
               BlendeCB ComboBox0.Value
               ok = True
               arrBox = Array("txtbPkt2")
        For Each var In arrBox
            If Me.Controls(var).Text = "" Then ok = False: MsgBox var & "Punkte eintragen Bitte!!": Me.Controls(var).SetFocus: Exit For
        Next
        CheckTextboxen = ok
    End If
    If ComboBox0.Value = 3 Then BlendeCB ComboBox0.Value
            If ComboBox0.Value = 3 Then
               BlendeCB ComboBox0.Value
               ok = True
               arrBox = Array("txtbPkt3")
        For Each var In arrBox
            If Me.Controls(var).Text = "" Then ok = False: MsgBox var & "Punkte eintragen Bitte!!": Me.Controls(var).SetFocus: Exit For
        Next
        CheckTextboxen = ok
    End If
End Function
Top
#29
Hallöchen,

warum machst Du z.B. die Prüfungen der CB und die Aufrufe BlendeCB doppelt?

If ComboBox0.Value = 2 Then BlendeCB ComboBox0.Value
If ComboBox0.Value = 2 Then
BlendeCB ComboBox0.Value

und nicht einfach

If ComboBox0.Value = 3 Then
BlendeCB ComboBox0.Value


Warum nimmst Du hier ein Array

arrBox = Array("txtbPkt1")

und keinen String?

...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste