Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/10/2011, 20h44   #1
 
Inscription : septembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 4
Points : -4
Points : -4
Par défaut macro couleur sans sélection cellule

Bonjour,

J'utilise une macro qui colore des cellules en fonction du texte.
Mon soucis est que le texte des cellules a colorer change par liaison par une saisie sur une autre feuille.....Bref je ne sélectionne pas de cellule et donc sans selection ma macro ne fonctionne pas (grrrrrrrr!!!!)
Comment pourrait on faire pour que la macro s'execute automatiquement dès que le texte change dans la cellule (J'insiste sur le fait que le texte change par liaison et que les cellule ne sont donc pas actives)

Un grand merci d'avance pour ceux qui m'apporteront la solution .

Voici ma macro ci dessous :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim i As Integer, j As Long, Mfc As FormatCondition, c As Range, Ws1 As Worksheet
    On Error GoTo fin ' en cas de mauvaise manipulation, ça plante sur l'ordre suivant
    Application.EnableEvents = False
    Set Ws1 = Sheets("MFC")
    For i = 1 To Target.FormatConditions.Count
        Set Mfc = Target.FormatConditions(i)
        If UCase(Left(Mfc.Formula1, 7)) = "=MA_MFC" Then
            Ws1.Range("A1").Value = Target.Value
            Set c = Nothing
            For j = 2 To Ws1.Range("A65536").End(xlUp).Row
                If Ws1.Range("A" & j) = True Then
                    Set c = Ws1.Range("A" & j)
                    Exit For
                End If
            Next j
            If c Is Nothing Then Set c = Ws1.Range("A1")
            c.Copy
            Target.PasteSpecial (xlPasteFormats)
            Application.CutCopyMode = False
        End If
    Next i
    Application.EnableEvents = True
fin:
    On Error GoTo 0
End Sub
diabolo162 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 20h52   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonsoir
Essaies avec l'évènement Calculate à la place de SelectionChange (à gérer avec précaution)
Code :
Private Sub Worksheet_Calculate()
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/10/2011, 21h48   #3
 
Inscription : septembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 4
Points : -4
Points : -4
Je viens de faire le remplacement mais ca ne fonctionne pas!!!! il faut certainement faire quelques modif dans la macro non?
diabolo162 est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 20/10/2011, 22h13   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
J'ai pu ouvrir ton fichier et c'est déconseillé d'utiliser le Calculate pour ton fichier (ça va prendre un temps fou)
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/10/2011, 22h59   #5
 
Inscription : septembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 4
Points : -4
Points : -4
ok merci de ton conseil mais ca ne me fait pas avancer le schmilblick...
diabolo162 est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 25/10/2011, 16h14   #6
 
Inscription : septembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 4
Points : -4
Points : -4
Une petite aide SVP??
diabolo162 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h40.


 
 
 
 
Partenaires

Hébergement Web