Cellule coloriée si reactivé
Résolueric2027 -
par avance merci
Éric
- Cellule coloriée si reactivé
- Excel cellule couleur si condition texte - Guide
- Proteger cellule excel - Guide
- Excel somme si couleur cellule - Guide
- Aller à la ligne dans une cellule excel - Guide
- Si une cellule contient un mot alors ✓ - Forum Excel
99 réponses
Le problème posé est que pour colorer une cellule en rouge après deux modifications de son contenu, une cellule ne peut pas tester son propre contenu et influencer son format via une simple formule.
La solution générale consiste à sauvegarder le contenu précédent et à compter les modifications à l’aide de deux cellules de sauvegarde ou d’un compteur, afin de déterminer si une deuxième modification a eu lieu.
Comme une formule seule ne peut effectuer ces sauvegardes ou compter les changements, il faut recourir à une macro qui effectue les sauvegardes et le comptage et qui déclenche le test via un événement ou manuellement.
Des approches alternatives évoquées prévoient d’utiliser des tests conditionnels (IF/ET/OFFSET) couplés à des calculs de somme pour piloter le déclenchement, mais nécessitent tout de même une infrastructure de suivi des modifications.
j'ai oublié de préciser que la valeur c42 du 1er classeur doit se retrouver en b8 sur le 2ème classeur
@+ Éric
j'ai un souci, quand je copie la macro dans janvier, il me donne comme un message ' erreur d'exécution '1004'
erreur définie par l'application ou par l'objet
je t'envois ce que j'ai fait
Private Sub Workbook_Open()
Dim chemin As String
chemin = "'" & ThisWorkbook.Path & "\\"
Range("C42") = ExecuteExcel4Macro(chemin & "\\Décembre.xls'!c42")
Call StopClign
Call Clign
End Sub
sur le mois de Décembre, j'ai fait
Private Sub Workbook_Open()
Call StopClign
Call Clign
End Sub
j'ai bo faire des tests et des tests mais j'ai toujours ce message
c ou que je me suis trompé
Éric
ensuite ouvre le fichier deuxième fichier et remplace le code comme je te l'ai également expliqué par celui ci que j'ai actualisé (cellule B8 du 2éme fichier est égale à C42 du premier fichier)
Private Sub Workbook_Open()
Dim chemin As String
chemin = "'" & ThisWorkbook.Path & "\\"
Range("B8") = ExecuteExcel4Macro(chemin & "\\Décembre.xls'!source")
Call StopClign
Call Clign
End Sub
j'ai fait ce que tu m'as dit et j'ai le même message, voila ce que j'ai fait
momn code source est " eric"
Private Sub Workbook_Open()
Dim chemin As String
chemin = "'" & ThisWorkbook.Path & "\\"
Range("B8") = ExecuteExcel4Macro(chemin & "\\Décembre.xls'!eric")
Call StopClign
Call Clign
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionsans voir ta configuration et éviter les erreurs, on va le faire par formule
remet le code qui va bien comme il était
Private Sub Workbook_Open()
Call StopClign
Call Clign
End Sub
ensuite ouvre les deux fichiers, pointe la cellule C42 et Edition/Copier
pointe la cellule B8 sur le deuxième fichier Edition/Collage Spécial clic sur Avec Liaison et Ok
A chaque ouverture du deuxième fichier mettre à jour les liaisons
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
super ça fonctionne, j'ai une dernière question à te poser "est il possible de mettre en grisé annulé quand tu veux enregistrer sous ou enregistrer, ou encore enregistrer automatiquement dès que l'on fait une manip sur le fichier, c a d que quand on rouvre le fichuer, ce dernier apparaisse avec les nouvelles modifs
merci pour la solution que tu as trouvé
Éric
Désactiver la touche Annuler est dangereux pour les utilisations futures, mais il est possible d'activer un enregistrement automatique suivant critère sous VBA, soit lorsqu'on change des valeurs dans des cellules bien précise ou losque qu'on déplace la cellule active etc ... ou à la fermeture du fichier sans que l'on ai à répondre par oui ou non voulez vous enregistrer les modifictions apportées ...
ok pour la 2ème solution
activer un enregistrement automatique suivant critère sous VBA, soit lorsqu'on change des valeurs dans des cellules bien précise ou lorsque qu'on déplace la cellule active etc ... ou à la fermeture du fichier sans que l'on ai à répondre par oui ou non voulez vous enregistrer les modifications apportées ...
Éric
Ou lorsqu'on se déplace sur la feuille ce qui sera contraignant avec des enregistrement permanant
Ou lorsqu'on ferme le fichier
et sur quel fichier, celui sur lequel nous avons travaillé
sur le fichier lequel nous avons travailler
Éric
Dans le module Visual Basic (clic droit sur un onglet de feuille/Visualiser le code)
double clic sur Thiswokwook ou clic et Entrée
tu trouveras ce code, ajoute la ligne en gras ActiveWorkbook.Save
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Not Intersect([B9:B39,C9:C39,D9:D39,E9:E39,F9:F39,G9:G39], Target) Is Nothing Then
Target.Offset(0, 9) = Target.Offset(0, 9) + 1
If Target.Offset(0, 9) >= 2 Then
Target.Interior.ColorIndex = 38
If Target = "" Then
Target.Offset(0, 9) = ""
Target.Interior.ColorIndex = xlNone
End If
End If
End If
Call Protection_Cellule_Couleur
Call StopClign
Call Clign
ActiveWorkbook.Save
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
cool ça fonctionne par contre sur mes 2 feuilles "décembre, janvier" quand je rentre une donnée en b40 decembre et j'enregistre et que je veux ouvrir janvier, il me demande de mettre ou non a jour, est il possible de ne pas avoir ce message et que ça se mette à jour automatiquement
Éric
un autre petit souci, je voudrais qu'en cellule c42, il y ai un décompte d'heure ne pouvant aller au dessus de 30 et bloquer cette cellule à 30 maxi
Éric
Qu'as tu en C42, une formule de calcul exemple =somme(C9:C40) ou tu saisis les données manuellement
en c41, je ne dois pas dépasser 25, si ça dépasse 25 le surplus va en c2 d'ou la formule
=B40:E40-C41 qui me donne la différence en c42
mais en ce c42 je voudrais une formule qui me permette d'aller jusqu'à 30 et bloquer à 30, même si il y a plus
Éric
en B40 j'ai cette formule =SOMME(B9:B39)
rien en C40 ni D40, D40 et E40 !
en B41 j'ai =SOMME(B10:B40) (même formule qu'en B40 seulement un décalage d'une cellule dans ce calcul la cellule B40 est additionnée deux fois bizarre !
tu peux remettre un fichier avec tes formules sur un post
en effet j'ai essayé d'améliorer mon fichier de base, je oublié de te l'écrire, aussi je t'envoie mon nouveau fichier sur cjoint
eric
ah oui pour le 2ème dial, vu que le 1er était résolu, j'ai pensé que je n'avais plus accès à la discution, et comme je ne savais comment te contacté autre que sur un autre post, j'en fait un autre
Éric
ensuite clic sur ce lien
https://www.cjoint.com/
clic sur Parcourir pour sélectionner ton fichier
Clic sur créer le lien
mets en surbrillance le lien bleu généré en haut de la page, clic droit dessus/copier
vas sur le post que tu veux m'envoyer et clic droit coller