Aide pour formule de transposition

Charles0

XLDnaute Nouveau
Bonjour j'ai un travail à faire sur un excel de 10 000 lignes donc je cherche une méthode d'automatisation.

Problématique:

En colonne j'ai ces informations:

Nom A
Type A
Adresse A
Ville A
Tel1 A
Fax A
Tel2 A
Nom B
Type B
Adresse B
Ville B
Tel1 B
Fax B
Tel2 B
Etc etc...

Voilà et je pense que vous vous en doutez mais j'aimerai faire un joli tableau du type:
Nom Type Adresse Ville Tel1 Fax Tel2


Et coller toutes les informations en dessous...

J'ai testé pour essayer de faire =B2 puis =B(2+x).... mais ce n'est pas aussi simple :p


Merci d'avance pour votre aide :)
 

Sofhy

XLDnaute Occasionnel
Re : Aide pour formule de transposition

Bonjour,

- Sélectionne tout ton tableau
- Copier
- Sur un autre onglet - Collage spécial
- Cocher "transposé"

Ca devrait répondre à ton problème.
Cela dit, si tu as 10.000 lignes, tu n'as pas autant de colonne.

A++
Sofhy
 

Charles0

XLDnaute Nouveau
Re : Aide pour formule de transposition

Bonjour,

- Sélectionne tout ton tableau
- Copier
- Sur un autre onglet - Collage spécial
- Cocher "transposé"

Ca devrait répondre à ton problème.
Cela dit, si tu as 10.000 lignes, tu n'as pas autant de colonne.

A++
Sofhy

Merci pour ton aide

Malheureusement si je fait ta technique j'obtient:

Nom A Type A .... Nom B Type B... etc le tout sur une seul ligne

Moi je voudrai avoir tous les Noms dans la première colonne, les types dans la deuxième etc

Encore merci en tout cas
 

Deneb

XLDnaute Junior
Re : Aide pour formule de transposition

Justement je ne sais pas ce qu'est un autofill et je ne maitrise pas les macros :(

Un autofill sert à laisser excel trouver ce que tu veux mettre dans les cellules suivantes. Concrètement si tu as en A1 : 1, en A2 : 2.... Tu sélectionnes toutes les cellules remplies, tu cliques sur le coin en bas à droite de la dernière cell sélectionnée et tu tires jusqu'où tu veux.

Cela peut se faire par macro, même par enregistrement de macro ;)

Cela dit je ne comprends toujours pas ce que tu cherches à faire...
 

Charles0

XLDnaute Nouveau
Re : Aide pour formule de transposition

D'accord, je veux donc faire un autofill si possible.


Je vais essayer de mieux m'expliquer.

- J'ai fait un copier/coller de données à partir d'internet dans excel.
j'ai tout copier dans une même colonne qui est formée de la sorte:

Nom A
Type A
Adresse A
Ville A
Tel1 A
Fax A
Tel2 A
Nom B
Type B
Adresse B
Ville B
Tel1 B
Fax B
Tel2 B
...
A, B etc étant des entreprises... (il doit y avoir 365 entreprises).

Mon objectif est de faire un tableau propre avec les colonnes:

Nom Type Adresse Ville Tel1 Fax Tel2

et mon objectif est d'avoir toutes les info de chaque entreprise par ligne, les une en dessous des autres donc:

NomA TypeA AdresseA VilleA Tel1A FaxA Tel2A
NomB TypeB AdresseB VilleB Tel1B FaxB Tel2B
etc

J'espère que j'ai réussi un peu mieux à m'expliquer :)
 

Deneb

XLDnaute Junior
Re : Aide pour formule de transposition

OK je comprends mieux...

Pour ton problème pour résoudre ton problème j'ai 2 solutions à te proposer :

-Soit : tu ne touche pas à ce que tu as collé et dans une autre feuille tu fais un Tableau Croisé Dynamique (pour plus d'explication pour savoir comment ça marche c'est assez instinctif sinon, de très bons tutos existent sur le net).Dans ce cas tu poura modeler ton tableau comme tu veux, filtrer les données etc en moins de temps qu'il n'en faut pour le dire !

-Soit : tu fais une transposition comme proposé précédement, puis pour les colones où tu aura "Nom A" , tu insère temporairement une colone à coté, et dans la première cellule correspondante tu utilises la formule =DROITE(A1;4) en retirant cette partie de la chaine de caractère ("Nom ") en suite tu n'aura plus qu'à convertir cela en valeur et non en formule.


J'espère que ça t'aidera.
 

mromain

XLDnaute Barbatruc
Re : Aide pour formule de transposition

Bonjour,

Si tes données sont toutes dans la colonne A (à partir de A1), saisi cette formule en C1, tire-la sur la droite et vers le bas :
Code:
=DECALER($A$1;(LIGNES($C$1:$C1)-1)*7+COLONNES($C$1:C$1)-1;)

Cette formule te permettra d'avoir les infos par lignes.
Ensuite, avec un copier-collage spécial (valeurs), tu pourras exploiter ces données (enlever la formule).

a+
 

Charles0

XLDnaute Nouveau
Re : Aide pour formule de transposition

Merci à tous pour votre aide :)

hoerwind ta solution fonction très bien mais je ne la comprends pas, donc je ne peux pas l'adapter :(

en fait ma colonne n'est pas si propre que ça... en vrai elle est sous la forme:


Nom de l'entreprise
Nom de l'entreprise (oui c'est un doublon)
"saut d'une cellule"
type
adresse
Ville
Tel1
Fax
Tel2
"Saut d'une cellule"
"Saut d'une cellule"

Nom de l'entreprise
Nom de l'entreprise (oui c'est un doublon)
"saut d'une cellule"
type
adresse
Ville
Tel1
Fax
Tel2
etc



Edit: si je ne suis pas trop nul ça doit être

=INDIRECT("A"&COLONNE()-1+(LIGNE()-1)*11)
 
Dernière édition:

hoerwind

XLDnaute Barbatruc
Re : Aide pour formule de transposition

Re,

Chat échaudé craint l'eau froide !

Un exemple en pièce jointe, reprenant tous les cas de figure, permettra peut-être de te faire une proposition adaptée à ton problème, sans perdre inutilement son temps.
 

Efgé

XLDnaute Barbatruc
Re : Aide pour formule de transposition

Bonjour a Tous (trop nombreux et moi trop feignant) Salut aux autres ;)
Après consultation des runes magiques par le chaman du village,
je propose une macro:
Code:
[COLOR=blue]Private Sub[/COLOR] CommandButton1_Click()
[COLOR=blue]Dim[/COLOR] Tableau()
[COLOR=blue]With[/COLOR] Sheets("Feuil1")
    NbrLign = .Range("A" & Application.Rows.Count).End(xlUp).Row
    [COLOR=blue]ReDim[/COLOR] Tableau(1 [COLOR=blue]To[/COLOR] NbrLign, 1 [COLOR=blue]To[/COLOR] 7)
    i = 1
    [COLOR=blue]While[/COLOR] i < NbrLign + 1
        [COLOR=blue]For[/COLOR] k = 1 [COLOR=blue]To UBound[/COLOR](Tableau, 1)
            [COLOR=blue]For[/COLOR] j = 1 [COLOR=blue]To[/COLOR] 7
                Tableau(k, j) = .Cells(i, 1)
                i = i + 1
            [COLOR=blue]Next[/COLOR]
        [COLOR=blue]Next[/COLOR]
    [COLOR=blue]Wend[/COLOR]
[COLOR=blue]End With[/COLOR]
[COLOR=blue]With[/COLOR] Sheets("Feuil2")
    .Range("A1").Resize([COLOR=blue]UBound[/COLOR](Tableau, 1), [COLOR=blue]UBound[/COLOR](Tableau, 2)) = Tableau
    .Activate
[COLOR=blue]End With[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 

Pièces jointes

  • Classeur4.xls
    27 KB · Affichages: 46
  • Classeur4.xls
    27 KB · Affichages: 54
  • Classeur4.xls
    27 KB · Affichages: 51

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata