Bonjour,
Nous avions fait créer pour notre boutique un fichier excel pour les comptes fidélité de nos clients.
Nous avons en colonne A B et C les noms, prénoms et adresse mails de nos clients. Ensuite de la colonne D à W nous avons les achats de nos clients présentés ainsi: D et E: achat 1 (D=la date et E=le montant de l'achat), F et G: achat 2... et ainsi de suite jusqu'à V W pour le 10ème achat).
Une macro a été mise en place avec un bouton "ajouter achat". Cela nous permet une fois que nous avons cliqué sur le nom de notre cliente d'ajouter automatiquement un achat avec la date du jour. Lorsque que les 10 achats sont effectués appuyer une nouvelle fois sur ce bouton permet de basculer tous les achats sur une autre feuille d'archives pour que nous puissions faire le calcul de pourcentage de remise et recommencer un nouveau compte à zéro.
Nous avions pris l'habitude d'ajouter des commentaires chaque fois qu'un compte était terminé sur la cellule du nom du client pour indiquer le montant de sa remise et si celle-ci a été faite ou non. Malheureusement le trop grand nombre de commentaire à plusieurs fois occasionné un bug et nous avons à chaque fois perdu tous ces commentaires...
Nous avons donc décidé de procéder différemment et d'ajouter à partir de la colonne X les messages que nous mettions avant en commentaire(X pour la remise de la première carte terminée, Y pour la seconde etc). Seulement un problème se pose: lorsqu'un compte est terminé et lors du passage de tous les achats dans la feuille d'archive nous perdons les messages que nous avions ajouté à partir de la colonne X (et ils ne rebasculent même pas vers la feuille d'archive).
J'espère que je suis suffisamment claire mais j'aimerais ne pas être obligée d'ajouter notre fichier qui contient les adresses mail et parfois les numéros de téléphone de nos clients.
Je pense que le problème de toute façon est au niveau de la macro mais je n'y connais pas grand chose et ne sais pas exactement ce qu'il faudrait modifier sans faire de bêtises!
Voici la macro en question:
J'imagine qu'il faudrait modifier quelque chose sur la fin, dans cette partie:
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 Sub AjoutAchat() Dim MtAchat As Single, MtRemise As Single Dim DLigA As Long ' Récupérer la ligne de sélection Lig = Selection.Row ' Mémoriser le nom du client NomClt = Range("A" & Lig) & " " & Range("B" & Lig) NCol = Cells(Lig, Columns.Count).End(xlToLeft).Column + 1 ' on récupérer la ligne de sélection Lig = Selection.Row ' Mémoriser le nom du client NomClt = Range("A" & Lig) & " " & Range("B" & Lig) NCol = Cells(Lig, Columns.Count).End(xlToLeft).Column + 1 ' Si la dernière colonne remplie est la 23ème = le client à fait 10 achats If NCol > 3 + 20 Then MtAchat = Application.WorksheetFunction.SumIf(Range("D2:W2"), "Montant", Range("D" & Lig & ":W" & Lig)) MtRemise = MtAchat * 10 / 100 ' Afficher le message MsgBox "Le client à droit à 10% de remise" & vbCr _ & "Montant total achat = " & Format(MtAchat, "#,##0.00") & vbCr _ & "Remise = " & Format(MtRemise, "#,##0.00"), vbInformation, "REMISE ACCORDEE" ' Inscrire le montant sur la ligne Range("X" & Lig).Value = Format(Now(), "dd/mm/yyyy") Range("Y" & Lig).Value = CDec(MtRemise) ' On archive les achats du client DLigA = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row Sheets("BdDClt").Range("A" & Lig & ":Y" & Lig).Copy _ Destination:=Sheets("Archives").Range("A" & DLigA + 1) Range("D" & Lig & ":Y" & Lig).ClearContents Else UsF_Achat.Show End If End Sub
DLigA = Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Row
Sheets("BdDClt").Range("A" & Lig & ":Y" & Lig).Copy _
Destination:=Sheets("Archives").Range("A" & DLigA + 1)
Range("D" & Lig & ":Y" & Lig).ClearContents
Mais je ne sais vraiment pas comment faire!!
L'idée serait donc de garder exactement le même fonctionnement qu'avant mais en gardant intacte mes colonnes X, Y, Z AA... une fois les 10 achats effectués.
Merci infiniment à toute personne susceptible de me venir en aide!
Partager