XGuarden
Messages postés259Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention17 août 2012
-
3 déc. 2006 à 01:29
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
3 déc. 2006 à 18:37
Bonjour,
Je cherche simplement a avoir un dtagridview avec un entete du style d'Excel.
A, B ,C ,....., ZZ
En gros j'aurais besoin de savoir comment faire pour récupéré la valeur en lettre grace a l'index de la colonne.
JE peu utiliser 26 boucles bien sur..... mais je cherche une facons propre. Merci =:0)
'
=============================================================
' RETOURNE L'INDEX NOMMé (HEADER RéEL) DE LA COLONNE
EXCEL
'
----------------------
' GetColumnHeaderFromIndex
et GetLetterFromNumber indissociables
'
=============================================================
Function GetColumnHeaderFromIndex(ByVal Index As Integer) As String
Dim iInt%, iRest%
If Index > 256 Then
GetColumnHeaderFromIndex = vbNullString
ElseIf Index < 27 Then
GetColumnHeaderFromIndex = GetLetterFromNumber(Index)
Else
iInt = Index \ 26: iRest = Index Mod 26
If iRest = 0 Then iInt = iInt - 1: iRest = 26
GetColumnHeaderFromIndex = GetLetterFromNumber(iInt) &
GetLetterFromNumber(iRest)
End If
End Function
Function GetLetterFromNumber(ByVal Number As Integer) As String
If Number < 1 Or Number > 26 Then GetLetterFromNumber = vbNullString
Else GetLetterFromNumber =
Chr$(Number + 64)
End Function
'
=============================================================
' RETOURNE L'INDEX (VALEUR) DE LA COLONNE
EXCEL
'
----------------------
' GetIndexFromColumnHeader
et GetNumberFromLetter indissociables
'
=============================================================
Function GetIndexFromColumnHeader(ByVal Header As String) As Integer
Dim sL$, sR$, iLen%
iLen = LenB(Header)
If iLen = 2 Then
sL = Chr$(0): sR = Header
ElseIf iLen = 4 Then
sL = LeftB$(Header, 2): sR = RightB$(Header, 2)
Else
sL = Chr$(0): sR = Chr$(0)
End If
GetIndexFromColumnHeader = 26 * GetNumberFromLetter(sL) +
GetNumberFromLetter(sR)
End Function
Function GetNumberFromLetter(ByVal Letter As String) As Integer
GetNumberFromLetter = Asc(Letter) - 64
If GetNumberFromLetter < 1 Or GetNumberFromLetter >
26 Then GetNumberFromLetter = 0
End Function