XL 2013 Extraction automatique d'une plage de numéros

Sequane25

XLDnaute Nouveau
Bonjour,
j'ai une plage de numéros que j'aimerai extraire automatiquement pour les afficher les uns sous les autres.
Exemple : Dans la cellule, j'ai "28100-28105" et je voudrais faire afficher dessous ou à coté sous cette forme.
28100
28101
28102
28103
28104
28105
Avez vous une solution ?
Merci d'avance
Christophe
 
Solution
Bonjour Sequence25, le fil,

bienvenue sur le site XLD ! :)

je te propose le fichier joint ci-dessous.

* tu peux voir que la 2ème feuille est vide

* va sur la 1ère feuille, et fais Ctrl e ➯ travail effectué ! 😊

* tu es de nouveau sur la 2ème feuille, et la 1ère feuille est restée inchangée.
seul petit défaut : il manque la séquence Sequane00001 à Sequane000025.

VB:
Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim n&: n = Cells(Rows.Count, 1).End(3).Row: If n = 1 Then Exit Sub
  Dim T, s$, p$, a&, b&, c&, i&, j&, k&
  n = n - 1: T = [A2].Resize(n): k = 2: Application.ScreenUpdating = 0
  With Worksheets("Feuil2")
    .Columns(1).ClearContents: .[A1] = "N° de Téléphone"...

Sequane25

XLDnaute Nouveau
Merci à vous deux.
JHA , ton fichier marche comme je le veux, mais, car il y un mais ...
C'est pas aussi simple que ça. En fait, dans la cellule il s'agit de numéros de tel, donc le nombre de caractères est constant , 10.
Ensuite, je n'ai pas 1 cellule mais une liste de plus de100 .
0102030400-0102030403
0203040508-0203040508
xxxxxxxxxxx-yyyyyyyyyy
xxxxxxxxxxx-yyyyyyyyyy

Est ce possible d'automatiser ça pour afficher les resultats à la suite ou sur une autre feuille ?
0102030400
0102030401
0102030402
0203040508
0203040509
0203040510
0203040511
0203040512
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Sequence25, le fil,

bienvenue sur le site XLD ! :)

je te propose le fichier joint ci-dessous.

* tu peux voir que la 2ème feuille est vide

* va sur la 1ère feuille, et fais Ctrl e ➯ travail effectué ! 😊

* tu es de nouveau sur la 2ème feuille, et la 1ère feuille est restée inchangée.
seul petit défaut : il manque la séquence Sequane00001 à Sequane000025.

VB:
Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim n&: n = Cells(Rows.Count, 1).End(3).Row: If n = 1 Then Exit Sub
  Dim T, s$, p$, a&, b&, c&, i&, j&, k&
  n = n - 1: T = [A2].Resize(n): k = 2: Application.ScreenUpdating = 0
  With Worksheets("Feuil2")
    .Columns(1).ClearContents: .[A1] = "N° de Téléphone"
    For i = 1 To n
      s = T(i, 1)
      If Len(s) = 21 Then
        If Mid$(s, 11, 1) = "-" Then
          p = Left$(s, 5): a = Val(Mid$(s, 6, 5)): b = Val(Right$(s, 5)): c = b - a
          For j = 0 To c
            .Cells(k, 1).Offset(j) = Format(p, "00000") & Format(a + j, "00000")
          Next j
          k = k + c + 1
        End If
      End If
    Next i
    .Select
  End With
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
 

Pièces jointes

  • Exo Sequane25.xlsm
    17 KB · Affichages: 3

soan

XLDnaute Barbatruc
Inactif
Bonjour R@chid,

ma solution VBA fonctionne sans Power Query et marche sur toutes les versions d'Excel. 😜 😄

c'est pour ça que Microsoft devrait faire une mise à jour rétroactive pour ajouter Power Query dans toutes les versions précédentes d'Excel, à partir d'Excel 2007 (ou même d'Excel 2003) ; mise à jour gratuite de préférence ! sinon les utilisateurs vont la bouder financièrement. 😭

oui, oui, je sais : c'est contre la politique commerciale de Microsoft qui veut à tout prix forcer ses chers clients-vaches-à-lait à passer à une version ultérieure, afin de mieux pouvoir les traire et engranger d'autres bénéfices pécuniaires ; il en a jamais assez : toujours plus, tellement il est jaloux des monstrueux bénéfices de Google, Facebook, et Apple.



comme j'ai Excel 2007, n'oublie pas de dire à Crosoft que j'suis vraiment très triste de pas avoir pu essayer ta solution Power Query à cause de sa cupidité qui l'empêche de faire des mises à jour rétroactives de Power Query sur les anciennes versions d'Excel ; pourtant, j'suis vraiment persuadé que techniquement, ça doit être tout à fait possible ! 😁 en fait, c'est comme pour Emmanuel Macron ou tous ses Ministres : à Crosoft, il ne lui manque que la volonté politique pour bien faire les choses... 😢

à tout hasard, ça te dirait pas de diriger Microsoft et de prendre les bonnes décisions ? c'est-à-dire plus pour la satisfaction de la clientèle que pour le fric ; bien sûr, tu auras le droit de toucher le salaire d'un gros PDG d'une firme multinationale, qui a mis en plus son siège social dans un paradis fiscal. (enfin, il paraît, d'après la rumeur publique)

soan
 
Dernière édition:

Sequane25

XLDnaute Nouveau
Bonjour soan
Merci beaucoup c'est exactement ce que je voulais ! 😍 Super boulot !!!!!! ça marche impeccable.
Maintenant, faut juste que j'étudie ta macro pour comprendre :eek:. C'est là que je vais rigoler, je n'y connais rien en macro et pas grand chose en formules 😆
Je n'ai pas compris ton commentaire "seul petit défaut : il manque la séquence Sequane00001 à Sequane000025". Je n'ai pas vu de pb.
Cdt
Christophe
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Christophe,

merci pour ton retour, et j'suis ravi que ma solution te convienne ! 😊

mon commentaire « seul petit défaut : il manque la séquence Sequane00001 à Sequane000025 » était juste une petite blague : un jeu de mot par rapport à ton pseudo « Sequane » qui ressemble à « Séquence » ; et avec tes suites de nombres, on est en plein dans les séquences de nombres ! 😄 comme ton pseudo complet est « Sequane25 », ça aurait fait : Sequane00001 ; Sequane00002 ; Sequane00003 ; ... ; Sequane00025 ; c'est des numéros de téléphone spéciaux, comme ceux que peuvent en avoir des VIP, de la même façon que pour la voiture de certaines célébrités, y'a des plaques d'immatriculation personnalisées.​

Image.jpg


ci-dessus : les immatriculations spéciales de James Bond 007, Michael Knight (série télévisée K2000), et la célèbre Marilyn Monroe (la pinup n° 1) ; à quand une immatriculation spéciale Sequane0025 ? (le futur espion qui va remplacer James Bond)

j'avais pourtant mis un indice : le début de mon post #5 est « Bonjour Sequence25, le fil, » au lieu de « Bonjour Sequane25, le fil, » 😜 ; à tout hasard, j'confirme quand même qu'y'a effectivement aucun problème. 😊

pour bien comprendre mon code VBA, il faut surtout suivre attentivement l'évolution de toutes les variables, sans mélanger les unes avec les autres ; bonne chance ! 🍀

soan
 
Dernière édition:

Sequane25

XLDnaute Nouveau
Bonjour Sequence25
Ce bonjour là, je l'avais bien repéré et il m’avait fait sourire car j'avais bien fait la relation.
Celle là, " jusqu'au Sequane000025", je ne l'avais pas vu venir 😆
Il n'y a pas que dans excel que tu excelles également 😉
🍀je vais en avoir besoin pour étudier ton script. Je démarre de presque de 0.


Pour la petite histoire, les Sequanes étaient les gaulois qui vivaient en Franche Conté, D'ou(bs) 😆😆le 25.
Christophe
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 123
Messages
2 116 458
Membres
112 748
dernier inscrit
Pboiusquet