Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion tf1
  • 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 !

tf1

XLDnaute Occasionnel
Bonjour,

Qui pourrait me dit SVP comment faire clignoter une cellule.

Par exemple je met un message texte en A1 puis je met B1=A1 et donc B1 clignotera avec le message qui se trouve dedans en rouge si possible et sa tend qu'il y a un message en A1 ....

Merci
 
Re : Clignotement

Bonjour tf1, Ilino,

C'est un sujet rabâché cette histoire de clignotement !

Une solution vite faite :

Code:
Private Sub CommandButton1_Click()
Dim p#, t#
p = 1 'période du clignotement en secondes
With CommandButton1
  If .Caption = "Lancer" Then
    .Caption = "Arrêter"
1   t = Timer
    While Timer < t + p / 2: DoEvents: Wend
    If IsError([MFC]) Then ThisWorkbook.Names.Add "MFC", True _
      Else ThisWorkbook.Names("MFC").Delete
    GoTo 1
  Else
    .Caption = "Lancer"
    On Error Resume Next
    ThisWorkbook.Names("MFC").Delete
    End
  End If
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

Re : Clignotement

ok merci de t'as reponse

mais je souhaite que le texte soit en A1 je doit changer quoi stp
de plus je ne veut pas de macro "lancer" sa doit clignoter tout le temps

merci
 
Re : Clignotement

Bonjour à tous, salut job75 😉


tf1
C'est quand que tu mets les mains dans le cambouis?
Tu n'as pas envie de farfouiller un peu dans VBE, de tester par toi-même?
Tu sembles attendre du tout cuit, non ?
(N'oublies pas la loupe 😉)

PS: Comme le dit job75, ce sujet a été multi-traité sur le forum.
Les archives sont pleines de cellules qui clignotent à tout va, que ça en fait mal aux yeux 😉
 
Dernière édition:
Re : Clignotement

Bonjour le fil, le forum,

Oui Staple, tf1 doit utiliser des mouchoirs en dentelles.

Il y a 36 moyens de lancer la macro, en voici 4 :

Code:
Private Sub Workbook_Open()
Application.OnTime Now, "ThisWorkbook.Lancer"
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Lancer
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
Lancer
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Lancer
End Sub

Sub Lancer()
Dim p#, t#
p = 1 'période du clignotement en secondes
If [A1] = Date Then
1 t = Timer
  While Timer < t + p / 2: DoEvents: Wend
  If IsError([MFC]) Then ThisWorkbook.Names.Add "MFC", True _
    Else ThisWorkbook.Names("MFC").Delete
  GoTo 1
Else
  On Error Resume Next
  ThisWorkbook.Names("MFC").Delete
  End
End If
End Sub
Fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re : Clignotement

Re,

Souvent on cherche à mettre en évidence les doublons.

Fichier (3).

Edit : si le UsedRange est très grand la lecture de la propriété .Text prend beaucoup de temps.

Il vaut mieux l'éviter ou utiliser CStr :

Code:
If CStr(c) <> "" And d.Exists(c.Value) Then
Fichier (3 bis).

A+
 

Pièces jointes

Dernière édition:
Re : Clignotement

Bonjour à tous,

Sur un grand tableau l'utilisation de tablo accélère beaucoup la recherche des doublons :

Code:
Sub Lancer()
Dim p#, d As Object, tablo, e, doublon As Boolean, t#
p = 1 'période du clignotement en secondes
If Me.UsedRange.Count > 1 Then
  Set d = CreateObject("Scripting.Dictionary")
  tablo = Me.UsedRange 'matrice, plus rapide
  For Each e In tablo
    If CStr(e) <> "" And d.Exists(e) Then doublon = True: Exit For
    d(e) = ""
  Next
End If
If doublon Then
1 t = Timer
  While Timer < t + p / 2: DoEvents: Wend
  If IsError([UR]) Then Me.UsedRange.Name = "UR" _
    Else ThisWorkbook.Names("UR").Delete
  GoTo 1
Else
  On Error Resume Next
  ThisWorkbook.Names("UR").Delete
    End
End If
End Sub
Fichier (4).

A+
 

Pièces jointes

Re : Clignotement

Re,

En utilisant d(e) à la place de d.Exists(e) c'est encore un peu plus rapide :

Code:
Sub Lancer()
Dim p#, d As Object, tablo, e, doublon As Boolean, t#
p = 1 'période du clignotement en secondes
If Me.UsedRange.Count > 1 Then
  Set d = CreateObject("Scripting.Dictionary")
  tablo = Me.UsedRange 'matrice, plus rapide
  For Each e In tablo
    If CStr(e) <> "" And d(e) Then doublon = True: Exit For
    d(e) = True
  Next
End If
If doublon Then
1 t = Timer
  While Timer < t + p / 2: DoEvents: Wend
  If IsError([UR]) Then Me.UsedRange.Name = "UR" _
    Else ThisWorkbook.Names("UR").Delete
  GoTo 1
Else
  On Error Resume Next
  ThisWorkbook.Names("UR").Delete
  End
End If
End Sub
Fichier (5).

A+
 

Pièces jointes

- 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

Réponses
5
Affichages
624
W
Réponses
4
Affichages
209
Réponses
17
Affichages
712
Réponses
19
Affichages
750
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…