XL 2013 extraction suite en fonction d'un intervalle

bibbip35

XLDnaute Occasionnel
Bonjour à tous

Je chercherais a faire une extraction d'un intervalle d'une suite Alphanumérique
Objectif
R1-R6 serait R1;R2;R3;R4;R5;R6
A12-A15 serait A12;A13;A14;A15
etc..

Est-il possible de créer une tel fonction avec Excel ? Car malgré mes recherches sur le Net , je n'ai rien trouvé

Merci à tous pour votre aide et joyeux Noel a tous

Bibbip
 

job75

XLDnaute Barbatruc
Bonjour bibbip35, mapomme,

Ici la fonction utilise les expressions régulières :
Code:
Function Suite$(t$)
Dim o As Object, a As Object, x$, s$, i%
Set o = CreateObject("vbscript.regexp")
o.Global = True
o.Pattern = "\d+"
Set a = o.Execute(t)
If a.Count <> 2 Then Exit Function
x = Left(t, InStr(t, a(0)) - 1)
s = Mid(t, Len(x) + Len(a(0)) + 1, 1) 'séparateur
If LCase(t) <> LCase(x & a(0) & s & x & a(1)) Then Exit Function
If Val(a(0)) = Val(a(1)) Then Suite = x & Val(a(0)): Exit Function
For i = a(0) To a(1) Step IIf(Val(a(0)) < Val(a(1)), 1, -1)
  Suite = Suite & s & x & i
Next
Suite = Mid(Suite, 2)
End Function
A+
 

job75

XLDnaute Barbatruc
Re,

La création de l'objet regexp prend du temps, pour accélérer utilisez :
Code:
Dim o As Object 'mémorisation pour gagner du temps sur la création

Function Suite$(t$)
Dim a As Object, x$, s$, i%
If o Is Nothing Then
  Set o = CreateObject("vbscript.regexp")
  o.Global = True
  o.Pattern = "\d+"
End If
Set a = o.Execute(t)
If a.Count <> 2 Then Exit Function
x = Left(t, InStr(t, a(0)) - 1)
s = Mid(t, Len(x) + Len(a(0)) + 1, 1) 'séparateur
If LCase(t) <> LCase(x & a(0) & s & x & a(1)) Then Exit Function
If Val(a(0)) = Val(a(1)) Then Suite = x & Val(a(0)): Exit Function
For i = a(0) To a(1) Step IIf(Val(a(0)) < Val(a(1)), 1, -1)
  Suite = Suite & s & x & i
Next
Suite = Mid(Suite, 2)
End Function
Fichier joint.

Pour tester j'ai copié la plage A1:B5 jusqu'à la ligne 10 000.

Sur Win 10 - Excel 2013, avec la fonction du post #3 la durée des calculs est de 15,7 secondes.

Avec cette dernière fonction elle est de 0,45 seconde.

A+
 

Pièces jointes

  • Suite avec expressions régulières(1).xlsm
    20.8 KB · Affichages: 28

Statistiques des forums

Discussions
312 103
Messages
2 085 317
Membres
102 862
dernier inscrit
Emma35400