XL 2016 problème d'accent dans vba (à, é, è,...)

chinel

XLDnaute Impliqué
Bonjour tout le monde, j'ai un programme en vba et j'ai un soucis avec les accents qui se transforme en triangle. Dans ma version Excel 2016 pas de soucis mais au boulot avec Office 365 c'est un problème. Pouvez-vous m'aider ? Merci d'avance !
 

chinel

XLDnaute Impliqué
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
 

chinel

XLDnaute Impliqué
VB:
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
 

patricktoulon

XLDnaute Barbatruc
bonsoir à tous
pour information
vba dans le bin du classeur est encodé
en 1552(Ansi) sur 2007,2010,2013,2016,2019
en utf-8 sur 2016 dans 365 , 2021 , 2024(b)
2011 et 2016 sur Mac
nous avons travaillé ryuautodidacte et moi sur le ribbon creator for mac
et nous avons constaté ce fait
sur Mac contrairement a Windows même les commentaires et le texte dans les msgbox ( dans les guillemets) subissent le truc

amis du soir bonsoir ;)
 

jurassic pork

XLDnaute Occasionnel
Hello Chinel,
on peut tourner en rond très longtemps, si tu ne fournis pas plus d'informations concernant le problème :
1 - On a toujours pas de capture d'écran montrant où se situe le problème.
2 - Justement où se situe le problème ? à l'affichage d'un formulaire ? si oui dans quel contrôle ? Qu'est-ce qui est envoyé dans ce contrôle (code) ? le code source VBA est-il bien affiché dans toutes les versions d'Excel (pas de problèmes d'accents dans le code source ) ?
Ami calmant, J.P
 

chinel

XLDnaute Impliqué
Hello Chinel,
on peut tourner en rond très longtemps, si tu ne fournis pas plus d'informations concernant le problème :
1 - On a toujours pas de capture d'écran montrant où se situe le problème.
2 - Justement où se situe le problème ? à l'affichage d'un formulaire ? si oui dans quel contrôle ? Qu'est-ce qui est envoyé dans ce contrôle (code) ? le code source VBA est-il bien affiché dans toutes les versions d'Excel (pas de problèmes d'accents dans le code source ) ?
Ami calmant,
 

chinel

XLDnaute Impliqué
Bonjour tout le monde, je répète que mon problème apparait sur Excel 365 donc comme je ne dispose pas de cette version chez moi, je pourrai fournir les preuves d'erreurs seulement lundi quand je serai au boulot. Ce sont les labels caption qui posent problème. Le problème est que si je mets par exemple: Label27.Caption = "Opération réussie" avec mon excel (2016) pas de soucis mais si je mets mon programme sue excel 365 j'ai "Op▲ration r▲ussie" . A luundi pour des captures d'écran. Bon week-end à vous !
 

Statistiques des forums

Discussions
313 913
Messages
2 103 512
Membres
108 685
dernier inscrit
BAAK