COLONNE EXCEL DE CHIFFRES EN LETTRES

doringen Messages postés 2 Date d'inscription jeudi 2 novembre 2006 Statut Membre Dernière intervention 2 novembre 2006 - 2 nov. 2006 à 17:37
hebus16 Messages postés 80 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 2 octobre 2009 - 25 févr. 2013 à 11:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34268-colonne-excel-de-chiffres-en-lettres

hebus16 Messages postés 80 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 2 octobre 2009 1
25 févr. 2013 à 11:08
Salut on peut aussi éviter de limiter à deux colonnes ^^
Après il faut juste faire attention au nombre max de colonnes gérées par Excel :D

Public Function NumToLetter(col As Long) As String
Dim nbL As Long

' on détermine le nb de lettre présente par une division entière
nbL = col \ 26

' on va se faire une petite fonction récursive pour ne pas avoir de limite sur le nombre de lettre
If nbL > 0 Then
NumToLetter = NumToLetter(nbL) & Chr((col Mod 26) + 64)
Else
NumToLetter = Chr((col Mod 26) + 64)
End If

End Function
nobruu Messages postés 4 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 3 février 2007
3 févr. 2007 à 02:33
Salut, ça peut aussi se faire sur une seul ligne ligne:

dim x as integer 'numéro de la colonne en chiffres
dim Colonne as string 'nom de la colonne en lettres

Colonne = Replace(Chr(Int(((x - 1) / 26) + 64)) & Chr(((x - 1) Mod 26) + 65), "@", "")
doringen Messages postés 2 Date d'inscription jeudi 2 novembre 2006 Statut Membre Dernière intervention 2 novembre 2006
2 nov. 2006 à 17:37
Excel dispose aussi d´un raccourci intéressant afin de trouver automatiquement la dernière ligne utilisée ( celle que tu appelles "ligfin"). Ici, je définis arbitrairement le début de la zone d´impression en A1 et je laisse excel trouver la dernière cellule de la colonne N tout seul.

Sub printarea()
Dim derCell As Integer

derCell =ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row
ActiveSheet.PageSetup.printarea = ("A1:N" & derCell)

End Sub