VBA SOUS EXCEL - aide pour 3 fonctions je suis un newbie

Pour ce qui est de la documentation, je laisse les autres te répondre.
Personnellement, je n’ai jamais été très satisfait de ce qu’on trouve dans les manuels. L’aide excel et les différents liens qu’on trouve sur le net sont souvent plus explicites.

Pour ce qui est du tri que tu veux reconstituer, c’est plus compliqué qu’il n’y paraît au premier abord.
Une fois ton formulaire créé avec tres 3 listes déroulantes et son bouton de validation, il faut lors du clic sur ce dernier

  • vérifier que le choix est valide (pas deux fois la même valeur)
  • utiliser une formule identique à celle fournie par la macro automatique, en l’adaptant à ton besoin :
    [B]Selection[/B].Sort Key1:=Range("[B]xx[/B]"),  Key2:=Range("[B]yy[/B]"), Key3:=Range("[B]zz[/B]"), Header:= xlYes

Selection : ta zone à trier y compris la ligne de titres
Range(“xx”) la première cellule DATA de la colonne à trier, c’est à dire celle qui se trouve juste en dessous du titre de la colonne - idem pour yy et zz
La difficulté vient donc du fait qu’on ait à

  • identifier une selection pour le tri (qui peut changer en cours de route, puisque tu envisages des inserts de ligne)
  • repérer une colonne depuis son nom
  • utiliser une autre cellule que celle identifiée
    Je te laisse réfléchir à la question

je n’ai fait que des tests toutes l’après midi et ce soir

mais impossible de réaliser puisque je pense que je suis limité par mes compétences de jeune premier. cependant est ce que tu crois qu’on peut feinter comme ci après. je t’explique :

admettons que mon tableau est formaté et qu on y touche plus au niveau champs/titres. la on ne s occupe plus des titres mais des données qui ont été insérées.
1- la premiere cellule (ex : a2) dans mon tableau(c’est la colonne date pour info) en haut a gauche restera toujours la meme,qu il y en ai 1 ou 1564 insertions. par contre la derniere en bas a droite ne sera jamais a la meme cellule, donc à ton avis, est ce que tu crois que si fait une fonction de validation, genre si dans la cellule de reference (la derniere en bas a droite ex: f5), si il existe une donnée en f6, alors continuer jusqu’à temps qu’il n’y ait aucune donnée, puis des qu’il nya plus de donnees alors choisir plage (a2:f(x)–>on traduira f(x) -1) ".

sinon j ai rajoute un combobox qui correspond a l’agence de l’employé. comment puis je faire pour que dès que choisis l’employé dans la 1ere combobox, la relation se fasse directement dans ma deuxieme combobox stp. dans ma base de données, toutes les données sont sur la meme ligne(nom , agence, fonction), et inversement si je choisis l agence, comment faire pour que dans la premier combobox, je ne puisse choisir que des gens de cette agence?

Merci

Sur le premier point :
Il faudrait que tu lises dans l’aide en ligne tout ce qui concerne RANGE (méthodes et propriétés)
Avec Range, tu peux sélectionner toute une zone à partir d’une cellule :
essaie ce code :


Dim R as Range
set R = range("A1")
set R = R.currentregion()
R.select 
Selection.Sort Key1:=Range( etc...

Quand tu auras bien compris comment ca marche, tu pourras supprimer l’appel à Selection :
R.Sort key1:= etc…

Pour tes correspondances de combobox, il faut le faire à partir de l’évenement exit() de la première :
A chaque fois que tu quittes la première liste, la fonction employé_exit() devra rechercher sa propre valeur dans les élements de agence et forcer l’index à la valeur appropriée.

bonjour,
ma macro ne fonctionne plus sous office 2007
j’ai un message d erreur
erreur de compilation dans le module caché
et quand j’essaie d y accéder dans le mode création, il me met projet verrouilé
pouvez vous m aider svp