tri après ajout de lignes  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

tri après ajout de lignes  Sujet résolu

Messagepar Ontrose » 26 Août 2009, 15:18

Re bonjour Forum !

J'ai une petite question concernant le tri d'une colonne :
J'ai une macro qui me rajoute à la fin de mes données, 4 lignes.
Un fois ces lignes ajoutées, j'aimerais pouvoir trier ma base par ordre alphabétique.
Mais je peine à réaliser un tri qui prendrais en compte les 4 lignes ajoutées :'(
Auriez vous une solution, une idée ?

Bien à vous, Ontrose
Ontrose
Membre habitué
 
Messages: 86
Inscription: 07 Août 2009, 09:56
Version Excel: 2000 et 2007

Messagepar V_Elbie » 26 Août 2009, 22:16

Bonjour,

Désolée, je ne vois pas vraiment quel est ton problème.

Cordialement,
VLB
V_Elbie
Membre impliqué
 
Messages: 1521
Inscription: 07 Avr 2007, 19:56
Localisation: Pays de Loire (49)
Version Excel: 2003FR maison-2007FR travail

Messagepar Ontrose » 27 Août 2009, 08:21

Bonjour !
C'est gentil de poster même si l'on ne comprend pas !
Je t'explique en image ^^
http://www.excel-pratique.com/~files/doc2/Screen_.jpg
Voilà, j'ai une macro qui insère 4 lignes à la fin d'une base de donnée comme ceci (les 4 dernières lignes ajoutées sont donc "BTEST_V_A ....")
Mon but est de trier la base en fonction de l'ordre alphabétique de la colonne "ID DRM".

LE soucis c'est que je lorsque je rajoute d'autres lignes, le tri alphabétique ne se fait que pour celles du dessus...

JE voudrais pouvoir trier alphabétiquement toute la base en fonction de cette colonne et ce quelque soit le nombre de ligne du tableau !

Vois-tu mieux maintenant ?

Bien à vous, Ontrose
Ontrose
Membre habitué
 
Messages: 86
Inscription: 07 Août 2009, 09:56
Version Excel: 2000 et 2007

Messagepar galopin01 » 27 Août 2009, 09:04

Bonjour,
Bah... j'imagine que l'ami Elbie n'y "voit" pas mieux maintenant !
car il ne "voit" toujour pas ton classeur ni ta macro...
L'usage pour ce genre de question est de joindre une petit fichier .xls et la macro à bricoler : une image ne dit pas grand chose de ton classeur et elle impose de bricoler une macro bidon qui va peut-être passer à coté du problème...
Le forum propose une méthode facile pour joindre un fichier test. C'est la meilleure méthode pour obtenir une réponse rapide et claire...
Si on doit vraiment répondre à partir de ton seul énoncé, on peut dire qu'il ya 2 façons de prendre le problème :
Soit modifier la macro pour qu'elle évalue au préalable la dernière ligne de ton tableau et qu'elle modifie en conséquence la plage à trier...
Soit nommer (Insertion/Nom/Définir) avec une référence dynamique la plage à trier.
A+
galopin01
Membre dévoué
 
Messages: 931
Inscription: 18 Sep 2008, 17:32
Localisation: bourg en bresse
Version Excel: 2010

Messagepar Ontrose » 27 Août 2009, 09:20

Mea Culpa !
Voilà donc le fichier voulu, le dilemne se passe sur l'onglet Base, dans la colonne B:B les macros qui devraient être modifiées se nomment Trinom2 mais je ne suis absolument pas contre une solution à base de formules ou de nomination dynamique !!

http://www.excel-pratique.com/~files/do ... _DRM_2.zip

En Espérant vous relire, Ontrose !
Ontrose
Membre habitué
 
Messages: 86
Inscription: 07 Août 2009, 09:56
Version Excel: 2000 et 2007

Messagepar galopin01 » 27 Août 2009, 09:49

bonjour,
Ce fichier démo illustre les deux possibilités.
Feuil1 = solution1
Feuil2 = Solution2
Je n'ai pas le temps d'adapter ton fichier joint maintenant mais en attendant tu peux essayer d'adapter ma démo...
A+
galopin01
Membre dévoué
 
Messages: 931
Inscription: 18 Sep 2008, 17:32
Localisation: bourg en bresse
Version Excel: 2010

Messagepar Ontrose » 27 Août 2009, 09:56

Merci beaucoup ! je regarde ça :D
Ontrose
Membre habitué
 
Messages: 86
Inscription: 07 Août 2009, 09:56
Version Excel: 2000 et 2007

Messagepar Ontrose » 27 Août 2009, 10:38

Re !
Eh bien le code en lui même (ton test 2) marche impeccable.
Seul bémol, lorsque je fais dans ma macro "mère" :
Code: Tout sélectionner
Call Tri

avec :
Code: Tout sélectionner
Sub Tri()
Dim iLR%
Sheets("Base").Activate
        iLR = Range("B8").End(4).Row
        Range("B8:BM" & iLR).Sort Key1:=Range("B8"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub


Eh bien ça ne marche pas :s
Pour tester j'ai affecté cette macro à un bouton et elle tourne bien en solo !!
L'erreur est de type 1004 (global machin)

As-tu une idée ?
JE te remercie de ton aide en tous cas :)

le fichier http://www.excel-pratique.com/~files/do ... _DRM_2.zip
Ontrose
Membre habitué
 
Messages: 86
Inscription: 07 Août 2009, 09:56
Version Excel: 2000 et 2007

Messagepar galopin01 » 27 Août 2009, 12:00

ça marchera mieux ainsi :
Code: Tout sélectionner
Sub Tri()
Dim iLR%
Sheets("Base").Activate
With Sheets("Base")
        iLR = .Range("B8").End(4).Row
        .Range("B8:BM" & iLR).Sort Key1:=.Range("B8"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End With
End Sub

Nota : avec With(...) attention aux points (.) avant les .Range(...)
A+
galopin01
Membre dévoué
 
Messages: 931
Inscription: 18 Sep 2008, 17:32
Localisation: bourg en bresse
Version Excel: 2010

Messagepar Ontrose » 27 Août 2009, 13:31

Sublime ça marche parfaitement, merci beaucoup de ton aide l'ami !
Bonne journée, @ bientôt !
Ontrose
Membre habitué
 
Messages: 86
Inscription: 07 Août 2009, 09:56
Version Excel: 2000 et 2007

Suivante

Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google Adsense [Bot] et 43 invités