Excel: convertir une colonne en chiffre ou caractère

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 286 fois - Téléchargée 46 fois

Contenu du snippet

Cette fonction transforme la colonne d'une cellule soit en caractère, soit en chiffre, suivant ce qu'on lui envoie.

Source / Exemple :


Function xlColumnValue(strColumnIndex As String) As String
' ------------------------------------------------------------------------------
'
' These function changes the Column Number of a cell in character(s)
' or vice versa.
'
' Return: Column Number or Character
'
' ------------------------------------------------------------------------------

    strColumnIndex = ucase(strColumnIndex)
    
    Select Case Asc(strColumnIndex)
        Case 36       ' Absolute Column
            xlColumnValue = xlColumnValue(Mid(strColumnIndex, 2, _
                                      InStr(2, strColumnIndex, "$") - 2))
        Case 48       ' 0 in first character
            MsgBox "The number 0 is invalid.", vbExclamation, "Null Denied"
        Case 49 To 57 ' Number to Char
            If strColumnIndex < 27 Then
                xlColumnValue = Chr(strColumnIndex + 65 - 1)
            Else
                If strColumnIndex Mod 26 <> 0 Then
                    xlColumnValue = Chr(strColumnIndex \ 26 + 65 - 1) + _
                                              Chr(strColumnIndex Mod 26 + 65 - 1)
                Else
                    xlColumnValue = Chr(strColumnIndex \ 26 + 65 - 2) + _
                                              Chr(90)
               End If
            End If
        Case 65 To 90 ' Char To Number
            xlColumnValue = Asc(strColumnIndex) - 65 + 1
            If Len(strColumnIndex) > 1 Then
                xlColumnValue = xlColumnValue * 26 + Asc(Right(strColumnIndex, 1)) - 65 + 1
            End If
        Case Else
            MsgBox "Not yet implemented or Error", vbExclamation, "Error"
    End Select
End Function

Conclusion :


exemple d'appel:
xlColumnValue ("AB") renvoie 28
xlColumnValue ("81") renvoie CC
xlColumnValue ("$CD$31) renvoie 82

A voir également

Ajouter un commentaire

Commentaires

boris3950
Messages postés
8
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
16 avril 2002
-
Cette procédure m'a beaucoup aidée mais je l'ai modifiée pour qu'elle fonctionne au dela de la colonne AY :
If ColInd < 27 Then
ColVal = Chr(ColInd + 65 - 1)
Else
wcar1 = ColInd 26 + 65 - 1
wcar2 = ColInd Mod 26 + 65 - 1
If wcar2 = 64 Then
wcar2 = 90
wcar1 = wcar1 - 1
End If
ColVal = Chr(wcar1) + Chr(wcar2)
End If
cs_Fabian
Messages postés
36
Date d'inscription
vendredi 5 octobre 2001
Statut
Membre
Dernière intervention
6 février 2009
-
Merci Boris3950, je vais faire la modification de suite.
ToblerOWNED
Messages postés
18
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
8 novembre 2004
-
Merci Merci Merci :-D
Commenter la réponse de boris3950

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.