Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Futur Membre du Club
    Profil pro laetitia cartron
    Inscrit en
    novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Nom : laetitia cartron

    Informations forums :
    Inscription : novembre 2010
    Messages : 55
    Points : 15
    Points
    15

    Par défaut tri automatique tableau

    Bonjour,

    J'ai créé un tableau avec 9 colonnes (A à I) avec la 1ère ligne correspondant aux en-têtes de colonnes. Les nouveaux enregistrements viennent s'inscrire automatiquement sur la dernière ligne de mon tableau. Est-ce qu'il est possible à partir de ce moment-là qu'Excel reclasse le tableau par ordre alphabétique (tri sur la colonne A).

    En vous remerciant d'avance de votre aide.

  2. #2
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro Pierre Fauconnier
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 242
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre Fauconnier
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 242
    Points : 19 879
    Points
    19 879

    Par défaut

    Salut.

    Voici le code générique
    Code :
    Range("a:i").Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes
    Tu peux l'insérer dans un évènement (tel que Deactivate de la feuille, par exemple).

    Attention. Si tu le places au sein de Change de la feuille, l'utilisateur risque d'être surpris, même s'il a alors le tri en temps réel.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------

    Mon nouveau tuto Access est en ligne - Mes articles sur DVP
    Vous souhaitez rédiger pour DVP? Contactez-moi
    Amoureux de la langue française? Venez corriger nos ressources
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    N'oubliez pas de VOTER
    (en bas à droite d'un message)
    ---------------

  3. #3
    Futur Membre du Club
    Profil pro laetitia cartron
    Inscrit en
    novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Nom : laetitia cartron

    Informations forums :
    Inscription : novembre 2010
    Messages : 55
    Points : 15
    Points
    15

    Par défaut

    Bonjour,

    Je viens d'essayer le code et cela ne marche pas. Erreur 1004.

  4. #4
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro Pierre Fauconnier
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 242
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre Fauconnier
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 242
    Points : 19 879
    Points
    19 879

    Par défaut

    Donne le code complet...

    Si tu l'utilises au sein d'une procédure événementielle de la feuille de calcul concernée, il n'y a pas de raison qu'il provoque une erreur, sauf si ta feuille est protégée.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------

    Mon nouveau tuto Access est en ligne - Mes articles sur DVP
    Vous souhaitez rédiger pour DVP? Contactez-moi
    Amoureux de la langue française? Venez corriger nos ressources
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    N'oubliez pas de VOTER
    (en bas à droite d'un message)
    ---------------

  5. #5
    Futur Membre du Club
    Profil pro laetitia cartron
    Inscrit en
    novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Nom : laetitia cartron

    Informations forums :
    Inscription : novembre 2010
    Messages : 55
    Points : 15
    Points
    15

    Par défaut


    Etant nulle en VBA, j'ai simplement recopié le code ci-dessus dans la procédure évènementielle de ma feuille. Avec worksheet et deactivate.

  6. #6
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro Pierre Fauconnier
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 242
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre Fauconnier
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 242
    Points : 19 879
    Points
    19 879

    Par défaut

    Code :
    1
    2
    3
    Private Sub Worksheet_Deactivate()
    Range("a:i").Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes
    End Sub
    Mets un copier-coller de ton code svp, on perdra moins de temps.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------

    Mon nouveau tuto Access est en ligne - Mes articles sur DVP
    Vous souhaitez rédiger pour DVP? Contactez-moi
    Amoureux de la langue française? Venez corriger nos ressources
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    N'oubliez pas de VOTER
    (en bas à droite d'un message)
    ---------------

  7. #7
    Futur Membre du Club
    Profil pro laetitia cartron
    Inscrit en
    novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Nom : laetitia cartron

    Informations forums :
    Inscription : novembre 2010
    Messages : 55
    Points : 15
    Points
    15

    Par défaut


    Merci pour ta réponse. Cela marche. Erreur inattention. J'avais mal indiqué le nombre de ligne.

    Merci bcp.

  8. #8
    Responsable
    Office & Excel

    Avatar de Pierre Fauconnier
    Homme Profil pro Pierre Fauconnier
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    9 242
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre Fauconnier
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 9 242
    Points : 19 879
    Points
    19 879

    Par défaut

    Perso, il n'y a pas de nombre de lignes dans mon code...

    Mais bon, si ta solution te convient, tant mieux. Je suppose que tu as des données sous les lignes à trier...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------

    Mon nouveau tuto Access est en ligne - Mes articles sur DVP
    Vous souhaitez rédiger pour DVP? Contactez-moi
    Amoureux de la langue française? Venez corriger nos ressources
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    N'oubliez pas de VOTER
    (en bas à droite d'un message)
    ---------------

  9. #9
    Futur Membre du Club
    Profil pro laetitia cartron
    Inscrit en
    novembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Nom : laetitia cartron

    Informations forums :
    Inscription : novembre 2010
    Messages : 55
    Points : 15
    Points
    15

    Par défaut

    Bonjour,

    Au début j'ai saisie le code suivant dans la procédure évènementielle:
    Private Sub Worksheet_Deactivate()
    Range("a:i").Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes
    End Sub

    Cela me met le message suivant : Erreur exécution1004 : La méthode sort de la classe range à échoué.

    Si je saisie ce code :
    Private Sub Worksheet_Deactivate()
    Range("a1:i1580").Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes
    End Sub

    Cela marche. Je me suis posé la question justement pour les données rentrée à la suite de la ligne 1580. J'ai rentré 5 enregistrements supplémentaires à la suite. Il me les prends en compte puisque qu'il me les classes dans le tableau. Par contre si je supprime des enregistrements et donc ma dernière ligne de mon tableau est la 1575, alors de nouveau j'ai ce message d'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •