Macro tri insertion couleur et somme auto

Bonjour à tous,

Je vous essayer de faire simple

La feuille 1 du fichier joint est la feuille ou je rentre les données, et la feuille 2 correspond au résultat que je souhaites mais que je suis incapable de réaliser. (Sauf la petite macro de tri)

Pour vous expliquer rapidement, une fois les données remplies dans les colonnes appropriées, il faudrait que :

  • C79, G79, H79; I79, L79 et N79 maintiennent leurs propres résultats
  • Que le tableau se tri en automatique en fonction de D, E, M et B
  • Que 2 lignes soient insérées entre chaque changement de D, E et M
  • Et que la somme automatique se fasse en gras et en rouge sous chaque changements.

Je ne sais si cela est bien clair.

Dans l'attente je l'espère que l'un d'entre vous me trouve la solution.

Merci par avance

Bonjour,

Une proposition

100detail-chantier.xlsm (29.51 Ko)

A+

Frangy

Merci beaucoup, c'est top

Il faut s’habituer a avoir les résultats en haut et non plus en bas.

Par contre je risque de revenir vers toi pour la mise en page si possible.

Encore merci

Frangy,

Si possible,

  • je souhaiterai une ligne vierge entre les lignes 5 et 6.
  • il faut également la somme auto sur les colonnes L et N, sachant que la somme doit être accompagné du texte ml pour les stabox et Kg pour les aciers.

Merci par avance.

Le fichier modifié en retour

A+

Frangy,

Tu es vraiment top.

Dernière petite volonté.

- Sur la colonne stabox, je n'en ai pas forcement a chaque ligne, de ce fait pourrais-tu faire que rien ne s'affiche plutot que 0 lorsque la somme =0.

- la formule dans la colonne aciers à disparu. Te serait-il possible de la remettre .

=SI(P12="";"";SI($P$9="Ratio d'Acier en Kg/m3";P12*K12;SI($P$9="Ratio d'Acier en Kg/ml";P12*G12;)))

Encore mille merci

Le fichier re-modifié en retour

A+

Extra Frangy.

Est-il possible que la zone d'impression se définisse automatiquement en fonction du nombre de ligne.

Merci

Tu peux ajouter

.Range("N7") = Application.Sum(.Range("N11:N" & Ligne)) / 2

.PageSetup.PrintArea = "$B$2:$Q$" & Ligne

End With

A+

Parfait fonctionne nickel.

Un énorme merci Frangy

Frangy

Je reviens vers toi pour un souci et diverses petites améliorations.

  • Pourrais m'insérer 2 feuilles identique à la donnée supplémentaires au fichier
  • Pourrais-tu faire que si je n'ai ni stabox, et/ou ni aciers, la cellule du résultat reste totalement vide, car actuellement elles affichent soit ,00ml et 0.00 kg

Le souci est que lorsque le projet est en phase d'appel d'offre, les pièces ne disposent pas de référence et par conséquent, la colonne N° reste vide. L'inconvénient est que la macro ne fonctionne plus si je ne rentre rien.

Encore mille merci et sincèrement désolé d'être un boulet.

Bonjour,

- Pourrais m'insérer 2 feuilles identique à la donnée supplémentaires au fichier

Désolé, je n'ai pas compris ta demande.

- Pourrais-tu faire que si je n'ai ni stabox, et/ou ni aciers, la cellule du résultat reste totalement vide, car actuellement elles affichent soit ,00ml et 0.00 kg

Il suffit d'effectuer un test sur les 2 valeurs

If Application.Sum(.Range("L11:L" & Ligne)) > 0 Then _
.Range("L7") = Application.Sum(.Range("L11:L" & Ligne)) / 2 'Total Stabox
If Application.Sum(.Range("N11:N" & Ligne)) > 0 Then _
.Range("N7") = Application.Sum(.Range("N11:N" & Ligne)) / 2 'Total Acier en kg

A+

Désolé de ne pas avoir été clair dans mes propos.

- Je souhaiterai simplement 3 ou 4 feuilles identiques dans le fichier.

- la macro ne fonctionne pas si je n’inscris rien dans la colonne B, et il arrive souvent que je n'y inscrive rien.

- Je souhaiterai simplement 3 ou 4 feuilles identiques dans le fichier.

J'ai ajouté 2 feuilles pour l'exemple.

Dans la procédure, l'adaptation est prise en compte par la ligne d'instruction

With ActiveWorkbook.ActiveSheet

qui permet d'appliquer le traitement à la feuille active, soit celle qui est associée au bouton de commande.

- la macro ne fonctionne pas si je n’inscris rien dans la colonne B, et il arrive souvent que je n'y inscrive rien.

C'est parce que le numéro de la dernière ligne de la plage à prendre en compte était défini par la dernière cellule renseignée de la colonne B. C'est corrigé en prenant en compte la colonne C.

DerLig = .Range("C" & Rows.Count).End(xlUp).Row

A+

Tu es un génie

Rechercher des sujets similaires à "macro tri insertion couleur somme auto"