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

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
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Essai.xlsm
    16.7 KB · Affichages: 1

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • seby93- La belle textbox- v1.xlsm
    19.8 KB · Affichages: 5
  • seby93-Propriétés TextBox1.png
    52.7 KB · Affichages: 5

mapomme

XLDnaute Barbatruc
Supporter XLD
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.
 

Discussions similaires

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