Reset macro

Résolu/Fermé
anthony - 2 nov. 2010 à 14:02
 anthony - 5 nov. 2010 à 06:55
Bonjour,

Je travaille actuellement sur le développement d'une base de données excel bardée de macro.
il y a une page d'accueil avec des boutons (macros liées à ces boutons), on peut consulter tout un listing, consulter le listing avec un premier filtre, ...
mon problème est que je veux faire du publipostage mais la condition sine qua none est que la liste A soit impérativement triée par ordre croissant sinon ça engendre des erreurs.
sauf que les utilisateurs utilisent les différentes macros, procèdent donc à des filtres sans le savoir et ces filtres ne sont jamais remis à zéro, ils s'additionnent et le publipostage impossible.
que faut il faire pour que les macros soient remises à zéro quand on en utilise une autre ?

je ne sais pas si je suis bien clair.

Anthony

A voir également:

8 réponses

cousinhub29 Messages postés 993 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 22 janvier 2025 353
2 nov. 2010 à 14:08
Bonjour,

Tu peux par exemple, en début de code, remettre tous les filtres à 0, avec un code du style :

If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If


ainsi, tes filtres sont à 0, tu peux aussi faire le tri...

bon courage
0
hello,
ok pour cette solution mais je crois qu'il va falloir que je reprenne toute la base car les macro sont chelous. il y a des integer juste pour procéder à un filtre.
un exemple du code :
Sub SortingQMLbypart()

Application.Run "'QML.xls'!RESETQML"
Worksheets("qml").Activate
Dim i As Integer
i = 6
Do While Not IsEmpty(Cells(i, 1))
i = i + 1
Loop
Range(Cells(6, 1), Cells(i, 42)).EntireRow.Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B6").Select
End Sub
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
2 nov. 2010 à 14:22
Bonjour,

C'est pas très clair, mais il semblerait que les macro agissent directement sur la ou les tables contenant les données.

Habituellement, dans une base de données on définit une ou plusieurs tables de données (pures et sans calculs), éventuellement triées dans un ordre prédéfini, qui servent de source pour le traitement de ces données.

En dehors de l'ajout, de la modifications ou de la suppression de ces données, aucune des opérations de traitement de ces données ne doit s'effectuer directement dans les tables mais dans des feuilles résultats (requêtes, états, calculs, synthèses, ...).

Cela évite toute pollution des données sources.

Patrice
0
Patrice c'est exactement le problème.
La base comprend 5 onglets dont un ACCUEIL sur lequel tu as les différents boutons avec macro. Et chaque macro agit directement sur l'onglet qui possède toutes les données.
donc les macros filtrent les données comme on pourrait le faire en cliquant sur les flèches de filtre de chaque colonne.
donc comme tu le dis on pollue à chaque nouveau filtre les données et on zappe forcément des données.

comment faut il procéder pour être dans les règles de l'art ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
2 nov. 2010 à 21:23
Re

Le plus simple est d'utiliser un filtre élaboré avec une feuille pour les critères et une feuille résultat.

Un exemple vaut mieux qu'une longue explication : Filtre élaboré

Cordialement,
Patrice
0
j'ai regardé ça mais le soucis est que tu ne peux mettre en place qu'un seul filtre avancé ?!
il faut que j'ai la possibilité de faire plusieurs filtres juste en cliquant sur un bouton et le tout en partant de ma base de données complète.

hier j'ai démontré au responsable des macros qu'il y avait un soucis.
tu rentres dans le fichier, la colonne H est bien trier par ordre décroissant (j'ai mis ce filtre), ensuite tu cliques sur un bouton qui filtre "yes" sur la colonne C, la colonne H reste aussi triée. Ensuite tu reviens à la page d'accueil, tu cliques sur un autre bouton pour revenir à toute la base et là la base n'est plus du tout triée sur la colonne H.
puis il y a encore d'autres boutons pour procéder à d'autres filtres.
et vu que je dois faire un publipostage sur la colonne H, c'est impossible vu que la colonne ne conserve pas le tri croissant.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 3/11/2010 à 17:41
Avec des macros, tu fait pratiquement ce que tu veux,
tu peux peut mettre autant de filtres que tu désire.

Dans ton fichier il n'y a que deux petites tables, il est parfaitement possible d'appliquer la méthode que je t'ai donné (quitte à utiliser deux feuilles résultat) mais évidemment il faut faire un travail de fond et reprendre toutes les macros.

Bon courage
Patrice
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cousinhub29 Messages postés 993 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 22 janvier 2025 353
3 nov. 2010 à 11:29
Bonjour,

Tu as un gros avantage sur nous, tu as le fichier....

Pas nous......
0
voilà je vous ai modifié le fichier pour que vous sachiez de quoi il en retourne.
comme vous pouvez le voir il y a des boutons, les onglets sont cachés.
dites moi comment vous voyez les choses
0
cousinhub29 Messages postés 993 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 22 janvier 2025 353
3 nov. 2010 à 15:45
Bonsoir,

J'ai surtout vu que le code était protégé par un mot de passe...

Bon courage
0
oups désolé
ctrlmat pour entrer dans le fichier
ipsos pour le VBA
0
un peu pris par le taf pour faire l'essai sur le tri avancé que tu me conseilles Patrice mais je pense pouvoir le faire aujourd'hui.

Cousinhub29 aurais tu une proposition pour gérer ce fichier ?
0