Excel: convertir une colonne en chiffre ou caractère

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

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.