Sous total à chaque ligne vide dans un tableau automatique

Fermé
Olivier - 3 sept. 2015 à 22:23
 Olivier - 6 sept. 2015 à 10:56
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 ?



A voir également:

4 réponses

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
4 sept. 2015 à 01:41
Bonsoir,

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
0
Bonjour,
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.
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
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.
Pour joindre un fichier, utiliser https://www.cjoint.com/ 
et coller ici le lien obtenu.
0
Bonjour,
Merci pour votre réponse, voici le lien avec un exemple du fichier.
http://www.cjoint.com/c/EIfgbrOLcvM
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
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.
  • 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)
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
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.
0
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.
0