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 :

macro insertion ligne suivant ordre alphabétique


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Par défaut macro insertion ligne suivant ordre alphabétique
    Bonjour,

    D'un coté, j'ai une liste de nom trié par ordre alphabétique dans une colonne et de l'autre, j'ai un userform dans lequel il y a une textbox dans laquel j'inscrit des noms et un bouton "valider" .

    Est ce que vous auriez une solution pour que lorsque j'appuis sur le bouton "valider", le nom présent dans la text box vienne s'insérrer dans la liste de ma feuille excel au bonne endroit( toujours par ordre alphabétique)


    Exemple:

    avant insertion : Alain
    Claude
    Gerard
    Mathilde
    Simon

    Après insertion: Alain
    Claude
    Gerard
    Laurie
    Mathilde
    Simon


    Merci d'avance de vos réponse

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    bonjour,
    en admettant que la liste de noms se trouve dans la colonne A et débute en A2, A1 ayant le nom du champ:
    j'ai utilisé l'enregistreur de macro pour le classement par ordre alphabétique.
    code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub CommandButton1_Click()
    With Sheets("Feuil1")
    derlign = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & derlign).Value = Me.TextBox1.Value
     
    'classement par ordre alphabétique
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=Range("A1"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    End With
     
        With Sheets("Feuil1").Sort
            .SetRange Range("A2:A" & derlign)
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Par défaut
    Merci pour cette réponse, mais je ne peux utiliser cette solution.
    La methode qui consite à insérer une ligne à la fin de la liste puis à faire un tri alphabétique ne convient pas.

    Je doit inserer directement le nom au bon endroit dans la liste.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Quelle est cette raison impérieuse qui t'empêche de suivre ce conseil?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Quelle est cette raison impérieuse qui t'empêche de suivre ce conseil?
    Je partage la question de Alain....

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Par défaut
    Bonjours,

    Je ne peux pas utiliser la fonction de tri alphabétique car ma liste de "nom" est inscrite dans une table dans laquelle il y a des sous-totaux.

    La seule solution que je vois est d'inserer le "nom" dans la liste en fonction de son orthographe, sans passer par un tri.

  7. #7
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Par défaut
    Citation Envoyé par creunch Voir le message
    Merci pour cette réponse, mais je ne peux utiliser cette solution.
    La methode qui consite à insérer une ligne à la fin de la liste puis à faire un tri alphabétique ne convient pas.

    Je doit inserer directement le nom au bon endroit dans la liste.
    Si tu utilise un cellule de la feuille de calcul.
    EQUIV(Valeur_cherchée;Matrice_de_recherche;1)
    dans ton exemple çà donne 2 (auquel tu ajoute 1 pour selectionner la cellule d'insertion.
    Donc EQUIV(Valeur_cherchée;Matrice_de_recherche;1)+1
    Sous visual basic tu écris la formule dans une cellule que tu récupère après calcul.
    Je ne connais pas l'équivalent de EQUIV en VBA.

Discussions similaires

  1. [XL-2007] Macro insertion ligne ordre alpha + suivi tableau
    Par raph2000fr dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/05/2012, 19h45
  2. [Toutes versions] Macro insertion ligne zone fusionnée
    Par arthur_c dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/03/2012, 13h14
  3. macro copie ligne suivante
    Par John Parker dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 18/04/2011, 11h54
  4. Trier des lignes par ordre alphabétique ?
    Par Evocatii dans le forum Eclipse
    Réponses: 0
    Dernier message: 11/08/2007, 12h26
  5. [VBA-E] ajout d'une ligne avec ordre alphabétique
    Par Yaone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/04/2006, 17h52

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