EXCEL-VBA réorganisation des données

Résolu/Fermé
DANENOND Messages postés 11 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 19 février 2008 - 7 févr. 2008 à 15:57
DANENOND Messages postés 11 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 19 février 2008 - 19 févr. 2008 à 16:14
Bonjour, je me tourne à nouveau vers ce forum pour obtenir de l'aide pour la mise en forme du contenu d'une feuille.

Je vais essayer d'être explicite :
- en colonne A : code pièce
- en colonne B : quantité à produire
- en colonne C : couleur
Si une pièce existe en plusieurs couleurs, on a autant de lignes que de couleurs avec un même code pièce en colonne A.
ex :
A : AAAA ; B : 2 ; C : VERT
A : BBBB ; B : 5 ; C : VERT
A : BBBB ; B : 3 ; C : BLEU
A : CCCC ; B : 1 ; C : BLEU

Je dois créer une seconde feuille qui devra se présenter sous la forme suivante :

A : Code ; B : VERT ; C : BLEU
A : AAAA ; B : 2
A : BBBB ; B : 5 ; C : 3
A : CCCC ; C : 1

Attention, ma feuille peut comporter jusqu'à 20 couleurs différentes, et elles n'apparaissent pas toutes systématiquement.

Je vous remercie d'avance pour votre précieuse aide.
Hugues
A voir également:

10 réponses

Salut,
LA fonction s'appelle 'Pivot table' (Ang) dans le menu 'Données'. Il y a un assistant très pratique.

Dans ton tableau d'origine tu prends la col. A pour les têtes de lignes, la col.C pour les colonnes et la col. B pour les valeurs (la fonciton somme est par defaut mais tu peux en faire de ratios etc. )

Tchô
0
DANENOND Messages postés 11 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 19 février 2008
7 févr. 2008 à 17:33
Merci pour ta réponse rapide.
Apparemment je ne dispose pas de "Pivot table" dans le menu Données. Je dois préciser que je suis sous EXCEL 2003.
Je te remercie de me confirmer si tu disposes d'une version plus récente pour savoir si c'est bien la cause.
A+
0
moi aussi xls2003 - je suis sur la version ang. et je te donné le térme en Ang. - ca dois se trouver sous la commande 'grouper'.

sinon cherche 'tableau crosséé' en FR
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
7 févr. 2008 à 22:03
Très exactement "Rapport de Tableau croisé dynamique". Ca me paraît la bonne piste...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DANENOND Messages postés 11 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 19 février 2008
8 févr. 2008 à 09:24
Merci à vous deux.
C'est en effet le tableau dynamique qu'il me faut. Je connaissais un peu mais je croyais qu'il pouvait exister des fonctions "moins lourdes" alors qu'il n'y a pas plus simple.
Et grâce à Matrix, je connais maintenant le nom anglais du tableau croisé dynamique : pilot taibaul...

J'ai quand même une nouvelle question : en plus du "code pièce", dans champs par lignes, j'ai ajouté les champs "désignation" et "application".
Du coup j'ai des sous-totaux qui ne veulent pas disparaître.
Comment les masquer pour ne garder qu'une ligne par code pièce ?
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
8 févr. 2008 à 12:08
Clic droit sur l'entête "Code pièce", paramètres du champ, Sous totaux = aucun
0
DANENOND Messages postés 11 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 19 février 2008
11 févr. 2008 à 09:08
Salut
Merci, j'ai réussi à cacher les sous-totaux, mais il me reste une ligne vide entre chaque ligne de données. Est-ce que je peux la supprimer également ?
On touche au but...
0
DANENOND Messages postés 11 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 19 février 2008
11 févr. 2008 à 15:19
Ca marche, grâce à votre aide j'ai pu obtenir le résultat souhaité. Merci bcp.

Mais j'ai une nouvelle requête : j'ai un document sur lequel le nombre de lignes est très variable.
C'est un tableau pour lequel j'applique une mise en forme (bordures et remplissage des cellules) depuis la ligne des titres (ligne 6) jusqu'à la ligne 1000. J'ai donc créé la commande suivante en fin de macro pour supprimer les lignes inutiles :

Dim lign As Long
For lign = 1010 To 7 Step -1

If IsEmpty(Sheets("Listing").Cells(lign, 1)) Then
Sheets("Listing").Cells(lign, 1).EntireRow.Delete
End If
Next

End sub

Cette opération prend bcp de temps. Existe-t-il une meilleure solution ?

Merci d'avance.
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
15 févr. 2008 à 12:09
C'est surtout inutile de faire comme ça. Avec la mise en forme conditionnelle, tu peux le faire sans problème.

Tu sélectionnes tes 1000 lignes, tu choisis "mise en forme conditionnelle", tu choisis si la formule est et tu tapes =$A6<>"" et ensuite grâce au bouton Format tu mets tes bordures.
0
DANENOND Messages postés 11 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 19 février 2008
19 févr. 2008 à 16:14
Pourquoi faire simple... ?

Nickel, ça marche.

Merci pour tous ces renseignements. Fin de la discussion (en attendant de nouvelles questions).

A+
0