EXCEL - fonction "Sous totaux" ds menu D

Fermé
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 - 25 juil. 2008 à 17:59
zener27 Messages postés 2 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 4 août 2008 - 4 août 2008 à 19:42
Bonjour,

Est il possible de ne garder que les lignes "total" après l'utilisation de la fonction "Sous totaux" sous excel?

Peut etre faut il copier la liste et la coller dans un autre onglet (uniquement les valeurs) et ensuite... trouver un moyen de supprimer les lignes autres que celle qui totalisent...

Je ne sais pas comment faire!
Olive
A voir également:

15 réponses

arrial Messages postés 1753 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 29 décembre 2023 250
25 juil. 2008 à 18:08
Salut,





On peut faire des trucs ▼▼▼



Données►Grouper et former un plan

ensuite, manipuler le niveau de groupement






@+
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
25 juil. 2008 à 18:15
salut amal oui je sais que l'on peut dégrouper et grouper mais mon but final serait de pouvoir garder uniquement les lignes de total et effacer les autres... le grouper/dégrouper ne me suffit pas, d'autant plus qu'il fait limite bugger mon ordi etant donnée que j'ai 10 000 lignes à mon tableau
Merci
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
25 juil. 2008 à 18:12
Non en fait j'ai trouvé une solution à mon problème (qui n'était pas très bien exprimé je l'avoue!)

il me faudrait faire une macro qui :

If Cells(i, 2) = non blank (si elle contient qq chose)
Then delete.entire row

Voila Si vous pouviez m'aider a la mettre en forme correctement...
0
Raymond PENTIER Messages postés 58447 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 mai 2024 17 116
25 juil. 2008 à 18:15
Quand tu actives la fonction Sous-total, des colonnes, des points et des carrés s'affichent à gauche de ton écran ; ils délimitent les éléments du PLAN qu'Excel a élaboré. En cliquant sur le petit 2 (tout en haut) tu masques les lignes concernées par le décompte et tu ne lis que les sou-totaux ; en cliquant sur le petit 1, il ne te reste que le total général (si tu as coché l'option"Synthèse sous les données") ; en cliquant sur le petit 3, tu retrouves l'affichage complet. Génial, non ?
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
25 juil. 2008 à 18:21
Bonjour Raymond,

Oui oui je sais bien tout ça mais ce n'est pas exactement ce que je voudrais... cf ci dessus!

Olive
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58447 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 mai 2024 17 116
25 juil. 2008 à 18:21
Désolé ! Le temps que je rédige mon message tout en recontrôlant sur Excel pour ne pas écrire de bêtises, il y a déjà eu la proposition d'arrial et deux précisions apportées par olive60 !

Toutefois je préfère ne pas effacer ma réponse (devenue inutile pour olive60) car elle pourrait intéresser d'autres utilisateurs.

Cordialement.
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
25 juil. 2008 à 18:23
:-)

Pas de souci Raymond, c'est gentil qd même. Cela dit si vous pouvez m'aider sur la macro (cf ci dessus)...je serais ravi

Olive
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
25 juil. 2008 à 18:30
Voici mon premier essai, biensur il n'est pas correct (je crois que j'ai un peu inventé des codes, je débute! )
Il me faudrait un magicien pour la corriger un peu


Sub Suppr_lignes_sstotaux()

For i = 2 To 3924

If Cells(i, 2) = Value.NonBlanks Then
Entire.Row.Select
Entire.Row.Delete

End If
Next i

End Sub
0
Raymond PENTIER Messages postés 58447 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 mai 2024 17 116
25 juil. 2008 à 18:42
Pas de chance : je suis parfaitement incompétent en matière de macro.
Mais es-tu vraiment sûr que tu auras des bugs ou de blocages à cause du grand nombre de lignes ?
Réalise une copie de ton fichier et fais des essais (post 3) : Je parie que ça marchera.
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
25 juil. 2008 à 19:23
Oui j'en suis sur j'ai essayé plusieurs fois c'est horrible.

Voici ma macro, je ne comprends pas pourquoi dès que j'ai deux lignes de suite avec une cellule vide ça foire, le reste du temps elle marche nickel :

Sub Suppr_lignes_sstotaux()

For i = 2 To 3924

If Cells(i, 2) = xlCellTypeBlanks = False Then

Rows(i).EntireRow.Delete

End If
Next i

End Sub
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
25 juil. 2008 à 19:38
up ! o^^O
0
Bonsoir,

Ta macro commence à ressembler à qqc. Bien.
La recopie que tu propose dans ton dernier message est "bizarre": if ...=...=... !!!!!!!!!!!! C'est quoi ça avec 2 = ???

Sinon deux remarques :
- si ta macro te laisse 2 lignes, pas de secret : les cellules testées ne sont pas = blank !!!
- au début de la macro tu devrais mettre Application.ScreenUpdating = False (pour arreter la maj de l'affichage)
puis ....=true (à la fin) pour rafraichir ton écran. Par expérience, tu verras que le temps de traitement peut être considérablement diminué avec cette astuce.

A+
0
olive60 Messages postés 253 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 21 décembre 2010 27
26 juil. 2008 à 16:36
bonjour;

pourquoi deux fois le = ?

Car je ne sais pas comment faire pour dire si la cellule n'est pas vide alors...

Et je ne comprends pas pourquoi elle marche correctement (cellule non vide en B donc efface toute la ligne)
jusqu'a ce qu'il y est deux fois de suite une cellule pleine (Ex: B35 pleine et B36 pleine). Dans ce cas la marco supprime qd meme une ligne avec une cellule vide... enfin je comprends pas trop ce quelle fait dans ce cas mais ca foire...

Merci si vous pouvez m'aider

Ophélie
0
Bonjour,

Désolé, j'étais parti quelques jours...

Bon sang mais c'est bien sûr !!!

Ta boucle analyse ligne après ligne. C'est évident.
Quand ton test est vrai, tu demandes la suppression de la ligne en cours. Et que se passe-t'il donc ?
La ligne suivante prend la place de celle qui vient d'être effacée (et ne sera donc jamais analysée...puisque ta variable i sera incrémentée juste après !!!).

Solution ! ajoute i=i-1 après avoir supprimé une ligne (uniquement sinon c'est pas rigolo).

Bonne soirée.
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 19 mai 2024 7 217
2 août 2008 à 20:04
Bonsoir,

En fait quand il y a des suppressions de ligne il faut partir de la fin.
Donc écrire plutôt :
For i = 3924 to 2 step -1
0
arrial Messages postés 1753 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 29 décembre 2023 250
4 août 2008 à 17:29
Marrant.

Vous ne faites jamais de déclarations de variables, tous ?

C'est vrai qu'on a plus de mémoire actuellement que sur le IBM 1130 …
0
zener27 Messages postés 2 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 4 août 2008
4 août 2008 à 19:42
Bonjour;
d'aprés l'ennoncé du problème ,je crois qu'on utilisant le filtre :
1----filtré par 'Sous-totaux'
2----copier la zone filtrée
3----collage special
et le tour est joué
0