Bonjour Tout le Monde,
D’abord toutes mes excuses si je ne poste pas au bon endroit.
Ensuite mon problème : je n’y connais absolument rien en VBA ou Macros, ça fait presque 15 jours que je cherche et je n’ai pas trouvé de solutions à mon problème. Alors si une bonne âme voulait bien m’aider…
J’ai un fichier excel qui comporte plusieurs feuilles, l’une d’elles s’appelle Bénéficiaires (une base de données) et se remplie grâce à un Userform appelé : frm.Bénéficiaires.
Dans la feuille Exel Bénéficiaires j’ai rajouté des colonnes pour les dates de location, leur durée et les km.
Les entêtes de ce tableau (base de données) commencent en B6.
Pour les Dates de Contrats :
Début : Colonne E (dc E7)
Fin : Colonne F (dc F7)
Durée : Colonne G (dc G7)
Pour le kilométrage :
Nb de Km (Dom/Trav) : Colonne J (dc J7)
Aller/Retour : Colonne K (dc K7)
Km Parcourus : Colonne L (dc L7)
Maintenant pour le Userform :
Bénéficiaire5 = Début
Bénéficiaire6= Fin
Bénéficiaire7 = Durée
Bénéficiaire10 = Nb de Km
Bénéficiaire11 = Nb de Km Aller/Retour
Bénéficiaire12 = Nb de Km Parcourus
Voici le code VBA pour la saisie et la validation de ce userform (je précise, ce n’est pas moi qui l’ai fait, lol) :
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 Private Sub cmdAjouterBénéficiaire_Click() Dim X As Integer Dim nextrow As Range On Error GoTo cmdAjouterBénéficiaire_Click_Error Set nextrow = Feuil4.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) For X = 1 To 49 If Me.Controls("Bénéficiaire" & X).Value = "" Then MsgBox "Veuillez saisir toutes les données" Exit Sub End If Next If WorksheetFunction.CountIf(Feuil4.Range("A:A"), Me.Bénéficiaire18.Value) > 0 Then MsgBox "Ce bénéficiaire existe déjà" Exit Sub End If For X = 1 To 49 nextrow = Me.Controls("Bénéficiaire" & X).Value Set nextrow = nextrow.Offset(0, 1) Next 'clear For X = 1 To 49 Me.Controls("Bénéficiaire" & X).Value = "" Next On Error GoTo 0 Exit Sub cmdAjouterBénéficiaire_Click_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure cmdAjouterBénéficiaire_Click of Form frmBénéficiaires" End Sub Private Sub cmdQuitterBénéficiaire_Click() Unload Me End Sub
Ce que j’aimerais, si vous m’avez suivie, c’est rajouter les codes pour les colonnes que j’ai rajoutées. La fonction DateDiff qu’il me calcule automatiquement sur le userform la durée de location dans Bénéficiaire7, et qu’après avoir saisie les km, que VBA me calcule les km A/R dans Bénéficiaire11 (soit Bénéficiaire10 x 2) et dans km parcourus Bénéficiaire12 : Bénéficiaire7 x Bénéficiaire11.
Help please ! J'ai vraiment essayer de comprendre le code mais j'avoue que là, je suis une vraie buse ! Désolée,
Pour finir, j’ai Windows8, Exel 2013.
Merci d’avance,
LO
Partager