Bonjour,
Il y a quelques jours j’ai ouvert puis fermer un post sur un tableau d’intervention de techniciens SAV au sein d’une entreprise qui possède plusieurs succursales en VBA sur Excel.
A présent voulais faire un formulaire qui sera mis à disposition sur le serveur SAV commun de l’entreprise afin de remplir mon tableau fait précédemment. Mais forcément cela ne se passe pas comme prévu et n’ayant pas trop de connaissance en VBA =s
C’est pour cela que je demande votre aide afin que je puisse comprendre mes erreurs tout faisant en sorte que cela fonctionne.
Explication :
Je souhaiterais que lorsqu’une personne ouvre le fichier Excel « ajout_d_intervention.xlsm » cette personne est en face d’elle un tableau de formulaire comme celui ci-dessous. Une fois afficher la personne le rempli en fonction des informations qu’elle possède, puis en validant je reçois un mail afin d’être mis au courant qu’il y a eu une ligne d’ajouter à mon tableau.
Mais j’ai des problèmes au niveau :
- De l’affichage du « UserForm » dans le tableau Excel :
Lorsqu’une personne ouvre le fichier Excel, celui-ci affiche directement et clairement le formulaire. A savoir il a été créé directement à partir de l’éditeur VBA d’Excel.
- Des conditions de liste du formulaire :
Lorsque la personne sélectionne une base dans le formulaire, je voudrais que les noms des chefs d’atelier de cette base s’affichent dans la seconde liste "demandeur". Mais je voudrais que cette liste soit uniquement crée en VBA.
- Affichage d’un message d’avertissement en fonction du contenue :
Je voudrais que si la personne sélectionne « Guidage GPS », un message « msgBox » s’affiche en avertissement avec un bouton « OK » mais il ne doit pas s’afficher si c’est « Climatisation ».
- De l’envoi du mail :
Lorsque le formulaire est rempli, la personne fait « Envoyer », et en même temps cette action m’envoie un Email me disant qu’il y a une nouvelle intervention.
- De l’ajout de ligne dans le tableau récapitulatif :
Une fois l’envoi fait, ma ligne s’ajoute bien dans le tableau, mais actuellement si j’ajoute une autre demande, celle-ci écrase celle entré précédemment. En gros je n’ai qu’une seule ligne qui se crée au lieu de les ajouter les une en dessous des autres.
Voici mon code :
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 Option Explicit Dim Ws As Worksheet 'Pour le formulaire Private Sub UserForm_Initialize() 'Date du jour Labeldate.Caption = Format(Date, "dd/mm/yyyy") 'Liste déroulante base TypeBox.ColumnCount = 1 TypeBox.List() = Array("Climatisation", "Guidage GPS") 'Avertissement si Guidage GPS dans Typebox If TypeBox = "Guidage GPS" Then MsgBox "Il faut la présence d'un technicien de la base avec l'intervenante", vbOKOnly End If 'Liste déroulante base BaseBox.ColumnCount = 1 BaseBox.List() = Array("AN", "HE", "CH", "VE", "FO", "NA", "FG", "MZ", "ML", "CO", "DA") 'Liste déroulante des demandeurs en fonction des bases If BaseBox.Value = "AN" Then DemandeurBox.Value = "demandeur 1" DemandeurBox.Value = "demandeur 2" End If 'Liste déroulante Payant ou Cession PCBox.ColumnCount = 1 PCBox.List() = Array("Payant", "Cession") End Sub 'Bouton Envoyer Private Sub EnvoyerButton_Click() Dim Der_Ligne As Integer 'Message d'avertissement avant envoi + envoi de la demande si clic sur oui If MsgBox("Confirmez-vous l'envoi d'une intervention ?", vbYesNo, "Demande de confirmation") = vbYes Then Der_Ligne = Sheets("Clients").Range("a65536").End(xlUp).Row + 3 'Place la nouvelle intervention après la dernière ligne de tableau non vide Range("J" & Der_Ligne).Value = BaseBox Range("K" & Der_Ligne).Value = DemandeurBox Range("B" & Der_Ligne).Value = PCBox Range("C" & Der_Ligne).Value = Code_ClientBox Range("D" & Der_Ligne).Value = NomBox Range("E" & Der_Ligne).Value = InterlocuteurBox Range("F" & Der_Ligne).Value = AdresseBox Range("G" & Der_Ligne).Value = TelBox Range("H" & Der_Ligne).Value = MaterielBox Range("I" & Der_Ligne).Value = ObservationBox End If End Sub 'Bouton Quitter Private Sub QuitterButton_Click() Unload Me End Sub
Partager