Microsoft 365 Automatiser la mise en forme d'un tableau qui s'adapte au nombre de lignes.

totti2101

XLDnaute Nouveau
Bonjour,

Dans mon boulot on utilise un logiciel de dimensionnement de coffrets électriques en 3D. Une fois que le coffret est modélisé le logiciel me sort un excel avec la liste des équipements, le cout, le prix de vente etc. Ce tableau ne comporte aucune formule et mise en forme et le nombre de lignes n'est pas fixe (selon ce que je mets sur mon coffret).

Je cherche une façon d'automatiser ce que je fais habituellement pour mettre en forme le tableau. J'ai essayé les macros (enregistrer ce que je fais) mais comme le nombre de ligne n'est pas fixe ça ne fonctionne pas.

Avez-vous des suggestions svp ?

Je joins un fichier excel pour vous donner une idée de la tronche du fichier que le logiciel me génère.
 

Pièces jointes

  • Forum excel.xls
    30 KB · Affichages: 7

xUpsilon

XLDnaute Accro
Bonjour,

Il va falloir y aller par étapes.
- en VBA, pour trouver la dernière ligne il y a deux possibilités : soit on part du haut du tableau et on cherche la première ligne vide, soit on part de la dernière ligne du fichier Excel et on remonte pour trouver la première ligne non vide. Concrètement, avec des données en colonne A, ça ressemble à ça :
VB:
Range("A1").End(xlDown).Row 'première ligne vide, à supposer que A1 ne le soit pas
Range("A" & Rows.count).End(xlUp).Row 'première ligne non vide en partant du bas
- quel formatage souhaitez-vous mettre ?
- pour faire des modifications depuis un classeur "maitre" vers un classeur sans macro que l'on vient de recevoir, il faut pouvoir pointer sur ce classeur "esclave". Pour ça, il faut utiliser son nom, et pour récupérer son nom il y a plusieurs manières de fonctionner.

Bonne journée,
 

totti2101

XLDnaute Nouveau
Bonjour,

Il va falloir y aller par étapes.
- en VBA, pour trouver la dernière ligne il y a deux possibilités : soit on part du haut du tableau et on cherche la première ligne vide, soit on part de la dernière ligne du fichier Excel et on remonte pour trouver la première ligne non vide. Concrètement, avec des données en colonne A, ça ressemble à ça :
VB:
Range("A1").End(xlDown).Row 'première ligne vide, à supposer que A1 ne le soit pas
Range("A" & Rows.count).End(xlUp).Row 'première ligne non vide en partant du bas
- quel formatage souhaitez-vous mettre ?
- pour faire des modifications depuis un classeur "maitre" vers un classeur sans macro que l'on vient de recevoir, il faut pouvoir pointer sur ce classeur "esclave". Pour ça, il faut utiliser son nom, et pour récupérer son nom il y a plusieurs manières de fonctionner.

Bonne journée,
Bonjour,
le classeur est celui que vous fournit le logiciel --> donnez un exemple de ce que vous voulez
le classeur est celui que vous avez formaté --> donnez un exemple de classeur fourni par le logiciel
Merci pour vos réponses.
Je joins deux excel. "Forum excel.xls" est ce que me sort le logiciel sans que je fasse de modifications. "Forum excel - Objectif final.xls" est mon tableau après mon intervention avec en note les actions que je réalise.

Ce sera plus clair je pense.
 

Pièces jointes

  • Forum excel - Objectif final.xls
    43 KB · Affichages: 7
  • Forum excel.xls
    30 KB · Affichages: 7

xUpsilon

XLDnaute Accro
Bonjour,

Pour faire des modifs ainsi dans un fichier qu'on exporte, soit il faut que le fichier exporté comporte déjà des macros, soit il faut avoir un classeur "maitre" déjà ouvert et qui exécute un code qui influe sur le fichier exporté.

Ou alors, on pourrait créer un module et l'exporter en .cls. Comme ça il est accessible dans les dossiers de l'utilisateur et il suffira de le réimporter sur les fichiers souhaités avant d'exécuter la macro.

Bonne journée,
 

Discussions similaires

Statistiques des forums

Discussions
312 156
Messages
2 085 815
Membres
102 991
dernier inscrit
remyexcel