Bonsoir,
galopin01 avez bien compris le problème sans pour autant aller au bout, je crois.
J'ai repris son principe de clic dans la cellule avec un code événementielle sur la feuille afin de surveiller les cellules comportant le noms des pilotes, soit de B8 à B13, et en écartant la sélection multiple.
Si tel est le cas c'est à dire un clic sur une des cellules de cette plage alors le code suivant est lancé :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B8:B13")) Is Nothing And Target.CountLarge < 2 Then
Call Unique(Target.Value)
End If
End Sub
Code qui appelle la SUB Unique avec en paramètre le nom du pilote qui se trouve dans la cellule cliquée.
Le code Unique est là pour vous montrer la simplification de votre VBA :
Sub Unique(Nom As String)
' définition d'une variable en Long (pour les lignes c'est mieux bien que dans votre cas ce n'est pas utile)
Dim Der_ligne As Long
' détermination de la dernière cellule pleine de la colonne F à laquelle on ajoute 1 afin de tomber sur la première cellule vide suivnat la dernière pleine
Der_ligne = Cells(Cells.Rows.Count, 6).End(xlUp).Row + 1
' Avec la cellule trouvée
With Cells(Der_ligne, 6)
' on affiche le nom du pilote
.Value = Nom
' on affiche l'heure de maintenant
.Offset(0, -3).Value = Now
'fin d'utiliser la cellule
End With
End Sub
Le code est commenté, mais le principe est simple :
on trouve la dernière cellule pleine de la colonne F puis on prend la cellule du dessous, on y inscrit le nom de la cellule cliquée, puis 3 colonnes avant on inscrit la date de "maintenant".
Alors évidemment il faut faire attention à ne pas cliquer à outrance sur cette zone !
Le fichier :
@ bientôt
LouReeD