Sélection de cellules par code ASCII

Bonjour

Pour obtenir les lettres O, R et U, j'utilise le code ASCII correspondant (79,82 et 85) Ainsi chr(79) => O...

Pour sélectionner des cellules en O1, R1 et U1, j'utilise une variable n qui prend la valeur 79, 82 et 85 et que j'incorpore dans un chr(n)

Donc si n= 79, "Range(Chr(n )& "1 " ).ClearContents" va m'effacer la cellule sélectionnée en O1, en fonction de la valeur de n.

Cela n'est valable que pour les lettres A à Z, soit de 65 à 90 et d'autres caractères accentués...

Je cherche une astuce pour pouvoir sélectionner une cellule en AA, AB etc... J'ai essayé avec n =65 de faire "Chr(n) & Chr(n))" mais ça ne fonctionne pas...

..une suggestion ? Merci

bonjour,

utilise cells(numéro de ligne, numéro de colonne) plutôt que range, tu n'auras pas de conversion à faire.

...C'est ce que j'ai fait, bien sûr...je voulais simplement savoir s'il y avait une solution...par curiosité...

Merci

bonjour,

je ne comprends pas vraiment l’intérêt de convertir un N° de colonne en texte mais bon!

split(cells(1,100).address,"$")(1)

Bonjour Jpmalb, le Forum,

Si c'est uniquement par curiosité. Tu peux utiliser le code ci-dessous qui fait appel à une fonction. Pour garder ta manière d'opérer.

Sub Rg()
'Exemple de 65 (A) jusqu'à 90.90 (ZZ)
n = 65.66
Range(Ch(n) & 1).Select
End Sub

Function Ch(r)
m = Int((r - Int(r)) * 100 + 0.01)
If m = 0 Then Ch = Chr(r) Else Ch = Chr(Int(r)) & Chr(m)
End Function

Mais comme te l'a précisé H2s04, Cells est vivement recommandée car beaucoup plus directe et utilisable jusqu'à la dernière colonne d'une feuille.

Bonne continuation.

bonjour,

je ne sais pas si ça présente le moindre intérêt!

'****************************************************
'Permet une incrémentation alphabétique de A à ZZ ??
'Paramètres optionnels
'T := texte à incrémenté
'Nb := nombre d'incréments
'C :=Colonne à traiter
'****************************************************
Function Alphabulateur(Optional T As String = "", Optional Nb As Integer = 1, Optional ByVal C As Integer = 1) As String
Dim i As Integer, txt As String
txt = "  " & Trim(T)
For i = 1 To Nb
    If Trim(Mid(txt, Len(txt) - C + 1, 1)) = "Z" Then
         Mid(txt, Len(txt) - C + 1, 1) = "A"
         txt = Alphabulateur(T:=txt, C:=C + 1)
    Else
        If Trim(Mid(txt, Len(txt) - C + 1, 1)) = "" Then
            Mid(txt, Len(txt) - C + 1, 1) = "A"
        Else
             Mid(txt, Len(txt) - C + 1, 1) = Chr(Asc(Mid(txt, Len(txt) - C + 1, 1)) + 1)
        End If
    End If
Next
Alphabulateur = Trim(txt)
End Function

Sub test()
Dim T(1 To 6) As String
    T(1) = Alphabulateur
    T(2) = Alphabulateur(Nb:=50)
    T(3) = Alphabulateur(T:="A")
    T(4) = Alphabulateur(T:="A", Nb:=3)
    T(5) = Alphabulateur(T:="Z")
    T(6) = Alphabulateur(T:="AZZZZ", C:=2)
    Debug.Print T(1), T(2), , T(3), T(4), T(4), T(5), T(6)
End Sub

Bonjour

... merci à tous... j'ai désormais matière à creuser ...

Rechercher des sujets similaires à "selection code ascii"