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 :

Convertir nombre en lettre (indice de colonne)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut Convertir nombre en lettre (indice de colonne)
    Bonjour,

    Je dois masqer et afficher des colonne en fonction du variable
    ex: i=3 il faut alors afficher les 3 premières colonnes et masquer le reste


    J'utilise les fonctions suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'Pour masquer
    Columns("B:F").Select 
    Selection.EntireColumn.Hidden = True 
     
    'Pour afficher
    Columns("B:F").Select 
    Selection.EntireColumn.Hidden = False
    Mais cette fonction est basé sur des indices de colonne A,B,C etc.

    Comment puis je convertir la valeur 3 en C 4 en D etc... ou connaissez vous une autre fonction.

    D'avance merci.

    Cdlt.

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ' Pour masquer
    Range(Columns(2), Columns(6)).Hidden = True
     
    'Pour afficher
    Range(Columns(2), Columns(6)).Hidden = False
    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!

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut Merci
    Merci

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour

    le code ascii du A = 65 alor, chr(64 + col) te donnera la lettre pour les colonnes

    mais tes colonnes peuvent aller jusqu'à IV
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function colonne(col as integer) as string
        If col > 26 Then colonne = Chr(64 + Int(col / 26)) Else colonne = ""
        collonne = colonne & Chr(64 + (colonne Mod 26))
    end function
    et dans la macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns(colonnes(5) & ":" & colonne(7)).entirecolumn.hidden = false
    Edit : je suis en retard moi

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut Erreur
    En fait,'jai une erreur de compilation avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuille1").Range(Columns(1), Columns(4)).Hidden = True
    Merci

  6. #6
    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
    Même réponse que par MP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Worksheets("Feuille1").Columns(1), Worksheets("Feuille1").Columns(4)).Hidden = True
    Edit: Testé, ça marche chez moi.
    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!

  7. #7
    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 wilfried_42
    je pense qu'il y a une erreur de recopie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function colonne(col as integer) as string
        If col > 26 Then colonne = Chr(64 + Int(col / 26)) Else colonne = ""
        collonne = colonne & Chr(64 + (col mod 26))    '(colonne Mod 26))
    end function
    J'en ai profité pour en faire une fonction feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function colonne_1(col As Integer) As String
    Application.Volatile
    If col < 1 Or col > [A65000].End(xlDown).End(xlToRight).Column Then
        colonne_1 = "#VALEUR"
    Else
        colonne_1 = IIf(col > 26, Chr(64 + Int(col / 26)), "") & Chr(64 + (col Mod 26))
    End If
    End Function
    Je pense que ça devrait couvrir la plupart des cas de figures, mais ne connaissant pas les limites d'Excel 2007, je n'en suis pas sûr
    A+

  8. #8
    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
    Je ne comprends toujours pas pourquoi on s'échine à vouloir convertir les numéros de colonnes alors qu'il est possible d'utiliser leur index.
    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!

  9. #9
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour Gorfael

    Merci pour la correction, je suis endormi ce matin et je me suis melangé dans les col et colonne
    je viens de voir, j'ai meme ecrit collonne au lieu de colonne

    Merci encore

    Cordialement

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

Discussions similaires

  1. ConvNumberLetter Word - convertir nombres en lettres
    Par Le_Masque_De_Zoro dans le forum VBA Word
    Réponses: 1
    Dernier message: 17/07/2014, 01h18
  2. Convertir un nombre en lettres ?
    Par narmataru dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 12/05/2009, 18h18
  3. convertir nombre en lettres
    Par blackwater dans le forum C
    Réponses: 4
    Dernier message: 30/04/2008, 12h03
  4. [LIBRAIRIE] Convertir nombre en lettre
    Par narmataru dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 18/12/2007, 17h25
  5. Convertir nombre en lettre dans excel 2007
    Par ghizou771 dans le forum Excel
    Réponses: 1
    Dernier message: 15/12/2007, 08h15

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