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