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 :

Comment obtenir la lettre-code d’une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 54
    Par défaut Comment obtenir la lettre-code d’une colonne
    Bonjour à chacun,
    Voici une question sûrement basique pour beaucoup.
    Dans un programme VBA sous Excel, j’ai besoin d’avoir la lettre code de la colonne sélectionnée pour faire un tri. Or je connais la propriété Column qui me permet d’avoir le numéro de la colonne (par exemple : noCol = ActiveCell.Column), mais je ne sais pas trouver la lettre code (par exemple A pour la colonne 1, E pour la colonne 5, AA pour la colonne 27, …) pour la mettre dans la variable « Colonne » de type String.
    Voici le tri que je voudrais faire sur la colonne d’une cellule sélectionnée par Range :

    Range(Colonne & iDébut & ":" & Colonne & iFin).Select
    Selection.Sort Key1:=Range(Colonne & iDébut), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom

    Merci par avance.
    RéviAT

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut RéviAT et le forum
    Au moins un qui a compris qu'en expliquant le but, les solutions arrivaient plus vite

    Ta solution n'est pas une codification numéro de colonne/lettres, mais un changement de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range(Colonne & iDébut & ":" & Colonne & iFin).Select
    Selection.Sort Key1:=Range(Colonne & iDébut), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range(Cells(iDébut,Colonne), cells(iFin,Colonne)).Sort Key1:=Cells(iDébut,Colonne), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom
    Em passant, j'ai supprimé le select, par contre j'ai pas testé

    La syntaxe est différente, mais elles pointent toutes la même plage A1:A10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Range("A1:A10")
    [A1:A10]
    range(Range("A1"), Range("A10"))
    range([A1], [A10])
    range(Cells(1,"A"), Cells(10,"A"))
    range(Cells(1,1), Cells(10,1))
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 54
    Par défaut Comment obtenir la lettre-code d’une colonne
    Merci Gorfael. J’apprécie l’amélioration de la syntaxe, mais je ne m’étais pas bien expliquer.
    J’arrive bien à faire le tri, mais par contre je n’arrive à remplir le code de la colonne dans la variable « Colonne ».
    Je ne sais pas passer du code d’une colonne à code de la colonne. Je trouve le numéro de la colonne en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    « noCol = ActiveCell.Column »
    mais ensuite je ne sais pas trouver sa lettre/code.
    Est-ce j’arrive mieux à poser mon problème ?
    Merci.
    RéviAT

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 54
    Par défaut Comment obtenir la lettre-code d’une colonne
    En exploitant bien la réponse de Gorfael, j'ai résulu ma difficulté.
    Merci et à bientôt.
    RéviAT.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut RéviAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Nom_Col As String
    'traitement avant
    Nom_Col = IIf(Len(Cells(1, ActiveCell.Column).Address(0, 0)) = 2, _
                Left(Cells(1, ActiveCell.Column).Address(0, 0), 1), _
                Left(Cells(1, ActiveCell.Column).Address(0, 0), 2))
    Mais, à part pour l'afficher, pour le traitement, le numéro de colonne suffit
    A+
    EDIT : trop lent pour te répondre

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

Discussions similaires

  1. Comment obtenir la somme d'une colonne dans Listview
    Par Jonathan31 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/01/2011, 11h46
  2. Comment obtenir la lettre de la colonne à partir de son indice et vice versa?
    Par benfatpatra dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2008, 11h31
  3. Réponses: 13
    Dernier message: 06/07/2006, 11h25
  4. Réponses: 4
    Dernier message: 24/02/2006, 08h16

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