Numero de colonne en VBA

Résolu/Fermé
guadoc Messages postés 70 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 21 octobre 2011 - 9 mai 2011 à 18:45
guadoc Messages postés 70 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 21 octobre 2011 - 10 mai 2011 à 09:43
Bonjour à tous,

Je débute en VBA et je connais pas beaucoup de fonction.

J'aimerais savoir comment obtenir la lettre associée à un chiffre pour pouvoir manipuler plus facilement mes colonnes.
Par exemple pour 1 j'aimerais une fonction VBA qui me renvoie A,
pour 4 elle renvoie D,
pour 27 elle renvoie AA,

Voila si vous connaissez un fonction qui fait cela ou des astuces je veux bien de votre aide.
Merci d'avance.
A voir également:

1 réponse

ccm81 Messages postés 10906 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 13 janvier 2025 2 429
9 mai 2011 à 18:48
bonjour

au choix

celle ci pour une colonne jusqu'à ZZ

Function conum_coalpha(cn As Long) As String    
Dim pln As Long, dln As Long    
Dim cs As String    
  If cn <= 26 Then    
    conum_coalpha = Chr(64 + cn)    
  Else    
    dln = cn Mod 26    
    pln = cn \ 26    
    If dln = 0 Then    
      dln = 26    
      pln = pln - 1    
    End If    
    conum_coalpha = Chr(64 + pln) & Chr(64 + dln)    
  End If    
End Function


ou celle là qui permet d'aller plus loin que 2 lettres pour les colonnes (excel du futur)

Function conum_coalpha(ByVal c As Long) As String    
  If c <= 26 Then    
    If c = 26 Then    
      conum_coalpha = "Z"    
    Else    
      conum_coalpha = Chr(64 + c)    
    End If    
  Else    
    If c Mod 26 = 0 Then    
      conum_coalpha = conum_coalpha(c \ 26 - 1) & conum_coalpha(26)    
    Else    
      conum_coalpha = conum_coalpha(c \ 26) & conum_coalpha(c Mod 26)    
    End If    
  End If    
End Function


bonne suite
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 951
Modifié par Mytå le 9/05/2011 à 19:09
Salut le forum

Une autre façon de faire

Public Function Let_Col(No_Col As Long)  
Let_Col = Split(Cells(1, No_Col).Address(ColumnAbsolute:=False), "$")(0)  
End Function  

Mytå
0
ccm81 Messages postés 10906 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 13 janvier 2025 2 429
9 mai 2011 à 20:42
merci Mytå,
rien ne vaut une bonne connaissance d'excel
bonne soirée
0
guadoc Messages postés 70 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 21 octobre 2011 5
10 mai 2011 à 09:43
Ça marche parfaitement.
Merci beaucoup, vous m'avez fait gagner beaucoup de temps!!
0