Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Retourner un tableau excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Bonsoir à tous,
Salut Gosselien 🙂

Trop tard, sans formules 🙄

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
 
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 :?
 
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

Dernière édition:
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…