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

  • Initiateur de la discussion Initiateur de la discussion Eisu
  • 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 !

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,
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
4
Affichages
361
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
638
Retour