Sous total à chaque ligne vide dans un tableau automatique
Fermé
Bonjour,
J'ai un tableau avec mise en forme automatique rempli de données avec plusieurs lignes vides entre ces données et je souhaiterais faire un sous total automatiquement à chaque ligne vide. Actuellement, je maintiens la touche "Shift" et sélectionne les cellules vides où je souhaites insérer un sous total mais Excel me somme également le total du dessus etc.
Avez-vous une solution ?
J'ai un tableau avec mise en forme automatique rempli de données avec plusieurs lignes vides entre ces données et je souhaiterais faire un sous total automatiquement à chaque ligne vide. Actuellement, je maintiens la touche "Shift" et sélectionne les cellules vides où je souhaites insérer un sous total mais Excel me somme également le total du dessus etc.
Avez-vous une solution ?
A voir également:
- Sous total à chaque ligne vide dans un tableau automatique
- Tableau croisé dynamique - Guide
- Aller à la ligne excel - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Formate pour taxer client frigo vide - Forum Loisirs / Divertissements
4 réponses
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
4 sept. 2015 à 01:41
4 sept. 2015 à 01:41
Bonsoir,
Une possibilité par macro, exemple d'une macro qui s'applique à la colonne B :
A adapter à tes besoins
ALT+F11 pour ouvrir l'éditeur VBA puis Insertion - Module, copier-coller la macro dans la page, modifier au besoin le n° de colonne en 2eme ligne de la macro et la ligne de départ en ligne suivante et fermer l'éditeur
Lancer la macro depuis la feuille concernée à partir de Developpeur - Macros , sélectionner la macro soustotaux et Exécuter
Clmnt
Via
Une possibilité par macro, exemple d'une macro qui s'applique à la colonne B :
Sub soustotaux() Dim derligne As Long, ligne As Long ' dernière ligne non vide de la colonne B derligne = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row + 1 ' ligne où commencer les totaux x = 2 ' boucle tant que la dernière ligne n'est pas dépassée Do While ligne < derligne ' n° de la première ligne vide rencontrée ligne = Columns(2).Find("", , , , xlByColumns, xlNext).Row ' sous total dans cette cellule depuis la ligne x jusqu'à la ligne précédente Range("B" & ligne) = Application.WorksheetFunction.Sum(Range("B" & x & ":" & "B" & ligne - 1)) ' la valeur de x prend celle du n° de ligne suivant le sous-total x = ligne + 1 Loop End Sub
A adapter à tes besoins
ALT+F11 pour ouvrir l'éditeur VBA puis Insertion - Module, copier-coller la macro dans la page, modifier au besoin le n° de colonne en 2eme ligne de la macro et la ligne de départ en ligne suivante et fermer l'éditeur
Lancer la macro depuis la feuille concernée à partir de Developpeur - Macros , sélectionner la macro soustotaux et Exécuter
Clmnt
Via
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 251
4 sept. 2015 à 02:00
4 sept. 2015 à 02:00
Excel possède un outil très puissant, dans l'onglet DONNÉES, groupe Plan : Sous-Total
Il faut partir d'une base de données, c'est-à dire sans lignes vides ;
puis trier par rapport au champ dont tu veux les totaux ;
puis lancer l'assistant Sous-total.
C'est Excel qui va insérer de nouvelles lignes contenant les sous-totaux.
--- Si tu envoies un exemple de fichier, on te fera la démonstration.
Il faut partir d'une base de données, c'est-à dire sans lignes vides ;
puis trier par rapport au champ dont tu veux les totaux ;
puis lancer l'assistant Sous-total.
C'est Excel qui va insérer de nouvelles lignes contenant les sous-totaux.
--- Si tu envoies un exemple de fichier, on te fera la démonstration.
Pour joindre un fichier, utiliser https://www.cjoint.com/
et coller ici le lien obtenu.
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 251
Modifié par Raymond PENTIER le 6/09/2015 à 02:33
Modifié par Raymond PENTIER le 6/09/2015 à 02:33
Salut Olivier.
J'ai compris que ton fichier n'est qu'un exemple, et que ton vrai fichier est plus complexe. Toutefois, ce fichier mérite quelques observations.
Pour pouvoir utiliser l'outil Sous-Total, tes tableaux doivent se présenter comme dans l'onglet Base https://www.cjoint.com/c/EIgakz3PK6c
C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
J'ai compris que ton fichier n'est qu'un exemple, et que ton vrai fichier est plus complexe. Toutefois, ce fichier mérite quelques observations.
- La colonne Sté est en format Texte, la colonne Poids en format Nombre
- La colonne Date contient une majorité de saisies sans format, quelques saisies sont en format Date
- Les lignes vides empêchent toute utilisation des outils FITRE, TRI, RECHERCHE, SOUS-TOTAL ...
- Les tableaux avec mise en forme automatique font plus joli, mais ne sont pas très pratiques pour la manipulation des données
- Si l'interface d'import de données crée les lignes vides, il faudra faire avec ; mais si tu les as ajoutées, c'est une très mauvaise initiative !
Pour pouvoir utiliser l'outil Sous-Total, tes tableaux doivent se présenter comme dans l'onglet Base https://www.cjoint.com/c/EIgakz3PK6c
C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
Raymond PENTIER
Messages postés
58760
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
17 251
6 sept. 2015 à 02:54
6 sept. 2015 à 02:54
... et voici le processus d'utilisation de l'outil Sous-total qui donne le résultat excompté : https://www.cjoint.com/c/EIga1GOWhlc
Bien entendu, rien ne garantit que dans un fichier avec 30 tableaux et plein de macros, cela fonctionnera aussi bien !
Cordialement.
Bien entendu, rien ne garantit que dans un fichier avec 30 tableaux et plein de macros, cela fonctionnera aussi bien !
Cordialement.
Salut Raymond,
En effet le fichier de base est truffé de macro (bouton de lien, etc.) et oui l'interface exporte les données telles quelles (avec ligne vide), car un trie en amont est fait dans notre ERP par l'utilisateur.
Le concepteur de ce tableau n'a effectivement pas eu conscience de la complexité due à l'utilisation de la mise en forme automatique. J'ai bien essayé de lui faire changer d'avis, mais sans succès. Lors de l'export, l'utilisateur n'a rien à faire, car la mise en forme et en page se fait automatiquement mise à part, faire ces fameux sous-totaux et adapter la zone d'impression s'il y a plus d'une page.
Pour la fonction « sous-totaux » je la connais assez bien et c'était la raison de ce message, car elle reste inactive avec un tableau à mise en forme automatique et pensais qu'il y avait une autre solution du style : (Si(tu trouves une cellule vide dans la colonne xy ; alors effectue un sous-total contre le bas jusqu'à la prochaine cellule vide etc.)
Voilà, ben tout cas je te remercie beaucoup d'avoir pris du temps et je te souhaite une très belle retraite aux Antilles. Chanceux ;) !!!
PS : En avril j'étais en vacances en Guadeloupe (St. François et St. Rose), très belle Ile, nous allons continuez à visiter les Antilles ces prochaines années.
Chaleureusement.
En effet le fichier de base est truffé de macro (bouton de lien, etc.) et oui l'interface exporte les données telles quelles (avec ligne vide), car un trie en amont est fait dans notre ERP par l'utilisateur.
Le concepteur de ce tableau n'a effectivement pas eu conscience de la complexité due à l'utilisation de la mise en forme automatique. J'ai bien essayé de lui faire changer d'avis, mais sans succès. Lors de l'export, l'utilisateur n'a rien à faire, car la mise en forme et en page se fait automatiquement mise à part, faire ces fameux sous-totaux et adapter la zone d'impression s'il y a plus d'une page.
Pour la fonction « sous-totaux » je la connais assez bien et c'était la raison de ce message, car elle reste inactive avec un tableau à mise en forme automatique et pensais qu'il y avait une autre solution du style : (Si(tu trouves une cellule vide dans la colonne xy ; alors effectue un sous-total contre le bas jusqu'à la prochaine cellule vide etc.)
Voilà, ben tout cas je te remercie beaucoup d'avoir pris du temps et je te souhaite une très belle retraite aux Antilles. Chanceux ;) !!!
PS : En avril j'étais en vacances en Guadeloupe (St. François et St. Rose), très belle Ile, nous allons continuez à visiter les Antilles ces prochaines années.
Chaleureusement.
5 sept. 2015 à 08:20
Merci pour votre réponse. Cela fonctionne si j'ai un seul tableau sur la même feuille, mais là, j'ai une trentaine de tableaux issue d'une interface et de plus, la feuille est truffée de macro... désolé j'aurais dû vous le préciser. Initialement, ce n'ai pas moi qui l'ai conçu. Je vous remercie tout de même pour le conseil.