Alerte Excel
Résolu/Fermé
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
-
14 mars 2011 à 14:16
zizou026 - 10 mai 2011 à 13:00
zizou026 - 10 mai 2011 à 13:00
A voir également:
- Alerte Excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Fausse alerte mcafee - Accueil - Piratage
- Word et excel gratuit - Guide
16 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 mars 2011 à 18:00
14 mars 2011 à 18:00
Re,
Voici une macro pour la feuille 1 (à adapter).
La feuille 2 est réservée pour copier les valeurs précédentes des liaisons.
Elle peut être masquée (veryhidden)
Les valeurs qui ont changé sont colorée en jaune (elles restent jaune, à changer manuellement).
Voici une macro pour la feuille 1 (à adapter).
La feuille 2 est réservée pour copier les valeurs précédentes des liaisons.
Elle peut être masquée (veryhidden)
Les valeurs qui ont changé sont colorée en jaune (elles restent jaune, à changer manuellement).
Option Explicit Private Sub Worksheet_Calculate() Call AlerteLiaison End Sub Private Sub AlerteLiaison() Const jaune As Integer = 6 Dim cel As Range Dim org As Range Dim Liaisons As Variant Dim Liaison As String Dim ctr As Integer Dim ptr As Integer Liaisons = ThisWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(Liaisons) Then For ctr = 1 To UBound(Liaisons) Liaison = Liaisons(ctr) ptr = InStrRev(Liaison, "\") Liaison = Left(Liaison, ptr) & "[" & Mid(Liaison, ptr + 1) & "]" Set cel = Worksheets(1).Cells.Find(Liaison, , xlFormulas, xlPart) Set org = cel Do If cel Is Nothing Then Exit Do If cel.Value <> Worksheets(2).Range(cel.Address).Value Then Worksheets(2).Range(cel.Address).Value = cel.Value cel.Interior.ColorIndex = jaune End If Set cel = Worksheets(1).Cells.FindNext(cel) If cel.Address = org.Address Then Exit Do Loop Next ctr End If End Sub
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié par Patrice33740 le 15/03/2011 à 22:03
Modifié par Patrice33740 le 15/03/2011 à 22:03
Re,
http://www.cijoint.fr/cjlink.php?file=cj201103/cijg3Ep9IF.xls
Cordialement
Patrice
http://www.cijoint.fr/cjlink.php?file=cj201103/cijg3Ep9IF.xls
Cordialement
Patrice
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
8 mai 2011 à 20:14
8 mai 2011 à 20:14
Bonjour,
Si je comprends bien, tu voudrais effacer la couleur d'alerte quand tu fermes le classeur.
Il faut ajouter une macro EffaceAlertes dans le module :
Il suffit d'ajouter l'appel à la macro dans l'évènement BeforeClose du classeur:
Tu peux aussi ajouter un bouton :
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj201105/cijIqQ7s09.xls
Si je comprends bien, tu voudrais effacer la couleur d'alerte quand tu fermes le classeur.
Il faut ajouter une macro EffaceAlertes dans le module :
Public Sub EffaceAlertes() Const aucune As Integer = xlNone Dim cel As Range Dim org As Range Dim Liaisons As Variant Dim Liaison As String Dim ctr As Integer Dim ptr As Integer Liaisons = ThisWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(Liaisons) Then For ctr = 1 To UBound(Liaisons) Liaison = Liaisons(ctr) ptr = InStrRev(Liaison, "\") Liaison = Left(Liaison, ptr) & "[" & Mid(Liaison, ptr + 1) & "]" Set cel = Worksheets(1).Cells.Find(Liaison, , xlFormulas, xlPart) Set org = cel Do If cel Is Nothing Then Exit Do If cel.Value = Worksheets(2).Range(cel.Address).Value Then cel.Interior.ColorIndex = aucune End If Set cel = Worksheets(1).Cells.FindNext(cel) If cel.Address = org.Address Then Exit Do Loop Next ctr End If End Sub
Il suffit d'ajouter l'appel à la macro dans l'évènement BeforeClose du classeur:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Call EffaceAlertes End Sub
Tu peux aussi ajouter un bouton :
Private Sub btnEffaceAlertes_Click() Call EffaceAlertes End Sub
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj201105/cijIqQ7s09.xls
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
9 mai 2011 à 19:49
9 mai 2011 à 19:49
Bonjour,
Tu peux essayer l'autoformation pour apprendre le VBA.
La route est longue mais de nombreux Tutos permettent de commencer :
LE B.A-BA DE LA PROGRAMMATION
Novice en développement
VBA pour Excel
Astuces et code VBA pour Excel
Exemples de macros VBAXL
PROGRAMMATION VBA et XLL
espace personnel de SilkyRoad
Bon courage
Tu peux essayer l'autoformation pour apprendre le VBA.
La route est longue mais de nombreux Tutos permettent de commencer :
LE B.A-BA DE LA PROGRAMMATION
Novice en développement
VBA pour Excel
Astuces et code VBA pour Excel
Exemples de macros VBAXL
PROGRAMMATION VBA et XLL
espace personnel de SilkyRoad
Bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 mars 2011 à 14:42
14 mars 2011 à 14:42
Oui
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
14 mars 2011 à 14:46
14 mars 2011 à 14:46
Quelle est la procédure? Merci
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 mars 2011 à 16:04
14 mars 2011 à 16:04
C'est possible avec une macro, mais ce n'est pas aussi simple que ça.
Plusieurs méthodes sont envisageables selon la quantité de liaisons externes.
Plusieurs méthodes sont envisageables selon la quantité de liaisons externes.
Bonjour Patrice33740, merci de votre aide ce que vous avez fait est trop génial. La formule c'est du chinois pour moi MAIS ELLE FONCTIONNE. Comme il y a pas mal de macro sur mes classeurs, je ne sais pas où les placés. Encore une fois merci de votre aide et je vous souhaite une très bonne journée. Cordialement, Zizou026
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 mars 2011 à 14:18
15 mars 2011 à 14:18
Bonjour,
Il faut placer cette macro dans la feuille 1 : Clic droit sur l'onglet de la feuille / visualiser le code.
Si la macro Worksheet_Calculate() n'existait pas déjà, pas de problème, il suffit d'ajouter la code ci-dessus à la suite des macros existantes, sauf Option Explicit qui doit se trouver au tout début, avant les macros existantes (il devrait déjà y être déjà).
Si la macro Worksheet_Calculate() existe déjà, il ne faut surtout pas ajouter une seconde copie, il suffit alors d'ajouter à l'intérieur de la macro existante, au début, la ligne :
et d'ajouter uniquement le code de AlerteLiaison depuis :
Private Sub AlerteLiaison()
jusqu'à
End Sub
Il faut placer cette macro dans la feuille 1 : Clic droit sur l'onglet de la feuille / visualiser le code.
Si la macro Worksheet_Calculate() n'existait pas déjà, pas de problème, il suffit d'ajouter la code ci-dessus à la suite des macros existantes, sauf Option Explicit qui doit se trouver au tout début, avant les macros existantes (il devrait déjà y être déjà).
Si la macro Worksheet_Calculate() existe déjà, il ne faut surtout pas ajouter une seconde copie, il suffit alors d'ajouter à l'intérieur de la macro existante, au début, la ligne :
Call AlerteLiaison
et d'ajouter uniquement le code de AlerteLiaison depuis :
Private Sub AlerteLiaison()
jusqu'à
End Sub
Bonsoir et encore une fois merci de votre aide. Pour que ça soit plus simple est il possible d'appliquer votre formule à un bouton de commande?
Voir fichier : http://www.cijoint.fr/cjlink.php?file=cj201103/cijH0owR0l.xls
Je vous souhaite une excellente soirée. Cordialement Zizou
Voir fichier : http://www.cijoint.fr/cjlink.php?file=cj201103/cijH0owR0l.xls
Je vous souhaite une excellente soirée. Cordialement Zizou
Bonjour Patrice33740, excusez moi de ma réponse tardive infiniment merci de votre aide et je vous souhaite un très bon weekend. Cordialement Zizou
P.S:Simplement génial ce que vous arrivez à faire magicien (Excel)
P.S:Simplement génial ce que vous arrivez à faire magicien (Excel)
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
19 mars 2011 à 10:00
19 mars 2011 à 10:00
De rien, ça n'a rien de magique, au plaisir de te relire sur le forum
Bon Week-End
Bon Week-End
zizou026
Messages postés
101
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
20 novembre 2024
1
6 mai 2011 à 21:47
6 mai 2011 à 21:47
Bonsoir Patrice33740, je reviens vers toi pour un autre problème dans le même classeur. TOUT D'ABORD JE TE REMERCIE. Ta formule fonctionne à merveille, j'aimerai savoir, une fois que l'alerte se déclenche est il possible? de réinitialisé le classeur à l'enregistrement de celui-ci (bien entendu que l'alerte reste active lors de l'ouverture du classeur. Par avance merci de ton aide et je te souhaite une bonne soirée. Cordialement, Zizou
Bonjour Patrice...Franchement tu es trop fort, c'est exactement ce que je voulais (je l'ai adapté à mes besoins). GRAND MERCI à toi. Ta formule c'est du chinois pour moi, mais j'essaie de comprendre...je pense que je vais me faire un noeud dans mon cerveau. ENCORE ET ENCORE MERCI À TOI GRAND PATRICE. C'est quoi la formation pour faire des macros? Bonne journée à toi et bonne continuation.