VBA EXCEL - CONVERSION DE NO DE COLONNE EN LETTRES DE COLONNE (26->Z, 27->AA)
CTAC
Messages postés133Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 8 juin 2012
-
16 juin 2005 à 15:04
wallon14
Messages postés56Date d'inscriptionvendredi 17 octobre 2003StatutMembreDernière intervention 3 juillet 2005
-
22 juin 2005 à 10:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
PS : Tu devrai définir les cellules à analyser avec des Cells(x, y) plutôt que des ActiveCells, en cas de feuilles multiples, tu risque d'avoir des problème !
CTAC
Messages postés133Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 8 juin 20125 16 juin 2005 à 15:04
Bonjour.
Function Cenl_ctac$(Addr$)
Dim lAdd$
#If VBA6 Then
Cenl_ctac = Split(Addr, "$")(1&)
#Else
lAdd = Left$(Addr, InStr(2&, Addr, "$") - 1&)
Cenl_ctac = Right$(lAdd, Len(lAdd) - 1&)
#End If
End Function
Sub Test()
Dim Col&, Lig&, I&
With ActiveCell
Col = .Column
Lig = .Row
End With
For I = Col To 256&
Cells(Lig, I) = Cenl_ctac(Cells(Lig, I).Address)
Next I
End Sub
22 juin 2005 à 10:14
17 juin 2005 à 23:40
Personnellement je n'ai jamais eu besoin d'utiliser cette lettre de colonne car l'usage de cells(r,c) m'a tjrs suffit.
J'ai revu entre temps la personne qui me demandait cette fonction et je pense l'avoir convaincue du peu d'utilité de celle-ci.
Ceci dit, merci pour votre code qui, s'il marche (je ne l'ai pas essayé) a le mérite d'être compact.
JC
17 juin 2005 à 14:19
Lettre de la colonne :
Colonne = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
Explications sur http://www.excelabo.net/xl/adresses.php
PS : Tu devrai définir les cellules à analyser avec des Cells(x, y) plutôt que des ActiveCells, en cas de feuilles multiples, tu risque d'avoir des problème !
16 juin 2005 à 15:04
Function Cenl_ctac$(Addr$)
Dim lAdd$
#If VBA6 Then
Cenl_ctac = Split(Addr, "$")(1&)
#Else
lAdd = Left$(Addr, InStr(2&, Addr, "$") - 1&)
Cenl_ctac = Right$(lAdd, Len(lAdd) - 1&)
#End If
End Function
Sub Test()
Dim Col&, Lig&, I&
With ActiveCell
Col = .Column
Lig = .Row
End With
For I = Col To 256&
Cells(Lig, I) = Cenl_ctac(Cells(Lig, I).Address)
Next I
End Sub
ctac