IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ma démarche est-elle bonne ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Par défaut
    Bonjour tout le monde,

    Je suis nouveau en VBA et je suis plus habitué à la programmmation WEB (php, sql, actionscript...).
    Je travaille actuellement sur un projet que j'ai initié avec le logiciel excel et je crains de m'être un peu trop avancé sur les fonctionnalités d'Excel...d'où ma venue ici . Je m'explique :
    J'ai un tableau avec les données suivantes : en colonne j'ai numéro d'ordre1, matières1, numéro d'ordre2, matière2,etc... j'ai 24 lignes.
    Mon but est, par sélection, de choisir un nouvel ordre par matière qui se reporte automatiquement sur une nouvelle feuille.

    Pour l'instant, j'arrive, à la l'aide du script suivant placé sur la feuille de réception des nouvelles données, à récupérer le nouvel ordre ainsi créé en modifiant le numéro d'ordre sur la feuille initiale.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Activate()
    Range("A3:B10").Select 'plage par exemple où sont les numéros et les matières
    Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'B5 est la cellule où il y a la première matière
    Range("A3").Select
    Range("C3:D10").Select 'plage par exemple où sont les numéros et les matières
    Selection.Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom 'B5 est la cellule où il y a la première matière
    Range("C3").Select
    End Sub
    Ca fonctionne parfaitement et je récupère les matières avec le nouvel ordre. Par contre les matières non sélectionnées apparaissent alors que je n'en veux pas. Comment faire?

    Seconde question : est-il possible de faire la sélection des matières à traiter avec une autre méthode que celle consistant à modifier "à la main" le nouvel ordre ? J'ai pensé au clic, à la sélection avec outils de formulaire, au clic dans les cellules voulues pour les incrémenter...
    Je tourne en rond... auriez-vous été confronté à ce genre d'application? suis-je sur la bonne piste?....

    Par avance merci de l'aide que vous pourriez m'apporter.



    Je poursuis mes recherches... et j'ai trouvé le moyen de masquer les lignes commençant par 0 sur la feuille qui récupère les données.
    Il ne me manque plus que le mode de sélection dynamique pour la constitution d'un nouveau classement.
    Des idées?

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Je n'ai pas bien compris ce que tu veux faire mais peut être qu'en utilisant l'évenement Worksheet_SelectionChange ...

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Par défaut
    Petit complément d'informations :

    Pour résumer mon but, j'ai un tableau avec des intitulés de cours en colonne précédés d'une colonne avec un numéro d'ordre de 1 à 24. Cela correspond au cursus traditionnel pour un apprenant. Or nous avons des apprenants pour lesquels nous devons fabriquer un cursus adapté (moins de 24 intitulés et pas forcement dans le même ordre).
    Je cherche donc un moyen rapide de sélection sur ce tableau pour construire le nouveau cursus avec un ordre différent sur une nouvelle feuille.

    Pour l'instant en modifiant le numéro d'ordre du tableau initial, je récupère les données nouvellement classées sur l'autre feuille.

    Mes questions :
    - le classement par clic (ou double clic) est-il possible pour gagner du temps sur la saisie du numéro d'ordre ?
    - peut être que je fais fausse route et qu'il y a un moyen plus simple d'obtenir ce que je veux ?


Discussions similaires

  1. La structure de mon code est elle bonne ?
    Par arklane dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 17/08/2014, 13h47
  2. Réponses: 0
    Dernier message: 30/04/2014, 19h19
  3. ma convention de stage est elle bonne ?
    Par Francky44003 dans le forum Droit du travail
    Réponses: 15
    Dernier message: 26/03/2014, 02h53
  4. [mysql] [calcul de dates] Ma requête est-elle bonne ?
    Par tiger33 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2006, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo