• Initiateur de la discussion Initiateur de la discussion matou59
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

matou59

Guest
Bonsoir,

En excel 2000, une base de donnees ou chaque ligne comporte 4 colonnes (A1😀XXX).Ou XXX peut aller jusqu'a 999.
Cette base de donnees doit toujours etre triee avec comme critere de trie la colonne A.
Donc a chaque fois que l'on ajoute une ligne celle ci doit venir se placer
dans la base comme si on faisait le trie de la base a chaque ajout de ligne...
Comment faire cela ?
merci de votre reponse.

Joyeux Noel a TOUS....
 
Bonsoir Matou

Un essai de réponse : la macro de tri est placée dans le module de la feuille "ESSAI" :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1😀999")) Is Nothing Then
Range("A1😀999").Sort Key1:=Range("A1"), Order1:=xlAscending
End If
End Sub

Cependant, pour que tout changement dans la zone "A1😀999" entraîne un tri sans avoir à chercher la ligne pour la compléter, il est indispensable que les quatre valeurs d'une ligne soient collées en même temps.

Cordialement

CBernardT
 

Pièces jointes

bonjour et merci cbernardt,

Comme tu le disais le seul prob dans ce cas c que lorsque je rempli la cellule de la colonne A et que je passe a la cellule de la colonne B, l'enregistrement est deja fait et le tri aussi.A la limite dans mon cas il faudrait que je remplisse la colonne A en dernier et ainsi j'aurai pu remplir toutes les zones de mon enregistrement.
Par contre la macro que tu as faite, je ne la trouve nul part dans ton exemple ?.

merci d'avoir bien voulu m'aider.
 
Bonjour Matou et le forum

Un palliatif pour qu'il ne soit pas indispensable que les quatre valeurs d'une même ligne soient collées en même temps est que les changements ne soient pris en compte que sur la colonne "D".

La macro devient :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D1😀999")) Is Nothing Then
Range("A1😀999").Sort Key1:=Range("A1"), Order1:=xlAscending
End If
End Sub


Cordialement

CBernardT
 
Bonjour,

Merci d'avoir bien voulu m'aider car je ne suis pas expert en la matiere.
A propos de VBE, que je ne connais pas bien du tout, ou puis je trouver une documentation claire pour apprendre pas a pas et quelle est son nom si je dois aller l'acheter en librairie.

Merci encore et à l'occasion sur ce site.

Joyeux Noel

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
813
Réponses
26
Affichages
2 K
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
806
Réponses
6
Affichages
626
Réponses
12
Affichages
1 K
Réponses
1
Affichages
800
Réponses
125
Affichages
13 K
Réponses
3
Affichages
1 K
Retour