Eclatement de référence

toline

XLDnaute Nouveau
Bonjour à tous,

Je sollicite votre aide pour un petit souci que je rencontre sous Excel.
Je dispose d'un fichier avec des références produit.

Pour certaines lignes, j'ai la référence du début et la référence de fin.
Pour d'autres, j'ai une référence unique.
Référence début Référence fin
201001013501 201001013505
201001013531 201001013535
203012113001
203151111052
202024213011 202024213014

A partir de ces deux colonnes, je souhaiterais obtenir une troisième colonne me listant l'ensemble des références comprises dans les deux colonnes. Ce qui nous donnerait avec l'exemple actuel:
Ce que je souhaite obtenir
201001013501
201001013502
201001013503
201001013504
201001013505

201001013531
201001013532
201001013533
201001013534
201001013535

203012113001
...

Or, je ne parviens pas à trouver une formule qui correspond. On m'a suggéré d'utiliser la fonction INDIRECT mais, malgré l'aide Excel, je ne vois pas l'application qu'elle pourrait avoir dans mon cas.

Merci par avance pour votre aide!
 

Pièces jointes

  • Test référence.xlsx
    10.6 KB · Affichages: 23

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Eclatement de référence

Bonjour à tous,

un essai qui fonctionne comme décrit dans la question posée

Code:
Sub Macro1()
Range("C2:C" & Range("C65535").End(xlUp).Row + 1).ClearContents
For i = 2 To Range("A65535").End(xlUp).Row
    If Cells(i, 1) <> "" And Cells(i, 2) <> "" Then
        For j = Cells(i, 1) To Cells(i, 2)
            Range("C" & Range("C65535").End(xlUp).Row + 1) = j
        Next j
    Else
        Range("C" & Range("C65535").End(xlUp).Row + 1) = Cells(i, 1)
    End If
Next i
End Sub

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    17.8 KB · Affichages: 28
  • 111.xlsm
    17.8 KB · Affichages: 29
  • 111.xlsm
    17.8 KB · Affichages: 27
Dernière édition:

toline

XLDnaute Nouveau
Re : Eclatement de référence

Un grand merci à tous pour vos réponses rapides :D
La réponse de Philippe semble le mieux correspondre à ma demande, puisqu'elle éclate bien les cellules.

Néanmoins, j'ai voulu l’exécuter sur mon fichier de base (qui contient nettement plus de lignes que l'exemple proposé). Et j'ai malheureusement une erreur:
Run-time error '13':
Type mismatch

Elle semble se produire à la ligne For j = Cells(i, 1) To Cells(i, 2)

J'ai cherché un peu sur Google une aide sur cette erreur et il semble donc qu'il y ait une mauvaise affectation de type. Or, j'ai beau regardé le code, je ne vois pas où peut se produire cette erreur.

Quelqu'un aurait-il une idée?

Je débute en VBA et je commence à comprendre à quel point son utilisation peut simplifier la vie :)

Merci par avance

Toline
 

pierrejean

XLDnaute Barbatruc
Re : Eclatement de référence

Bonjour toline

En l'absence de Philippe (que je salue)
A tester:

Code:
Sub Macro1()
Range("C2:C" & Range("C65535").End(xlUp).Row + 1).ClearContents
For i = 2 To Range("A65535").End(xlUp).Row
    If Cells(i, 1) <> "" And Cells(i, 2) <> "" Then
        For j = CLng(Cells(i, 1)) To CLng(Cells(i, 2))
            Range("C" & Range("C65535").End(xlUp).Row + 1) = j
        Next j
    Else
        Range("C" & Range("C65535").End(xlUp).Row + 1) = CLng(Cells(i, 1))
    End If
Next i
End Sub
 

toline

XLDnaute Nouveau
Re : Eclatement de référence

Bonjour Pierre-Jean

Encore merci pour la réponse rapide!

Effectivement, j'ai testé votre code et il marche très bien sur le fichier de Philippe.

En revanche, lorsque je tente de l'utiliser sur mon fichier, j'ai une nouvelle erreur qui apparaît sur la ligne "For j = CLng(Cells(i, 1)) To CLng(Cells(i, 2))".

Il s'agit de l'erreur Runtime Error 6 Overflow.

Mon document contient 547 lignes dans la première colonne et 21 dans la seconde, cela ne me parait pas exagéré en termes de volume de données.

Ai-je tord?

Merci par avance

Caroline
 

camarchepas

XLDnaute Barbatruc
Re : Eclatement de référence

Bonjour PierreJean, Toline, A4L9, PhLaurent

J'ai fais plusieurs essais et la solution de Philippe fonctionne bien

PierreJean , avec les infos de l'exemple , dépassement de capacité du à la conversion en long , par contre avec une conversion en double , cela fonctionne . ( C'est vrai que sans fichier établit , jamais simple de faire des tests)

Le problème doit venir de tes données ,
regardes sur quelle cellule tu d'arrêtes , il doit y avoir un truc avec le format ou autre.
 

toline

XLDnaute Nouveau
Re : Eclatement de référence

Bonjour à tous,

Merci pour votre aide. Il semblerait que certaines des cellules contenaient des espaces au lieu d'être vides, d'où le problème d'exécution.

Pour l'instant ça marche. Affaire à suivre :)

Toline
 

Discussions similaires

Réponses
6
Affichages
319
Réponses
8
Affichages
401