Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Actualiser un label dans un USF en permanence depuis une feuille excel

  • Initiateur de la discussion Initiateur de la discussion seby93
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

seby93

XLDnaute Nouveau
bonjour,

je cherche à faire un petit programme tout simple mais je suis débutant en VBA.

j'ai un USF avec un label (Label1) qui est visible en permanence sur un deuxième écran.

j'aimerais que, quand par exemple je note le no "1" dans ma cellule "A1" que mon label1 s'actualise en permanence sur mon deuxième écran. Donc mon label1 devra indiquer le no "1" et si possible que mon label s'affiche en vert dès qu'il y a une valeur (en arrière plan).

merci pour vos réponses
 
Bonsoir Seby,
Avec un petit fichier test, la réponse eût été plus précise.
En PJ un essai avec dans Thisworkbook pour l'init de l'userform :
VB:
Private Sub Workbook_Open()
    If [A1] = "" Then
        UserForm1.Label1 = "?"
        UserForm1.Label1.TextAlign = 2
        UserForm1.Label1.BackColor = vbRed
        UserForm1.Label1.ForeColor = vbWhite
    Else
        UserForm1.Label1 = "N°" & [A1]
        UserForm1.Label1.TextAlign = 2
        UserForm1.Label1.BackColor = vbGreen
        UserForm1.Label1.ForeColor = vbBlack
    End If
    UserForm1.Show 0
End Sub
et en feuille 1 pour la gestion :
Code:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A1]) Is Nothing Then
        If Target = "" Then
            UserForm1.Label1 = "?"                  ' Texte
            UserForm1.Label1.BackColor = vbRed      ' Couleur de fonc
            UserForm1.Label1.ForeColor = vbWhite    ' Couleur caractères
        Else
            UserForm1.Label1 = "N°" & Target
            UserForm1.Label1.BackColor = vbGreen
            UserForm1.Label1.ForeColor = vbBlack
        End If
    End If
Fin:
Application.ScreenUpdating = True
End Sub

Il suffit de modifier la valeur en A1 pour modifier l'userform.
Si A1 est vide le label se met en rouge.
 

Pièces jointes

Bonsoir à tous 🙂,

On abandonne le label. On le remplace par un textbox à qui :
  • on va donner l'apparence d'un label
  • on va affecter "A1" à la propriété "ControlSource". Ainsi le textbox1 aura toujours la valeur de la cellule A1 sans programmation
  • l'évènement "change "de la textbox détermine la couleur
En pièces jointes le classeur démo et les propriétés de la textbox1.

Le code du userform1 :
VB:
Private Sub TextBox1_Change()
   If TextBox1 <> "" Then
      TextBox1.BackStyle = fmBackStyleOpaque
      TextBox1.BackColor = &HC0FFC0    'vbGreen
   Else
      TextBox1.BackStyle = fmBackStyleTransparent
   End If
End Sub

Private Sub UserForm_Initialize()
   TextBox1_Change
End Sub
 

Pièces jointes

Bonjour,

Avec un petit fichier test, la réponse eût été plus précise.
Ledit fichier est dans son fil de discussion précédent. 😉

Mais je crois que le problème est plus important que ça où il faut intercepter le changement de valeur dans une colonne.
À mon avis c'est tout le concept qu'il faut revoir pour que le fichier soit beaucoup plus simple à utiliser.
 
Bonjour @TooFatBoy🙂,
S'il faut parcourir tous les messages de @seby93 pour :
  • disposer d'un fichier
  • interpréter correctement la question
alors autant consulter ma voyante Mme IRMA.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…