Incrémenter de A vers ZZ ... etc en VBA

Bonjour,

Je n'ai pas de fichier ni de code à vous soumettre. Je cherche simplement, un bout de code VBA qui

me permettrait d'incrémenter la valeur d'une cellule qui contient une lettre.

expl: Je lis la cellule (A1): si sa valeur est "B" j'y inscris "C" etc....

Cela me sert à suivre les modifications d'un document.

Pensez vous que ça soit possible ?

salut

ce type de code permet de trouver pour une lettre placer en A1, la lettre suivante :

Dim tablo(1 To 26)
Dim i As Byte, pos As Byte
Dim lettre As String

'on remplit un tableau avec l'alphabet
For i = 1 To 26
    tablo(i) = Split(Cells(1, i).Address, "$")(1)
Next i
lettre = Range("a1")
'on recherche l'emplacement de la lettre dans le tableau
pos = Application.Match(lettre, tablo, 0)
'on renvoi la lettre suivante
MsgBox "La lettre suivante est le : " & tablo(pos + 1) 'bug sur Z

attention : ce code ne gère aucun bug (absence de lettre, le "Z", etc...)

il faut l'adapter à ton fichier, mais je ne sais pas ce qui va déclencher le code ni ce qui doit se passer arrivé à Z

a plus

Hervé a écrit :

salut

ce type de code permet de trouver pour une lettre placer en A1, la lettre suivante :

il faut l'adapter à ton fichier, mais je ne sais pas ce qui va déclencher le code ni ce qui doit se passer arrivé à Z

a plus

Merci, ton code me conviendrait, les bugs, je sais gérer MAIS je souhaiterais pouvoir aller au dela de la lettre "Y" ...

Bonjour bastlast

bonjour Hervé

une autre proposition, via une fonction incrémentation alphabétique

par exemple

=incralpha("ZZZ") en dans une cellule excel

ou cells(1,1)=incralpha(cells(1,1)) en vba

Function incralpha(s)
    pl = Len(s)
    If Right(s, 1) = "Z" Then
        If pl = 1 Then
            incralpha = "AA"
        Else
            incralpha = incralpha(Left(s, pl - 1)) & "A"
        End If
    Else
        incralpha = Left(s, pl - 1) & Chr(Asc(Right(s, 1)) + 1)
    End If
End Function

Bonjour,

Voir fichier joint.

A+

438inclettre.xlsm (19.47 Ko)

reBjr,

Merci pour vos réponses. Je vais les étudier.

Mais pour une fois, j'y suis arrivé tout seul, à l'aide de trois petites boucles (les deux premières ne pouvant être exécutées qu'une fois d'ailleurs) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim i As Integer, j As Integer, x As Integer, s As Integer
Dim lettre As String
Dim tablo()

On Error Resume Next

Cells(1, 1).Value = UCase(Cells(1, 1).Value)

For i = 0 To 25
    lettre = Chr(i + 65)
    ReDim Preserve tablo(i)
    tablo(i) = lettre
Next

For j = 0 To 25
    For r = 0 To 25
        lettre = tablo(j) & tablo(r)
        x = UBound(tablo) + 1
        ReDim Preserve tablo(x)
        tablo(x) = lettre
    Next
Next

For s = 0 To UBound(tablo)
    If tablo(s) = Cells(1, 1).Value Then
        Cells(1, 1).Value = tablo(s + 1)
        Exit Sub
    End If
Next

End Sub

Ça vaut ce que ça vaut, mais je suis pas peu fier !

178inc.xlsm (14.51 Ko)
Rechercher des sujets similaires à "incrementer etc vba"