Microsoft 365 Ecrire une date en fonction d'une recherche (vba)

Eisu

XLDnaute Nouveau
Bonjour,

J'ai un fichier de contrôle outillage que j'aimerai ' automatiser '.
Pour cela, j'ai une feuille ( Contrôle périodique ) sur laquelle j'effectue le contrôle de l'outillage ( présent/manquant/perdu ) via menu déroulant, et tout en haut, j'ai un menu déroulant en cascade afin de choisir l'ouvrier en fonction du projet.
J'ai une autre feuille avec la liste des ouvriers et des colonnes vides dans lesquelles, dès que je valide le contrôle via un bouton que j'essaie de mettre en place ( et pour lequel j'aurai besoin de votre aide car je suis perdu ), il reprends en cellule A6 le nom du technicien, le recherche dans ma feuille "technicien contrôlés", et y indique dans la première colonne vide, la date du jour afin d'en avoir un historique. Et à chaque contrôle de l'ouvrier, hop, date du jour dans la prochaine colonne vide.

Etant extrêmement débutant, j'ai été piocher à gauche à droite des bouts de code que j'essaie de modifier et compiler afin d'en faire une macro fonctionnelle.

J'y ai trouvé ce code pour sélectionner la dernière colonne vide.
VB:
Sub derniere_colonne_remplie()

Dim numero As String

numero = InputBox("Entrez le numéro de la ligne pour laquelle vous souhaitez atteindre la dernière colonne : ")

Dim i As Integer
i = 4

    While Cells(1, i) <> ""
    i = i + 1
    Wend
    
    Cells(numero, i).Select
    
End Sub

Et celui-ci pour la recherche du technicien dans la liste :
VB:
Sub Cherche()

Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String

Valeur_Cherchee = "Trouve"

Set PlageDeRecherche = ActiveSheet.Columns(1)

Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee,
                     LookAt:=xlWhole)

If Trouve Is Nothing Then

    AdresseTrouvee = Valeur_Cherchee
                                & " n'est pas présent dans "
                                & PlageDeRecherche.Address
Else

    AdresseTrouvee = Trouve.Address
End If
MsgBox AdresseTrouvee
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub

Que j'ai adaptés et compilés comme ceci :
VB:
Sub Cherche()

Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String

Valeur_Cherchee = Cells(1, 6)

Set PlageDeRecherche = Sheets("Techniciens contrôlés").Columns(1)

Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

If Trouve Then
Dim numero As String

numero = InputBox("2")

Dim i As Integer
i = 4

    While Cells(1, i) <> ""
    i = i + 1
    Wend
    
    Cells(numero, i).Select
    Sheets("Techniciens contrôlés").Range("B2").Value = Format(Now, "MM/DD/YYYY HH:MM")
End If
MsgBox AdresseTrouvee

Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub

Cependant, ce code est très joli, il semble trouver le nom et tout se déroule afin de m'afficher la msgbox à la fin.
Ce qui, pour l'instant, ne me sert encore à rien. Il me manque encore la façon de trouver la ligne correspondante au technicien et d'y indiquer la date..

Un grand merci pour votre lecture et votre patience.. Si le fichier est nécessaire, j'y supprimerais toutes les données présentes confidentielles et vous le partagerai,
Belle journée à tous,
 

Discussions similaires

Réponses
2
Affichages
129
Réponses
12
Affichages
225
Réponses
1
Affichages
120

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG