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 :

tri d'un tableau


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut tri d'un tableau
    Bonjour,
    mon problème est le suivant. j'ai un grand tableau excel( plusieurs lignes et colonnes) et j'aimerais prendre que les informations qui m'interesse dans ce tableau pour les exploiter par la suite, par exemple j'aurais besoin des valeurs qui se trouve dans une colonne sur 3 et ligne sur 10.
    avez vous des idées SVP

  2. #2
    Membre éclairé
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Par défaut
    tu as besoin que d'une colonne sur trois? et une ligne sur 10 ?
    a vu de nez comme ça a brule pour point, je mettrai chaque colonne (qui m'interesse) dans une matrice puis je le collerai sur une autre page.
    Puis la meme chose avec les lignes.

    ça n'a pas l'air super efficace (de l'ordre de n², si je ne m'abuse), mais ça fait ce que tu demandes.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    Bonjour,

    d'acc avec EvaristeGaloisBis, mais je n'ai pas compris la même chose:
    j'aurai utilisé une methode avec deux boucles imbriquées et un tableau
    du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim Tableau() ' as format de tes valeurs
    dim i as integer,j as integer,a as integer
     
    for i =1 to NbrColonne step 3 'nombre de colonne de ton tableau excel
    for j=1 to NbrLigne step 10 'nombre de ligne
    tableau(a) = cells(j,i)
    a=a+1
    next
    next
    ce n'est qu'une idée je n'ai pas tester ce code

  4. #4
    Membre éclairé
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Par défaut
    J'ai hésité entre les deux méthodes.
    Celles que j'ai choisi me paraissait un peu plus rapide (si les deux feuilles intermediaires existent) lorsque j'ai ecrit ma réponse. Mais je ne suis pas un grand pro dans l'optimisation en temps.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut
    merci pour votre aide, le problème que je suis pas fort en VBA et je sais pas si je dois cree des macros pour ca ou comment.
    je dois pouvoir selectionner a chaque fois les colonnes que j'ai besoin et la frequence pour les lignes, par exemple si la mesure se fait chauqe 2 secondes je peux dir a l'aide d'un menu deroulent, je veux les mesures de chaque 2 ou 4 min.
    merci de m'aider je rame

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    Re,

    Faudrait nous expliquer exactement comment fonctionne ton classeur parceque la j'avoue je ne comprend pas ce que tu as besoin ,
    donc decris bien ton classeur et ce que ta procedure doit faire puis on essayera de trouver une solution (selon nos competences)

  7. #7
    Membre éclairé
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Par défaut
    les secondes sont les lignes ou les colonnes de ton tableau?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut
    voila mon tableau a quoi ressemble et ce que je veux c'est le rendre un peux lisible et exploitable, puisque j'ai 3500 lignes. alors ce que j'ai besoin, dans les colonne blanches je prend juste une ligne comme entête, les colonnes jaunes doivent apparaitre chaque fois, et les colonnes avec les autre couleurs doivent s'afficher quand je sélectionne. en resumé si c'est possible d'avoir un tableau dans une nouvelle feuille avec comme entête date(05.07.2008)heure,texte prog, txtetape. et d'avoir des boutons ou menu déroulant pour sélectionner les colonnes qu'on veut et la fréquence pour les lignes, puisque ces mesures sont prise chaque 2 second(heure).donc si je sélectionne RetPincRF1 et 20 seconde dans les menu déroulant je dois obtenir un tableau avec 0.000001 0(pression),0(RetPincRF1) et la deuxième ligne0.007593,0.000443(pression),0((RetPincRF1).
    voila un peu mon problème.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut tri d'un tableau
    Bonjour,
    me voila sur le forum pour demander de l'aide, j'arrive toujours pas a résoudre mon problème de tri, mon problème c'est que j'ai un grand tableau Excel( plusieurs lignes et colonnes et j'aimerais trier et rendre lisible ce tableau, c.-à-d. de crée un petit programme dans lequel je peux choisir les colonnes et les lignes que je veux. autrement dis si j'ai un tableau avec pression, courant, température tension comme colonnes et j'ai 30 lignes je peux demander que les colonnes de température et tension et une ligne sur 5.

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Et si tu nous expliquais ça autrement ? Parce que là, on peut te proposer une solution mais il est certain qu'on répondra à côté
    Exemple
    j'ai un tableau Excel (pas bien grand le tableau)
    Ce tableau comporte plusieurs colonnes :
    pression, courant, température tension.
    et un certain nombre de lignes :
    30 dans mon exemple
    et enfin, là je demande :
    Et puis...
    "que les colonnes de température et tension et une ligne sur 5."
    Peux-tu préciser ta demande, parce que là on ne sait vraiment pas ce que tu demandes

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    J'ai pas très bien compris la fin, mais en revanche, je te suggère de déjà essayer d'enregistrer une macro où tu fais le tri à la main, et ensuite tu regarde le code source et tu adaptes.

    Après, pour le "une ligne sur 5", je pense que tu peux "afficher/masquer" les lignes que tu veux, et cela en automatique.

    C'est sûr il faudra que tu fasses du code, mais bon on n'a rien sans rien!

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut
    L’exemple de pression et température c'est juste pour vous donner une idée sue ce que je veux mais le tableau que je veux trier je l'es envoyer vous pouvez jeter un coup d'œil.
    je sais pas si on peux appliquer le terme tri sur ce que je veux, ce que je souhaite c'est d'avoir une feuille a part ce tableau et de pouvoir sélectionner que les informations qui m'intéresse dans ce tableau et des les afficher dans cette feuille. Mais pas forcement une colonne sur 2 ou sur 10, et pareil pour les lignes c'était juste un exemple.
    Merci

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Juste comme ça parce que je ne suis toujours pas certain d'avoir tout compris (c'est lundi...) : Regarde déjà dans l'événement SelectionChange d'une feuille de calculs si tu ne pourrais pas en "tirer quelque chose"
    Dans l'éditeur VBA -> Deux clics sur le nom de la feuille ouvre la feuille de code -> un clic dans la liste de gauche sur Worksheet -> Tu sélectionnes l'événement SelectionChange (si ce n'est pas celui donné par défaut)
    Target représente la cellule sélectionnée dans la feuille de calculs.
    De Target, tu peux tirer tout ce que tu veux
    Le contenu : = Target
    L'adresse : = Target.address
    Le N° de ligne : = Target.Row
    Le N° de colonne : = Target.Colonne

    Avec target, tu peux avoir ce qu'il y a dans la colonne voisine
    Valeur = Target.Offset(0, 1).value 'colonne suivante
    ou
    Valeur = Target.Offset(0, -1).Value 'colonne précédente
    Etc.
    Tu dis si ça t'ouvre quelques horirons pour une solution à ton problème

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut
    merci mais je vois pas vraiment la solution vu que je suis nul en VBA.
    donc je cherche toujours un code d'une macro qui peut faire l'effet

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Il va bien falloir que tu commences...
    Tu connais Msgbox ? Si oui, teste donc ce code à placer dans la feuille de code de la feuille de calculs (tu sais, deux clics sur le nom de la feuille dans VB éditor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        MsgBox Target
        MsgBox Target.Address
        MsgBox Tarjet.Row
        MsgBox Target.Column
        MsgBox Tarjet.Offset(0, 1)
    End Sub
    Retourne sur Excel et sélectionne une cellule renseignée.
    Ceci dit, le forum est là pour aider les utilisateurs, pas pour faire le travail à leur place. Le minimum requis est donc que celui qui pose une question mette aussi les mains dans le cambouis.
    Bonne journée

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Ecoute, les programmes ça ne s'obtient pas tout cuit.

    Et même si tu trouves des morceaux de code, il faut être capable de les comprendre et surtout de pouvoir les adapter à ses besoins.

    Je peux te garantir que quel que soit le langage tu n'obtiendra que très rarement des trucs "tout fait magique pas besoin d'y retoucher".

    J'ai regardé le code de ton classeur: c'est ab-so-lu-ment imbuvable, soit dit sans vouloir te froisser. Je comprends que tu ne t'y retrouve pas: moi-même je n'y comprends rien. Je ne vais pas m'étaler sur ce qui ne va pas dans ton programme (surtout que cela serait malvenu), mais bref quand on le voit on remarque de suite que c'est du "copier/coller" que t'as fait avec les macros enregistrées et que tu n'as effectivement aucune expérience de programmation.

    Je te suggère donc d'aller lire les tutoriels de VB/VBA, tu as tout à découvrir pour arriver à avoir un programme "magique". C'est le meilleur conseil qu'on puisse te donner.
    Tu ne pourras pas y couper, c'est obligatoire: tu devras taper toi-même du code pour pouvoir arriver à quelque chose.


    J'espère ne pas avoir été trop cru, mais cela aurait été hypocrite de ma part de ne pas dire ce qui est.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 34
    Par défaut
    Merci

Discussions similaires

  1. Tri d'un tableau en 2D
    Par sniperseb dans le forum C
    Réponses: 4
    Dernier message: 05/01/2006, 16h33
  2. Réponses: 6
    Dernier message: 16/09/2005, 10h30
  3. tri d'un tableau à 2 dimensions
    Par dede92 dans le forum C
    Réponses: 4
    Dernier message: 19/02/2005, 18h29
  4. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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