XL 2013 Différence entre une entrée manuelle ou automatique grâce au VBA

degards

XLDnaute Occasionnel
Bonjour à vous !!!

Petite question technique pour vous, est-il possible qu’Excel soit en mesure de savoir si une cellule est remplie suite à un code VBA ou une entrée manuelle. Par exemple, dans ma feuille les cellules A3 à A10 sont remplis des numéros d’employé qui seront au travail, j’ai conçu un code à cet effet. Par contre, comme l’équipe n’est pas complète, il me faut 2 autres employés en temps supplémentaires pour les cellules A11 et A12. Lorsque je vais taper les numéros d’employés dans ces cellules j’aimerais qu’elle deviennent jaune. Est-ce qu’excel est en mesure de faire la différence ? Il peut arrivé que selon l’horaire, les cellules A11 et A12 se remplissent automatiquement car j’ai tout mon personnels.

Merci à l’avance
Degards
 

degards

XLDnaute Occasionnel
Re,

La MFC n'est là que pour calculer une condition (VRAI/FAUX) donc peut importe si c'est saisi manuellement ou inscrit via un code, le calcul se fera au bout

A+
Merci quand même, il est vrai que sans fichier c’est un peu plus compliqué de comprendre. Je vais ajouter un fichier sous peu et cela va sûrement aider à recevoir des solutions.
 

job75

XLDnaute Barbatruc
Bonsoir degards, Bruno,

Pourquoi parler de MFC ? Voyez le fichier joint qui applique les couleurs de fond avec ces codes :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, [A:A])
If Target Is Nothing Then Exit Sub
Target.Interior.ColorIndex = xlNone 'RAZ
On Error Resume Next 'si aucune SpecialCell
If Target.Count > 1 Then Target.SpecialCells(xlCellTypeConstants).Interior.Color = [D2].Interior.Color _
    Else If Target <> "" Then Target.Interior.Color = [D2].Interior.Color
End Sub

Sub EntreeAutomatique() 'bouton Entrée
Dim Target As Range
ActiveCell.Activate 'si Selection n'est pas un Range
Set Target = Intersect(Selection, [A:A])
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
Target = Application.RandBetween(1, 1000) 'entrées quelconques
Application.EnableEvents = True 'réactive les évènements
Target.Interior.ColorIndex = xlNone 'RAZ
On Error Resume Next 'si aucune SpecialCell
If Target.Count > 1 Then Target.SpecialCells(xlCellTypeConstants).Interior.Color = [D3].Interior.Color _
    Else If Target <> "" Then Target.Interior.Color = [D3].Interior.Color
End Sub
A+
 

Pièces jointes

  • Entrées(1).xlsm
    18.6 KB · Affichages: 0

Statistiques des forums

Discussions
314 634
Messages
2 111 430
Membres
111 134
dernier inscrit
sem698