Bonjour,
J’ai pour objectif de réaliser un outil informatique pour améliorer la gestion du parc matériel de l'entreprise dans laquelle je fais mes études en alternance.
J'ai commencé à créer cet outil, avec EXCEL 2007 et VBA.
Je me suis beaucoup aidé du site et des différentes discussions que l'on peut trouver, mais je n'ai pas trouvé de solution à mon problème.
J'ai 3 feuilles Excel :
La première est une liste ou apparait le nom du matériel, le code d’identification, le type d’engins… etc
La seconde, est une liste des chantiers avec le nom des responsables du chantier
La troisième est une liste ou apparait les engins qui sont sortie, avec le code d’identification, la date de sortie du matériel, la date de retour du matériel… (Voir Imp – 1 ci-joints).
De plus, j’ai créé une boîte de dialogue, ou l’on peut y écrire le code d’identification du matériel et la date du jour (manuellement).
Le but, en validant cette boite de dialogue, est que la macro trouve la dernière ligne de la colonne (B) ou est écrit le code d'identification tapé dans la TextBox1, pour y écrire la date de retour du matériel, même ligne et colonne H.
J’ai essayé plusieurs "technique" mais à chaque fois, je trouve le premier ou le second code d'identification de la liste.
Voici, le code dont je me sers.
Est-ce le bon code dont je me sers ?
Si non, quels serait la meilleur méthode pour résoudre mon problème ?
En espérant être assez clair et précis.
Vous remerciant d'avance pour votre aide.
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Private Sub CommandButton2_Click() If Me.TextBox1.Value = "" Then MsgBox "Veuillez indiquer un numéro d'identification, merci." Me.TextBox1.SetFocus Exit Sub End If If Me.TextBox2.Value = "" Then MsgBox "Veuillez indiquer une date d'entrée/retour du matériel, merci." Me.TextBox2.SetFocus Exit Sub End If 'Recherche de la derniere ligne ou est écrit le code d'identification rechercher (TextBox1) 'pour y inscrire la date de retour du matériel. Dim premiereCellule As Range Dim precedente As Range Dim derniere As Range Dim L As Long ' L numéro de la ligne ou est ecrit le dernier code d'identification Dim DerLign As Long ' DerLign est la derniere ligne ou il y a un code d'identification DerLign = Range("SituationMateriel!B1048576").End(xlUp).Row ' Pour éviter de rechercher sur les 1048576 Cellules de la colonne With Worksheets("SituationMateriel").Range("B1:B" & DerLign) Set C = .Find(TextBox1) '.Values 'Worksheets("SituationMateriel").Range("B1:B" & DerLign) If Not C Is Nothing Then Set premiereCellule = C Do Set precedente = C Set C = .FindNext(C) 'Set derniere = C ' quand il aura fait la boucle derniere = premiereCellule (je pense) Loop While C Is premiereCellule 'DerLign 'Is premiereCellule L = precedente.Row 'precedente, car c sera = a la valeur de la boucle une fois boucler Worksheets("SituationMateriel").Range("H" & L).Value = TextBox2 'écrire la date sur la bonne ligne End If End With 'Vide la BDD Unload Me Entree_Materiel.Hide Choix_Action.Show End Sub
Partager