Equivalence de After Update dans les cellules "Sheets"

  • Initiateur de la discussion Initiateur de la discussion néné06
  • 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 !

néné06

XLDnaute Accro
Bonjour
Lorsque j'entre une donnée dans une cellule, je valide.
La cellule active change,puis les procedures Change et Selection Change entres en action.
Existe t'il un moyen ou une procédure qui, permette de traiter cette cellule avant que se soit l'autre cellule qui devienne active et que les routines change et selection change s'exécutent.
En quelque sorte une routine After Update sur les cellules de feuilles Excel.

Merci d'avance.
 
Dernière édition:
Re : Equivalence de After Update dans les cellules "Sheets"

Personne n'a de piste ?

Je peux toujours me rabattre sur ma méthode qui consiste à chaque "selection_change" noter les coordonnées de l'activecell dans une cellule.
Les nouvelle coordonnées dans une autre, revenir sur les anciennes coordonnées, traiter le probléme et revenir aux nouvelles.
Cela me ralentira l'execution du programme.

Avez vous une autre solution ?

A+
 
Re : Equivalence de After Update dans les cellules "Sheets"

Bonsoir,

à ma connaissance rien entre ces 2 événements.... Après voir ce que tu veux exactement... peut être gérer la dernière cellule modifiée via une variable "public"...

bonne soirée
@+
 
Re : Equivalence de After Update dans les cellules "Sheets"

Bonsoir Pierrot93

Je demandai à tout hasard s'il existait une propriété que je ne connaissais ,mais je dois me résoudre.

Je vais donc procéder ,si pas de solution, " à l'ancienne".

Merci pour ton attention.

A+
 
Re : Equivalence de After Update dans les cellules "Sheets"

Salut néné06 et le forum
Pas sûr de comprendre. L'ordre est :
Worksheet_Change => Workbook_SheetChange => Worksheet_SelectionChange => [FONT=&quot]Workbook_SheetSelectionChange
Donc l'évènement Change s'effectue avant que l'évènement SelectionChange n'intervienne.
Mais comme dit Pierrot93 (salut Tigrou) peut-être qu'vec une idée de ce que tu veux faire (et j'espère que ton code n'utilise pas les Selection/Select et Acticell, qui ne servent qu'à ralentir l'exécution d'une macro), on pourra sûrement t'aider.
A+
[/FONT]
 
Re : Equivalence de After Update dans les cellules "Sheets"

bonsoir Gorfael.
J'ai constaté que suite à une entrée, le curseur change de place avant de passer sur les routines Change et Selection_change.
Sur une TB , le focus ne change qu'après exit et j'aurais pensé trouver une instruction qui n'existe donc pas.
 
Re : Equivalence de After Update dans les cellules "Sheets"

Salut néné06 et le forum
Je pense que tu n'as pas bien compris ce qu'on te dit : Pour résoudre un problème donné, tu penses à une solution en fonction de tes connaissances. Ce que tu demandes, c'est une instruction pour résoudre ton problème, en fonction de ce que tu connais. Mais Excel est tellement vaste, qu'il existe peut-être une autre manière de parvenir au même résultat, mais par une méthode que tu ne soupçonnes même pas.

Nous, ce qu'on demande, c'est le point de départ, et le point d'arrivée, avec ce qu'on doit faire pour passer de l'un à l'autre.
Difficile de trouver une analogie.
C'est un peu comme si un habitant du moyen-âge (c'est une image) se trouvait, aujourd'hui, devoir aller de Paris à Nice : il penserait y aller à pieds, peut-être à cheval, bateau ou en charrette. Mais sûrement pas en voiture, train ou avion. Pas parce qu'il est bête, mais simplement parce qu'il ne sait même pas que ça existe.
A+
 
Re : Equivalence de After Update dans les cellules "Sheets"

Bonjour Gorfael, bonjour à tous
Je vais essayer d’être plus clair dans mes explications.
1) Ce que j’ai obtenu .
Un tableau (planning de la semaine).
Si j’ai un texte alphanumérique entrée dans une cellule alors le texte sera centré sur deux colonnes avec fond en jaune.
Si j’ai un horaire entrée sur une cellule alors, l’horaire sera sur fond blanc, bleu clair ou bleu foncé(en fonction de mes alertes).
Après le chargement des horaires de la semaine dans ce tableau, les mises en forme sont affectées aux cellules, non par MFC, mais par programmation (For each cel in Selection …..next cel).
Je n’utilise pas les MFC car je rencontre des problèmes de compatibilité avec les versions Excel antérieur à ma version.
Jusqu'à présent, aucun problème.
2) Mes actions .
J’ai mon planning à l’écran et je procède à des modifications , soit des horaires ,soit des textes.
Je me place sur une cellule contenant du texte que je modifie en horaire.
Aprés l’entrée, cet horaire est centré sur deux colonnes et le curseur se positionne sur la cellule suivante .
3) Ce que j’aimerai.
Je dois procéder à ma mise en forme de la cellule modifié, non par MFC mais par programmation.
J’ai pensé à utiliser les Procédures Change, Selection_Change mais elles ralentissent l’exécution et elles se déclenchent aussi lors du chargement d’une autre semaine.
Voici ma procédure de traitement des couleurs
Public Sub traite_couleurs()
Dim cel As Range
num_dl = Range("B65535").End(xlUp).Row
If num_dl > 5 Then
Range(Cells(6, 5), Cells(num_dl, 18)).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
With Selection
For Each cel In .Cells
a = cel.Row - .Cells(1).Row + 1
b = cel.Column - .Cells(1).Column + 1
If Cells(a + 5, b + 4).Value <> 0 Then
If Not IsNumeric(Cells(a + 5, b + 4)) Then
Range(Cells(a + 5, b + 4), Cells(a + 5, b + 5)).Select
With Selection
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
Cells(a + 5, b + 5).Select
ActiveCell.FormulaR1C1 = ""
Range(Cells(a + 5, b + 4), Cells(a + 5, b + 5)).Interior.ColorIndex = 36
Else
If Cells(a + 5, b + 4).Value <= 0.28125 Then Cells(a + 5, b + 4).Interior.ColorIndex = 17
If Cells(a + 5, b + 4).Value >= 0.8958333 Then Cells(a + 5, b + 4).Interior.ColorIndex = 8
End If
Else
If Not IsNumeric(Cells(a + 5, b + 3)) Then
Else
Cells(a + 5, b + 4).Interior.ColorIndex = 0
End If
End If
Next
End With
Cells(Sheets("Feuil2").Cells(23, 6), Sheets("Feuil2").Cells(24, 6)).Select
End If
End Sub

Quel solution aborder ?

D’avance merci !!
 
- 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

C
Réponses
4
Affichages
2 K
C
M
Réponses
4
Affichages
2 K
mathieu42400
M
E
Réponses
3
Affichages
6 K
exceldebutante
E
O
Réponses
2
Affichages
1 K
omega7
O
L
Réponses
2
Affichages
1 K
L
M
Réponses
4
Affichages
2 K
M
Retour