Bonjour à tous,
Chez moi sur Win 11 Excel 2019 la macro Private Sub t_été_Change() est parfaitement acceptée.
Que la TextBox soit dans une feuille ou dans un UserForm.
Curieux qu'il y ait problème sur 365.
A+
oui j'ai un userfrom et j'ai un bouton dedans voici le code
Private Sub CommandButton4_Click()
' Vérifie si TextBox1, ComboBox1 et ComboBox2 sont remplis
If TextBox1.Text = "" Or ComboBox1.value = "" Or ComboBox2.value = "" Then
MsgBox "VOUS DEVEZ REMPLIR LES CHAMPS AVEC *.", vbExclamation, "CHAMPS MANQUANTS"
Exit Sub
End If
' Débloquer les pages 2 et 3
MultiPage1.Pages(1).Enabled = True ' Page 2
MultiPage1.Pages(2).Enabled = True ' Page 3
' Ouvrir la page 2
MultiPage1.value = 1
' Appeler la procédure de mise à jour de l'UserForm
Call RefreshUserForm
' Initialiser la ProgressBar
ProgressBar1.Min = 0
ProgressBar1.Max = 100
ProgressBar1.value = 0
' Boucle de progression avec l'API Sleep pour ajouter un délai
Dim i As Integer
For i = 1 To 100
ProgressBar1.value = i
Label27.Caption = "CALCUL EN COURS...: " & i & "%"
DoEvents ' Permet à l'interface de se rafraîchir
Sleep 10 ' Délai de 10 millisecondes pour accélérer légèrement
Next i
' Mettre à jour le Label pour indiquer que le calcul est terminé
Label27.Caption = "OPERATION REUSSIE"
' Construire le message pour Label43
Dim message As String
Dim valeurH9 As Double
Dim label24Value As Double
Dim label26Value As Double
' Initialiser les valeurs par défaut
valeurH9 = 0
label24Value = 0
label26Value = 0
' Récupérer la valeur de Sheets("BD").Range("H9") et gérer les erreurs
On Error Resume Next
valeurH9 = CDbl(Sheets("BD").Range("H9").value)
On Error GoTo 0
' Récupérer et formater les valeurs des labels
If IsNumeric(Label24.Caption) Then
label24Value = CDbl(Label24.Caption)
' Si la valeur de Label24 est négative, ne rien afficher
If label24Value < 0 Then
Label24.Caption = ""
Else
Label24.Caption = Format(label24Value, "#,##0") ' Formater la valeur pour Label24
End If
End If
If IsNumeric(Label26.Caption) Then
label26Value = CDbl(Label26.Caption)
' Si la valeur de Label26 est négative, ne rien afficher
If label26Value < 0 Then
Label26.Caption = ""
Else
Label26.Caption = Format(label26Value, "#,##0") ' Formater la valeur pour Label26
End If
End If
' Vérifier si les deux valeurs sont négatives
If label24Value < 0 And label26Value < 0 Then
Label43.Caption = "OUPS! AVEZ-VOUS VERIFIE VOS DONNEES ? IL FAUT RECOMMENCER VOTRE SMED !"
Label43.BackColor = RGB(255, 0, 0) ' Fond rouge
Label43.ForeColor = RGB(255, 255, 255) ' Texte blanc
Else
' Construire le message avec formatage des nombres
message = "IL RESTE A FAIRE " & Format(label24Value, "#,##0") & " SOIT : " & Format(valeurH9, "#,##0") & " BACS DE " & Format(ComboBox2.value, "#,##0")
' Condition pour vérifier si Label26 indique 0
If label26Value = 0 Then
Label26.Visible = False ' Cacher Label26 si sa valeur est 0
Else
message = message & " + REFAIRE " & Label26.Caption & " POUR QUE LE COMPTE SOIT JUSTE. "
Label26.Visible = True ' Rendre Label26 visible sinon
End If
' Mettre à jour le Label43 avec le message construit
Label43.Caption = message
' Réinitialiser le style de Label43 (fond et police par défaut)
Label43.BackColor = RGB(255, 255, 255) ' Fond blanc (ou autre couleur par défaut)
Label43.ForeColor = RGB(0, 0, 0) ' Texte noir (ou autre couleur par défaut)
End If
' Forcer la mise à jour de l'interface utilisateur
DoEvents
' Rendre visibles les autres éléments souhaités
ListBox1.Visible = True
Label24.Visible = True
Label49.Visible = True
MultiPage1.Pages(0).Enabled = False
End Sub