Macro pour Mise en page automatique

xtor

XLDnaute Nouveau
Bonjour à tous,

J'avance dans une macro, mais là ou je bloque c'est pour ce qui est de la mise en page, je ne parviens pas à faire ce que je souhaiterais. (voir fichier)

J'ai une liste de base avec disons les véhicules existants leur marque leur prix, ...

Je souhaiterais faire par type de véhicule un onglet (ex : camion - moto - voiture)
dans lequel serait repris en entête les marques (ex : mercedes, volvo)
et en dessous les modèles avec les prix.

Sur mon fichier l'onglet 1 = base
onglet 2 et 3 ce que je souhaiterais avoir après la macro.

D'avance merci
 

Pièces jointes

  • voiture.xls
    16.5 KB · Affichages: 92
  • voiture.xls
    16.5 KB · Affichages: 96
  • voiture.xls
    16.5 KB · Affichages: 97

xtor

XLDnaute Nouveau
Re : Macro pour Mise en page automatique

Bonsoir, ...
Je suis en train d'analyser ta macro pour l'adapter à mes articles, et je me trouve confronté à deux trois intérrogations :

- Comment faire pour faire cette macro sur plus de colonnes ?
- Le fait que la variante ne se fasse pour certaines références qu'au niveau de la colonne article ne pose t il pas de problèmes ?
- Comment définis tu les valeurs X et Y (sont ce des variables ne doit on pas les déclarer via Dim ?)
- La procédure nettoyeur est elle toujours nécessaire ?

Voici un second fichier avec toutes les infos utiles.
Dans le deuxième onglet se trouve le résultat escompté (mais ca tu l'avais déjà compris dans le premier exemple)

D'avance merci à toi
 

Pièces jointes

  • voiture2.xls
    24.5 KB · Affichages: 105

Catrice

XLDnaute Barbatruc
Re : Macro pour Mise en page automatique

Bonjour,


- Comment faire pour faire cette macro sur plus de colonnes ?
Il faudrait que dans ton dernier fichier joint, il y ait un exemple de ce que tu souhaites obtenir.

- Le fait que la variante ne se fasse pour certaines références qu'au niveau de la colonne article ne pose t il pas de problèmes ?
Si j'ai compris la question, la reponse est il suffit d'adapter le code.

- Comment définis tu les valeurs X et Y (sont ce des variables ne doit on pas les déclarer via Dim ?)ll est mieux de déclarer les variables. Je ne le fais pas dans mes exemples. Mais tu peux le faire.

- La procédure nettoyeur est elle toujours nécessaire ?
L'interet de la procedure "nettoyeur" pour moi est utile car elle permet de recreer facilement et rapidement le classeur et surtout elle permet d'etre executée de façon autonome. Ce qui a pour avantage d'alleger le fichier (pour le transport par exemple ;) )
 

xtor

XLDnaute Nouveau
Re : Macro pour Mise en page automatique

Catrice,

Merci pour ta réponse, pour ce qui est du point :

- ajout de champs, j'ai trouvé la solution en rajoutant des lignes de ce type : .End(xlUp).Offset(1, 25) = X.Offset(0, 27)
et par la suite en fonction du nom de la feuille on supprime quelques colonnes suivant l'importance des champs à garder.

- pour le tri sur des clés plus grandes que A et B c'est ok !

- Définition de X et de Y je ne vois pas où tu définis X = ?? et Y = ???
aussi bien dans la procédure Nettoyeur que dans test tu commences directement par un
For Each X In Sheets (ca fonctionne mais j'aimerais comprendre !)

Je reviendrai vers toi certainement d'ici fin d'aprem ... J'y travaille encore ! En tout cas ... Chouette coup de main que tu m'as donné !
 

Catrice

XLDnaute Barbatruc
Re : Macro pour Mise en page automatique

Bonjour,

C'est le "For Each" qui définit le "X" et le "Y".
Le For Each boucle sur une collection.

For Each X in Cells
A chaque boucle X correspond à l'objet Cellule
For Each X in Sheets
A chaque boucle X correspond à l'objet Feuille
etc ...

Apres on peut faire X.Name nom de la feuille par exemple
Ou X.Address adresse de la cellule
etc ...

Regarde également l'aide sur For Each...
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22