Retourner un tableau excel

foxden2

XLDnaute Junior
Bonjour,

Le titre n'est pas tres évocateur, je suis désolée

Ma problématique est la suivante, je recois depuis un site internet un tableau qui précise par client quels sont les commerciaux qui lui sont affectés. Il y a donc sur un ligne le client et les 1, 2 ou 3 commerciaux qui lui sont affectés en colonne.

J'ai donc une vision par client, néanmoins j'aurai besoin d'avoir une vision par commerciaux pour connaitre tous les clients qu'ils traitent et faire des stats supplémentaires. Il faudrait alors "retourner" le tableau et créer une ligne par association client / commerciaux. Ce qui me permettra par la suite de filtrer par commerciaux pour avoir la liste des clients gérés.

EN PJ le tableau que je recois et le second tableau (dans un nouvel onglet) auquel je dois arriver via formule.
Je précise que tout est géré via un Google Sheets, je ne suis pas certaine que solutionner la chose par macro fonctionne dans ce cas..
Merci beaucoup pour votre aide
 

Pièces jointes

  • cas pratique .xlsx
    40.2 KB · Affichages: 60

klin89

XLDnaute Accro
Bonsoir à tous,
Salut Gosselien :)

Trop tard, sans formules :rolleyes:

VB:
Option Explicit
Sub transpose()
Dim a, b(), i As Long, j As Long, n As Long
    With Sheets("Feuil1").Range("b3").CurrentRegion
        a = .Value
    End With
    ReDim b(1 To (((UBound(a, 2) - 2) * (UBound(a, 1) - 1))) + 1, 1 To 3)
    For i = 2 To UBound(a, 1)
        For j = 3 To UBound(a, 2)
            If Not IsEmpty(a(i, j)) Then
                n = n + 1
                b(n, 1) = a(i, j)
                b(n, 2) = a(i, 1)
                b(n, 3) = a(i, 2)
            End If
        Next
    Next
    'Restitution en "Feuil2"
    With Sheets("Feuil2").Cells(1).Resize(, UBound(b, 2))
        .CurrentRegion.Clear
        .Value = [{"Commercial","Nom - Client","Prénom Client"}]
        .Offset(1).Resize(n).Value = b
        With .CurrentRegion
            .Font.Name = "calibri"
            .Font.Size = 12
            .VerticalAlignment = xlCenter
            .BorderAround Weight:=xlThin
            .Borders(xlInsideVertical).Weight = xlThin
            With .Rows(1)
                .BorderAround Weight:=xlThin
                .Font.Bold = True
            End With
            .Columns.ColumnWidth = 17
        End With
        .Parent.Activate
    End With
End Sub
klin89
 

foxden2

XLDnaute Junior
Bonjour,

Désolée Gosselien mon intention n'était pas de prendre les gens pour des ... mais d'avoir plusieurs sources d'informations.
Bonjour

Merci pour votre retour Klin89,
Malheureusement je ne peux pas implémenter de macros sur des feuilles Google Sheets, il faut trouver une solution avec des formules uniquement :?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,

Un essai avec trois formules matricielles à valider par les trois touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée.

nota: si le nombre de lignes du tableau source approche des 9900, alors il faut augmenter la constante 10 000 des formules pour la passer à 100 000.
 

Pièces jointes

  • foxden2- cas pratique- v1.xlsx
    10 KB · Affichages: 22
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
Une version modifiée avec ajout d'une 4ème formule en colonne E (formule normale non matricielle).
A partir du tableau résultat, on crée un TCD. En permutant les champs du TCD, on aura soit une vue par commercial, soit une vue par client.
 

Pièces jointes

  • foxden2- cas pratique- v1a.xlsx
    15.6 KB · Affichages: 32

foxden2

XLDnaute Junior
Bonjour Mapomme,

Merci pour votre retour,
J'ai essayé d'appliquer votre formule a un tableau plus grand mais je n'y arrive pas...
Il faut que les données dans les cellules surlignées en verte dans l'onglet "suivi chasseur" soit automatiquement récupérées de l'onglet "suivi client" qui "éclate" le client en fonction du nombre d'agent qui lui ont été attribué.

J'ai fait les 3 premieres lignes dans l'onglet suivi chasseur qui doivent correspondent à l'éclatement de la premiere ligne du tableau suivi client.
Mais il faut malheureusement automatiser de la meme maniere que dans le fichier précédent le retour des résultats

NB : c'est bien les formules normales non matricielles qu'il faut utiliser

Merci pour votre précieuse aide !
 

Pièces jointes

  • Suivi des demandes clients.xlsx
    221.6 KB · Affichages: 36

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
3
Affichages
332

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 872
Messages
2 093 103
Membres
105 627
dernier inscrit
jean-marc.brillant