Mise en forme données en fonction d'un tableau

Bonjour,

Je souhaiterai faire une mise en forme de données en fonction d'un tableau qui serait sur une autre feuille.

J'ai des données de ce type :

N° dossierClientQtéRéfDésignation
123459876511109AYFILTRE A HUILE
123459876521109ALFILTRE A HUILE
852585678911109AYFILTRE A HUILE

Les données doivent être syntaxé de cette manière :

098765CLIU*Texte quelconque*12345
11109AY1
11109AL2
056789CLIU*Texte quelconque*85258
11109AY1

Je pensais faire cela via des rechercheV mais cela ne me convient pas.
C'est pour cela que je pensais partir sur du VBA mais mes connaissances sur ce point sont bien trop faible et j'aimerai un coup de main de votre part.

En vous remerciant par avance.

Bonjour

Je ne vois pas quel lien il y entre les deux tableaux?

Bonsoir,

nouveau client = ligne 0, code client , "CLI" , "U", "texte" , numéro de dossier
ligne 1 = première ligne de ce client , réf du client , numéro chrono
ligne 1 = ligne supplémentaire de ce client , réf du client , numéro chrono
etc...

Si nouveau client alors ligne = 0 code client , "CLI" ,"U", "Texte", numéro de dossier
etc....

Est-ce bien ceci ?

@ bientôt

LouReeD

Bonsoir,

un code qui fonctionne avec le tableau de l'exemple :

Sub Transposition()
    Dim TabloS(), TabloR(), Client, Cpt, Chrono
    TabloS = Range("A1:E4")
    Cpt = 1
    Client = ""
    For i = 2 To UBound(TabloS)
        If TabloS(i, 2) <> Client Then
            Chrono = 0
            Client = TabloS(i, 2)
            ' ligne de désignatiuon de client
            ReDim Preserve TabloR(1 To 6, 1 To Cpt + 1)
            Cpt = Cpt + 1
            TabloR(1, Cpt) = 0
            TabloR(2, Cpt) = Client
            TabloR(3, Cpt) = "CLI"
            TabloR(4, Cpt) = "U"
            TabloR(5, Cpt) = "Texte indifférent"
            TabloR(6, Cpt) = TabloS(i, 1)
            ' première ligne de référence
            ReDim Preserve TabloR(1 To 6, 1 To Cpt + 1)
            Cpt = Cpt + 1
            TabloR(1, Cpt) = 1
            TabloR(2, Cpt) = TabloS(i, 4)
            Chrono = Chrono + 1
            TabloR(3, Cpt) = Chrono
            TabloR(4, Cpt) = ""
            TabloR(5, Cpt) = ""
            TabloR(6, Cpt) = ""
        Else
            ' ligne supplémentaire de référence
            ReDim Preserve TabloR(1 To 6, 1 To Cpt + 1)
            Cpt = Cpt + 1
            TabloR(1, Cpt) = 1
            TabloR(2, Cpt) = TabloS(i, 4)
            Chrono = Chrono + 1
            TabloR(3, Cpt) = Chrono
            TabloR(4, Cpt) = ""
            TabloR(5, Cpt) = ""
            TabloR(6, Cpt) = ""
        End If
    Next i
    Range("K1").Resize(UBound(TabloR, 2), UBound(TabloR, 1)) = Application.Transpose(TabloR)
End Sub

Le tableau final s'affiche sur la même feuille à partir de la cellule K1.

@ bientôt

LouReeD

Bonsoir LouReeD

Merci de cette solution elle est quasi parfaite.

Comment puis-je modifier le code pour que ça ne me regroupe pas les références lorsque le client est identique ?

Bonsoir,

je ne comprend pas la question...

@ bientôt

LouReeD

Rechercher des sujets similaires à "mise forme donnees fonction tableau"