cp-21papExcelCoordinateConversion.psm1

function ConvertLettersToColumnNumber {
    param(
        [string]$letters
    )

    $columnNumber = 0
    for ($i = 0; $i -lt $letters.Length; $i++) {
        $columnNumber *= 26
        $columnNumber += [char]($letters[$i]) - 64
    }
    
    return $columnNumber
}

function ConvertFrom-ExcelCellCoordinate {
    [CmdletBinding()]
    param(
        [Parameter(ValueFromPipeline = $true)]
        [string]$InputObject
    )

    process {
        
        $InputObject = $InputObject.ToUpper()

        if ($InputObject -match '([A-Z]+)(\d+)') {
           
            $letters = $matches[1]
            $columnNumber = ConvertLettersToColumnNumber -letters $letters
            $rowNumber = $matches[2]

            $object = @{
                Column = $columnNumber
                Row    = $rowNumber
            }

            Write-Output $object
            
        }
        else {
            #Write-Error "Data pas aux normes"
            $object = @{
                Column = 0
                Row    = 0
            }

            Write-Output $object
        }
    }
}