Distribution de données basiques

Y compris Power BI, Power Query et toute autre question en lien avec Excel
s
sirounet
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 12 février 2019
Version d'Excel : 2013 EN

Message par sirounet » 12 février 2019, 12:43

Bonjour à toutes et tous,

J'ai besoin de vos lumières et vous remercie d'avance pour l'aide apportée au débutant que je suis. J'ai cherché pour éviter de vous faire perdre du temps inutilement, mais pour des cas un peu similaire les scripts étaient souvent bien trop compliquées et dépassaient ma compréhension malheureusement....

Mon fichier Excel joint à la discussion est sans doute bien plus parlant que les explications à suivre. Je ne peux que vous encourager à vous y référer

Postulat de départ :
3 colonnes (A/B/C) avec 3 types de données différentes sur 3 lignes par exemple

Mon but :
Que la colonne A soit "distribuée" (je ne sais pas si c'est vraiment le bon terme) avec les colonnes B et C ce qui donnerai
A1 /B1/C1
A1 /B2/C2
A1/B3/C3
A2/B1/C1
A2 /B2/C2
A2/B3/C3
A3/B1/C1
A3 /B2/C2
A3/B3/C3
Terminé

Les colonnes B et C n'ont pas besoin d'être mélangée, c'est vraiment le format ci-dessus que je recherche.

Si vous auriez une petite minute pour vous pencher sur ce problème qui n'en est sans doute pas un pour vous, cela me serait d'une aide très précieuse.

Merci d'avance pour avoir prit le temps de lire et de vous pencher sur ma requête.
Example de la distrubution.xlsx
(9.04 Kio) Téléchargé 9 fois
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'256
Appréciations reçues : 399
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 12 février 2019, 18:04

Bonjour,
Une proposition.
Cdlt.
Example de la distrubution.xlsm
(20.63 Kio) Téléchargé 1 fois
Public Sub Create_table()
Dim ws As Worksheet, ws2 As Worksheet
Dim tbl, arr()
Dim lo As ListObject
Dim Cell As Range
Dim I As Long, J As Long, k As Long

    Set ws = Worksheets("Feuil1")
    Set ws2 = Worksheets("Feuil2")
    Set lo = ws2.ListObjects(1)

    tbl = ws.ListObjects(1).Range.Value
    If Not lo.DataBodyRange Is Nothing Then lo.DataBodyRange.Delete
    Set Cell = lo.InsertRowRange.Cells(1)

    For I = 2 To UBound(tbl)
        For J = 2 To UBound(tbl)
            ReDim Preserve arr(3, k + 1)
            arr(0, k) = tbl(I, 1)
            arr(1, k) = tbl(J, 2)
            arr(2, k) = tbl(J, 3)
            k = k + 1
        Next J
    Next I
    
    If k > 0 Then Cell.Resize(k, 3).Value = Application.Transpose(arr)

End Sub
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 7'728
Appréciations reçues : 123
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 12 février 2019, 20:40

bonjour
une contribution
sirounet.xlsx
(9.82 Kio) Téléchargé 4 fois
cordialement
c'est en cherchant qu'on trouve
Avatar du membre
mbbp
Passionné d'Excel
Passionné d'Excel
Messages : 6'181
Appréciations reçues : 211
Inscrit le : 29 mars 2014
Version d'Excel : 2007 FR

Message par mbbp » 13 février 2019, 11:16

Bonjour le forum,

Image
Recherche.xlsx
(10.5 Kio) Téléchargé 1 fois
s
sirounet
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 12 février 2019
Version d'Excel : 2013 EN

Message par sirounet » 13 février 2019, 11:54

Bonjour à tous,

Un grand merci à vous trois !

Je vais m'empresser de jeter un oeil à vos proposition et tenter d'en apprendre des choses !

Merci encore pour le temps passé sur ma requête c'est vraiment très gentil !
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message