Macros sous excel + BDD excel ...

cs_critof13 Messages postés 6 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 27 novembre 2006 - 27 juin 2006 à 16:41
julien59lille Messages postés 1 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 28 mars 2007 - 28 mars 2007 à 16:45
Bonjour à tous,

Je suis en stage d'entreprise et mon boss me demande de réaliser un glossaire technique/base de donnée, impérativement réalisé sous excel (pour des question de maintenance et d'administration de la BDD).
J'ai commencé à faire un truc mais ca ne marche pas.
En fait, la base de donnée sous excel commence à la ligne 15 (qui est vierge) 16 (début du remplissage ... vis a vis du code), et ceci sur 3 colonnes consécutives (A pour les mots en Anglais, B pour les mots en Francais et C pour les Observations).
J'ai besoin pour utiliser la fonction RECHERCHE sous excel de ranger mes colonnes (A ou B) par ordre alphabétique.
> Ceci, je sais le faire chaque colonne, indépendamment les unes des autres, via des "cas d'option" et des macros (cf. suite) :

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Option Explicit


Sub Casdoption3_QuandClic()


Cells(15, 1).Select
ActiveCell.End(xlDown).Select
   
    While ActiveCell.Row < 10015
        ActiveCell.Resize(ActiveCell.End(xlDown).Row - ActiveCell.Row + 1, i).Select
        Selection.Sort Key1:=Cells(15, i), Order1:=xlAscending, Header:=xlGuess
        ActiveCell.End(xlDown).Select
    Wend


Range("a15").Select
Range("c9").Select


End Sub




Sub Casdoption4_QuandClic()


Cells(15, 2).Select
ActiveCell.End(xlDown).Select
   
    While ActiveCell.Row < 10015
        ActiveCell.Resize(ActiveCell.End(xlDown).Row - ActiveCell.Row + 1, 2).Select
        Selection.Sort Key1:=Cells(15, 2), Order1:=xlAscending, Header:=xlGuess
        ActiveCell.End(xlDown).Select
    Wend


Range("a15").Select
Range("c9").Select


End Sub
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Le problème que je rencontre, c'est que quand j'ordonne une colonne, elle s'ordonne que elle, et les 2 consécutives ne suivent pas, ce qui fait qu'après un réordonnancement par ordre alphabétique, ma base de donnée ne veut plus rien dire (les mots ne se correspondent plus !!!).

Est ce que quelqu'un saurait donc comment pallier ce problème ? ... que quand j'ordonne la seconde colonne par exemple, que les cases qui concordent (sur la meme ligne) dans la première et la troisième colonne suivent cet ordonnancement.

PS : J'ai déjà défini ma base de donnée sous excel de manière traditionnelle (insertion, nom, définir, etc ...)

Merci d'avance pour les quelconques réponses que vous pourrez m'apporter !
N'hésitez pas à me poser des questions.

TOF

4 réponses

cameleon044 Messages postés 36 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 22 novembre 2012
27 juin 2006 à 20:54
Bonjour tu ne peu pas utiliser simplement la finction de tri d'excel (via une macro et ainsi selectionner tes 3 colonnes)?
come ceci

    Range("A16:C50").Select
    Selection.Sort Key1:=Range("A16"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

'A16 pour tier par ordre alphabetique la colonne A
'B16 pour tier par ordre alphabetique la colonne B et ainsi de suite

En esperant t'avoir été utile

A+
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
28 juin 2006 à 06:47
Cameleon044 à raison, pour le tri, la clé c'est ta première colonne mais si les 2 autres ne sont pas également sélectionnées, c'est normal qu'elles ne soient pas triées.

Pense qu'excel possède l'automation de code VB, c'est à dire que tu as la possibilité de t'enregistrer en train de faire certaines actions, un p'tit coup de Alt F11 et hop, le code généré peut s'avérer très utile !

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
cs_critof13 Messages postés 6 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 27 novembre 2006
29 juin 2006 à 09:33
Sincèrement, merci, les gars ...!
C'est déjà super sympa de votre part d'avoir répondu.
C'était ça !
(Je sais pas comment j'ai fait pour passer à coté)
Enfin, le fait est que cela marche donc vraiment merci beaucoup.

TOF
0
julien59lille Messages postés 1 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 28 mars 2007
28 mars 2007 à 16:45
Bonjour,
j'ai bien tape le code et tout fonctionne presque normalement. le pb est que dans ma colonne a trier j'ai une formule, le tri ce fait correctement du plus grand au plus petit mais les 0 sont avant ca fait par exemple dans la colonne les nombres sont (0 , 0 , 0 , 6.5,  4.2 , 2.8) et moi je voudraia avoir (6.5 , 4.2 , 2.8 , 0 , 0 , 0)
Voici la formule =IF(AN4=0,"0",AO4*100/AN4) 

et voici mon code ;
Private Sub CommandButton1_Click()
 Range("A4:BB95").Select
    Selection.Sort Key1:=Range("AP4"), Order1:=xlDescending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

Quelqu,un a-t-il une idee????
Merci d'avance
Julien
0
Rejoignez-nous