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

VB 6 et antérieur Discussion :

instruction non comprise


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 88
    Points : 49
    Points
    49
    Par défaut instruction non comprise
    jai un souci le créateur du programme a écrit une instruction et j y comprend rien si vous pouviez m aider sa m arrangeré, voici l instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    monclasseur.ActiveSheet.Range(monclasseur.ActiveSheet.Range(monclasseur.ActiveSheet.Range("A1"), _
    monclasseur.ActiveSheet.Range("A1").End(xlToRight)), _
    monclasseur.ActiveSheet.Range(monclasseur.ActiveSheet.Range("A1"), _
    monclasseur.ActiveSheet.Range("A1").End(xlToRight)).End(xlDown)).Sort Key1:=monclasseur.ActiveSheet.Range("A2"), _
    Order1:=xlAscending, Key2:=monclasseur.ActiveSheet.Range("B2") _
    , Order2:=xlAscending, Key3:=monclasseur.ActiveSheet.Range("C2"), Order3:=xlAscending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Pas évident, avec toutes ces imbrication de 'monClasseur.ActiveSheet.Range(...)', y'a d'quoi devenir chèvre! Mais comme je suis une bonne pâte, je ne te laisserai pas dans l'fromage...

    Ça ressemble à une forme de tri à deux critères. C'est tout ce que j'ai pu en comprendre.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    c est justement du a toute ces imbrications que ma comprehension a du mal se faire, y a t-il un systeme pour faire un tri plus simple que celui la ?du genre tri a bulle ou un autre du genre plutot que celui-ci ?

    j adore ton humour lol

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    T'aime pas l'humour ?

    L'entête qui adresse le tri «sort» semble indiquer que celui qui a écrit le code ne savait pas comment définir une plage.

    Dans un premier temps pour faire plus propre et surtout plus lisible
    (en supposant que monclasseur ne soit pas le classeur actif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sh as worksheet
    set sh=monclasseur.activesheet
    puis essayer de remplacer l'entête avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sh.range("A1").currentregion.sort ....
    ça devrait le faire

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    si j aime l humour c était pas ironique mais sincere, sinon le currentregion.sort remplaceré mes 5 ou 6 lignes de codes ?car je vois pas vraiment quel ligne je dois remplacer par ta solution a part le fait de remplacer tout les monclasseur.activesheets par sh mais le
    le worksheet comme type n est pas reconnu par le compilateur
    avec ta solution sa se reduit a sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sh.Range(sh.Range(sh.Range("A1"), sh.Range("A1").End(xlToRight)), sh.Range(sh.Range("A1"), _
    sh.Range("A1").End(xlToRight)).End(xlDown)).Sort Key1:=sh.Range("A2"), _
    Order1:=xlAscending, Key2:=sh.Range("B2"), Order2:=xlAscending, Key3:=sh.Range("C2"), Order3:=xlAscending, _
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    mais moi y a toujours certaine chose que je saisis pas du genre pourquoi c est toujours la meme cellule range("A1") qui est selcetionné

  6. #6
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    T'as regardé les tutoriels ?

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    oui mais je ne trouve pas ce que je cherche, j ai compris grace a toi qu il voulait trier les 3 premiere colonne du tableau sauf qu il me genere une erreur "erreur definie par l application ou par l objet" sur ce tri, j aimerais savoir comment refaire ce tri plus simplement car du au embrication je ne comprend pas pourquoi il a fait tout cela pour pouvoir trier

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Histoire de voir comment Excel crée un tri, Ouvre un classeur (celui-ci ou un autre, ou un nouveau, c'est toi qui vois) et tu enregistre une macro qui fait un tri, sur une ou plusieurs colonne. Ensuite, regarde le code. C'est une méthode qui s'avère toujours instructive.

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    jai deja essayé mais le probleme revien quand je le met dans mon programme d origine et le probleme étant que mon visual basic 5 me permet aucune macro de VBA ce qui m embete un peu vu que je dois faire une mise en page pour mon tableau

  10. #10
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Bien sur que non! Tu ne peux pas mettre tel quel une macro d'Excel directement dans VB5 (ni les VB de toutes versions d'ailleurs). C'est juste que je voulais démontrer qu'il y a peut-être une façon d'écrire un tri (avec ou sans imbrication) qui est naturelle à VBA (Visual Basic pour Application, la version de VB utilisée pour les Macro-commandes de MsOffice).

    Dans VB5 (ou autres versions), tu dois déclarer et utiliser des variables pour chaque type d'objets d'Excel que tu dois utiliser.
    • L'application Excel elle-même (Excel.Application)
    • Un classeur (WorkBook)
    • Une Feuille de calcul (WorkSheet)
    • Une cellule ou une plage de cellules (Range)


    Le tri est une des méthodes de l'objet Range.

    Si tu as l'aide de VB, regarde dans le Sommaire. Tu dois avoir une rubrique (livre) sur le développement avec Office et une sous rubrique (un autre livre) pour Excel. Du moins, ces rubriques sont présente pour la version MSDN de VB6. Pour VB5, faudrait vérifier.

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Citation Envoyé par levac
    si j aime l humour c était pas ironique mais sincere, sinon le currentregion.sort remplaceré mes 5 ou 6 lignes de codes ?car je vois pas vraiment quel ligne je dois remplacer par ta solution a part le fait de remplacer tout les monclasseur.activesheets par sh mais le
    le worksheet comme type n est pas reconnu par le compilateur
    avec ta solution sa se reduit a sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sh.Range(sh.Range(sh.Range("A1"), sh.Range("A1").End(xlToRight)), sh.Range(sh.Range("A1"), _
    sh.Range("A1").End(xlToRight)).End(xlDown)).Sort Key1:=sh.Range("A2"), _
    Order1:=xlAscending, Key2:=sh.Range("B2"), Order2:=xlAscending, Key3:=sh.Range("C2"), Order3:=xlAscending, _
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    mais moi y a toujours certaine chose que je saisis pas du genre pourquoi c est toujours la meme cellule range("A1") qui est selcetionné
    Bonsoir,

    "A1" est le début de la sélection et la fonction excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh.Range("A1").End(xlToRight)).End(xlDown)).
    sélectionne la plage A1 jusque la dernière ligne INITIALISEE et idem pour les colonnes
    Ce qui revient à faire une plage en étant certain qu'il n'y a pas de test inutile
    tout en ne connaissant pas la fin des lignes et des colonnes ce qui peut changer d'une fois à l'autre.
    J'ai un peur regarder cette fonction, il me semble qu'elle fait un genre de tri que je n'ai pas bien compris pour les références A2,B2 et C2

    De plus, j'ai testé le fonction ci-dessus et la double direction renvoi 0 ou ""
    il faut donc divisé cette fonction, elle vient peut-être de la derniere version d' Excel. Et je pencherai plutôt pour cette alternative et que c'est pour cela que la fonction plante.

Discussions similaires

  1. Instructions non-comprises
    Par takout dans le forum Images
    Réponses: 3
    Dernier message: 08/06/2012, 21h16
  2. Instruction non comprise !
    Par ..::snake::.. dans le forum C++
    Réponses: 3
    Dernier message: 01/02/2008, 09h51
  3. Instruction non comprise
    Par thor18 dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/01/2008, 18h29
  4. Erreur "indice hors limite(0)" non comprise
    Par Bruno1905 dans le forum Bases de données
    Réponses: 9
    Dernier message: 10/06/2005, 13h02
  5. [Système] Suite d'instructions non interrompue
    Par hyperion dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 19/07/2004, 12h24

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