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
    seby93-Propriétés TextBox1.png
    52.7 KB · Affichages: 5

TooFatBoy

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

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @TooFatBoy:),
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.
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.
1731587355043.png
 

Discussions similaires

Statistiques des forums

Discussions
314 705
Messages
2 112 070
Membres
111 410
dernier inscrit
yomeiome