Bonjour,
Voici mon problème : Je travaille sur la création d'un échéancier qui bascule sur un tableau de relance.
J'ai donc une Macro qui me permet de filtrer dans mes feuilles "échéancier" les personnes où régler=Non et aussi de les trier selon le numéro de client. Seulement les données qui sont des colonnes G à L qui sont des données que rentre l'utilisateur ou alors qui fonctionne à l'aide de formule selon le numéro de client, on tendance à s'interposer, se changer de place ect...
J'ai décomposer ma macro est j'ai remarquer que c'était des que je lançais le trie selon le numéro de client que ces données se modifiait, je n'arrive pas à comprendre pourquoi.
Travaillant sur ce projet depuis quelques temps je vous joint le fichier en question afin d'avoir une meilleure vue du problème. Je préfère aussi vous expliquer le fonctionnement de chaque feuille afin de mieux comprendre le fonctionnement.
- Tout d'abords mes feuilles échéancier ( Ici elles vont jusqu'au mois de mai, mais dans le dossier finale elles iront jusqu'au mois de décembre. ) Elles fonctionnent avec la base de données des Factures et des Clients, et donc s'automatisent selon le numéro des Factures. Et l'utilisateur inscrit si oui ou non il a réglée à l'aide de la liste déroulante dont j'ai inscrit mes données dans ma feuille "Annexe".
- Ensuite, ma feuille de Relance. Celle ci me permet donc de regrouper tout les "réglée=Non" sur une même feuille afin de suivre la relance du Client. Afin de suivre au mieux la relance il y a les colonnes de "G à L" que j'ai automatisé afin de rechercher dans ma base de données le numéro de téléphone et l'email, mais aussi le reste à payer selon que le client est verser un acompte ou non et aussi les commentaires que l'utilisateur peut rajouter.
Les Codes sont les suivants :
-Tout d'abord celui qui permet de basculer les "régler=Non" des échéancier sur le tableau de relance
-Celle qui me permet de trier le tableau de relance selon le numéro de client.
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 Sub ReglerNon() Dim a(), i As Long, L As Long, cel As Range ' ReglerNon Macro ' Trie l'échéancier selon que régler = Non Feuil10.Range("A8:F200").ClearContents 'feuil10 codename de feuille RelaceEntête For Each w In Worksheets If IsNumeric(Left(w.Name, 2)) Then L = w.Range("A65000").End(xlUp).Row If L > 7 Then For Each cel In w.Range("G8:G" & L) If cel = "Non" Then i = i + 1: ReDim Preserve a(1 To 6, 1 To i) '1 to 6 colonnes, 1 to i lignes,on ne sait ajouter que des colonnes dans un tableau a(1, i) = cel.Offset(, -2) 'n°client a(2, i) = cel.Offset(, -1) 'raison a(3, i) = cel.Offset(, -6) 'Fact a(4, i) = cel.Offset(, -5) 'date facture a(5, i) = cel.Offset(, -4) 'date échéance a(6, i) = cel.Offset(, -3) 'montant End If Next End If End If Next a = Application.Transpose(a) 'a colonnes,lignes devient a lignes,colonnes Feuil10.Range("A8").Resize(UBound(a, 1), UBound(a, 2)) = a End Sub
J'avais commencer par un Filtre avancé mais de cette façon c'est plus simple et me permet de garder l'entête de mon tableau de relance ce que le filtre avancé ne me permettait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub Triage() ActiveWorkbook.Worksheets("RelanceEntête").Sort.SortFields.Clear ActiveWorkbook.Worksheets("RelanceEntête").Sort.SortFields.Add Key:=Range( _ "A8:A125"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("RelanceEntête").Sort .SetRange Range("A7:L125") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Je reçu de l'aide pour ce projet, d'ou cette nouvelle Macro sans filtre Avancé, peut-être que vous verrez plus facilement l'erreur présente, j'ai essayer beaucoup de chose différentes et malheureusement je n'arrive toujours pas a repérer le problème.
En vous remerciant d'avance pour l'aide que vous pourriez m'apporter.
Cordialement, Masako.
Partager