Bonjour à tous,
dans mon travail, j'ai été confronté à une difficultée et j'ai choisi la solution le code suivant: d'incrémenter des caractères (j'ai choisis de poster ce code car je ne trouvais aucune réponse à mon problème en cherchant sur internet, si celà peut aider d'autres personnes, ce serait déja pas mal)
ce Code permet de compte de A jusqu'à ZZ dans l'ordre des identifiants des colonnes excel
voici le code, je vous décrit en dessous la signification des paramètres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Sub StrIncrement(startrow as integer ,col as string ,nbIncrement as integer, ws as worksheet)
Dim count as integer
count = startrow
While count < startrow + nbIncrement
If Len(ws.Range(col & count).Value) = 1 Then
If ws.Range(col & count).Value = "Z" Then
ws.Range(col & (count + 1)).Value = "AA"
Else
ws.Range(col & (count + 1)).Value = Chr(Asc(ws.Range(col & count).Value) + 1)
End If
Else
If Right(ws.Range(col & (count + 1)).Value, 1) = "Z" Then
ws.Range(col & (count + 1)).Value = Chr(Asc(Left(ws.Range(col & count).Value, 1) + 1)) & "A"
Else
ws.Range(col & (count + 1)).Value = Left(ws.Range(col & count).Value, 1) & Chr(Asc(Right(ws.Range(col & count).Value, 1)) + 1)
End If
End If
count = count + 1
Wend
End Sub |
startrow as integer ==> décrit quelle ligne on prend pour référence pour commencer à incrémenter (on incrémente à partir d'un caractère éxistant)
col as string ===> décrit la colonne où se réalise l'incrémentation
nbIncrement as integer ===> décrit le nombre d'incrémentation
ws as worksheet ===> décrit juste la feuille où se réalise toute les opérations
un exemple d'appel pourrait être :
call StrIncrement(1 ,"A" ,25,worksheet("feuil1"))
avec dans la cellule "A1" de la feuille "feuil1" le caractère "X" (l'incrémentation est prévue pour être exclusivement avec des majuscules mais quelques retouches pourraient le rendre plus polyvalent)
Partager