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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Points : 7
    Points
    7
    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 chevronné 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
    Points : 2 003
    Points
    2 003
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Points : 7
    Points
    7
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Quelle est cette raison impérieuse qui t'empêche de suivre ce conseil?

  5. #5
    Membre chevronné 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
    Points : 2 003
    Points
    2 003
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Points : 7
    Points
    7
    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
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Points : 6
    Points
    6
    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