Bonjour,
Pour faire de la facturation en fin de mois je souhaite faire un tri dans la liste des achats des clients et extraire les commandes de chaque client pour les coller dans la feuille correspondant à leur facture.
Pour l’instant ma macro tri mais colle dans une nouvelle feuille qu’elle nomme à chaque fois, je voudrais qu’elle colle dans la feuille du client concerné déjà intitulée au nom de ce même client et formatée pour la facture.
Clients Date Produit B/S Qty Prix Total
XXX 08-oct Thé A 150 10,00 1 500,00
GGG 08-oct Café A 400 20,00 8 000,00
XXX 08-oct Jus A 250 15,00 3 750,00
GTZ 08-oct Jus A 65 15,00 975,00
XXX 20-oct Thé A 100 10,00 1 000,00
UTG 21-oct Thé A 50 10,00 500,00
Voilà ce que j’ai pour l’instant
Sub FiltrerClient_Click()
Dim MaFeuille As Worksheet
Dim NouvFeuille As Worksheet
Dim MaListeTrades As Range
Dim NbLignes As Integer
Dim MaCellule As Range
Set MaFeuille = Sheets(“Trades”)
'ListeTrades = zone de cellules nommées commençant en A3 et finissant à la fin de la liste
Set MaListeTrades = Range(“ListeTrades”)
'Extrait la liste des clients dans une zone de la feuille Trades
MaListeTrades.Columns(“A:A”).AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range(“M1”), Unique:=True
NbLignes = Cells(Rows.Count, “M”).End(xlUp).Row
'Paramètre la zone de Critères
'Le critère porte uniquement sur le champ Clients
Range(“N1”).Value = Range(“A3”).Value
For Each MaCellule In Range(“M2:M” & NbLignes)
'Inscrit le nom du client en tant que critère
MaFeuille.Range(“N2”).Value = MaCellule.Value
'C EST LA QUE CELA BLOQUE, je voudrais aller dans des feuilles existantes et non pas en créer de nouvelles.
'Ajoute une nouvelle feuille dans le classeur en dernière position
Set NouvFeuille = Sheets.Add(, After:=Worksheets(Worksheets.Count))
'Attribue le nom du Client dans la nouvelle feuille
NouvFeuille.Name = MaCellule.Value
'Extrait les produits des clients dans la nouvelle feuille
MaListeTrades.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets(“Trades”).Range(“N1:N2”), _
CopyToRange:=NouvFeuille.Range(“A6”), _
Unique:=False
Next
'Sélectionne la feuille Trades
MaFeuille.Select
'Supprime les colonnes M et N après le traitement
MaFeuille.Columns(“M:N”).Delete
End Sub
Merci d’avance, je lis plein de bouquins mais j’ai encore beaucoup de mal car je débute.
Edité le 26/11/2007 à 09:45