j’ai un soucis que j’aimerai vous faire partager, je sais qu’avec un script VBA cela est possible mais je ne m’y connais pas du tout et je n’ai pas trouvé mon bonheur
Je vous ai mis en pièce jointe un fichier excel comme exemple,
Le but est de rajouter un client a la fin qui s’appelle « David » par exemple,
De le mettre en bas sur toutes les feuilles manuellement ou non, je n’ai pas beaucoup de pages dans mon vrai excel donc cela ne me dérange pas
Mais ma vraie question est, quel est le script a utiliser pour qu’une fois que l’on rajoute un nouveau client, toutes les pages que l’on choisi, ici seul les pages clients/contrats et intervention doivent réagir au script, remette dans l’odre croissant le noms des clients avec bien entendu le bon nouvel ordre de toutes les lignes
J’ai trouvé ca par exemple
Option Explicit
Sub Tri()
Dim Ws As Worksheet
For Each Ws In Sheets
If Ws.Name <> Sheets(1).Name Then
Ws.Range(« A3:P100 »).Sort key1:=Ws.Range(« A3 »), order1:=xlAscending, dataoption1:=xlSortNormal, Header:=xlNo
End If
Next Ws
End Sub
Où A2:P100 represente la taille de mon tableau a retrier par rapport a la colonne A mais cela ne marche que sur la page active, peut etre qu’il faut un code complètement différent, j’ai besoin de vos lumières pour que cela fonctionne sur les pages voulues
Je ne suis pas certain d’avoir bien compris ceci :
" toutes les pages que l’on choisi"
C’est à dire ?
Celle active à l’écran ?
Je suis parti avec cette hypothèse pour te proposer cette solution en VBA
Dans l’onglet actif à l’écran double clique sur la cellule A2
le tri de toutes les données est effectué sur la colonne A
Attention le traitement détermine le nombre de colonne à intégrer dans le tri sur la base de la ligne 3 qui porte le nom de celle-ci
Il doit en être de même pour tous les onglets à traiter (nom des colonnes en ligne 3)
Fichier de type xlsm nécessaire pour les fonctionnements VBA à conserver impérativement
En faite, j’ai 3 feuilles que je veux trier en une fois par la colonne clients
la feuille qui s’appelle client est la base, j’entend par la la que c’est ici que je rajouterai les clients et par un collé avec liaison, les autres feuilles auront tout changement sur le nom des clients et rajout juste en le faisant par la feuille client
Et via un VBA quand je rajoute un client, je peux retrier toutes les feuilles ayant la colonne clients
par exemple
clients
contrats
Alfred
120 €
George
0 €
Wilfrid
600 €
William
0 €
on ajoute David
clients
contrats
Alfred
120 €
George
0 €
Wilfrid
600 €
William
0 €
David
0 €
et avec le VBA
clients
contrats
Alfred
120 €
David
0 €
George
0 €
Wilfrid
600 €
William
0 €
Ca c’est le résultat sur la feuille client et sur la feuille contrat et intervention, je rajoute david par collé avec liaison et avec le VBA ca me met aussi toutes les lignes triées grace aux noms de clients
par exemple
interventions avant vba
clients
Janvier
Février
Mars
Avril
Mai
Juin
Juillet
Août
Septembre
Octobre
Novembre
Décembre
Total
Alfred
0
George
180
40
220
Wilfrid
28
72
100
William
99
99
David
0
apres VBA
clients
Janvier
Février
Mars
Avril
Mai
Juin
Juillet
Août
Septembre
Octobre
Novembre
Décembre
Total
Alfred
0
David
0
George
180
40
220
Wilfrid
28
72
100
William
99
99
le but est que tous les clients soient triés en un script
au lieu de faire des modifs clients a la main (le collé par liaison qui evite ca) et des tris par feuilles voulus en un seul coup au lieu de le faire feuille par feuille
A moins que le collé avec liaison soit une mauvaise idée et il existe une meilleure solution
Et le soucis que j’ai avec la formule que j(ai montré plus haut, le code fonctionne sans le collé avec liaison mais si wilfrid arrive en ligne 6 et non 5 mes formules inter feuille sur les clients ne prend pas en compte ce changement, je ne sais pas si ma demande a une vraie solution ou non
« Ca c’est le résultat sur la feuille client et sur la feuille contrat et intervention, je rajoute david par collé avec liaison »
Qu’est ce qu’un collé avec liaison ???
Une formule ?
« le but est que tous les clients soient triés en un script
au lieu de faire des modifs clients a la main (le collé par liaison qui evite ca) et des tris par feuilles voulus en un seul coup au lieu de le faire feuille par feuille »
C’est très bien mais encore faut il pour le traitement lui donner la liste des feuilles concernées il ne le devinera pas tout seul
Comment as tu prévu la chose ?
Une liste quelque part ?
Un choix en fonction des noms d’onglet avec pour ceux concernés un moyen de les détecter ?
Il faut aller plus loin dans le context de ce traitement pour un automatisme total
Ma proposition que je t’ai transmise t’oblige juste à activer onglet par onglet concerné en double cliquant sur la cellule A2 de chacun d’eux
Ce n’est pas un automatisme total mais demande juste une petite intervention pour cibler les bonnes feuille et ainsi d’éviter de trouver une autre astuce à cette fin