EXCEL - fonction "Sous totaux" ds menu D
olive60
Messages postés
273
Statut
Membre
-
zener27 Messages postés 2 Statut Membre -
zener27 Messages postés 2 Statut Membre -
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
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:
- EXCEL - fonction "Sous totaux" ds menu D
- Menu déroulant excel - Guide
- Fonction si et excel - Guide
- Word et excel gratuit - Guide
- Fonction moyenne excel - Guide
- Déplacer colonne excel - Guide
15 réponses
Salut,
On peut faire des trucs ▼▼▼
Données►Grouper et former un plan
ensuite, manipuler le niveau de groupement
@+
On peut faire des trucs ▼▼▼
Données►Grouper et former un plan
ensuite, manipuler le niveau de groupement
@+
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...
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...
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 ?
Bonjour Raymond,
Oui oui je sais bien tout ça mais ce n'est pas exactement ce que je voudrais... cf ci dessus!
Olive
Oui oui je sais bien tout ça mais ce n'est pas exactement ce que je voudrais... cf ci dessus!
Olive
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
Toutefois je préfère ne pas effacer ma réponse (devenue inutile pour olive60) car elle pourrait intéresser d'autres utilisateurs.
Cordialement.
:-)
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
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
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
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
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.
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.
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
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
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+
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+
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
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
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.
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.
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
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
Merci