Excel 2007 - aleger un fichier de données

Fermé
Tango56 - 28 mai 2008 à 23:09
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 29 mai 2008 à 23:14
Bonjour,
je dispose d'un fichier de données numériques de plusieurs centaines de lignes.
je souhaite alleger mon fichier et ne conserver qu'une valeur sur 10.

l'utilisation d'un filtre automatique ne permet pas de recopier uniquement les valeurs filtrées...mais toutes les valeurs.

si quelqu'un connait une méthode efficace sous excel 2007 ?

D'avance Merci.
A voir également:

4 réponses

Raymond PENTIER Messages postés 58724 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 novembre 2024 17 238
29 mai 2008 à 00:23
Ton explication n'est pas très claire (pour moi, du moins). Pourrais-tu la reformuler ?
0
Ok Raymond et merci, je précise...

En clair j'ai un fichier excel environ 2300 lignes de valeurs numériques.la feuille de calcul se présente comme suit:
Colonne A : Date (JJ/MM/AA)
Colonne B : Valeurs

Lafeuille de calcul comporte une valeur par jour et je souhaite ne retennir qu'une valeur tous les 10 jours.


Espérant avoir été plus clair et te remerciant par avance.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 415 > Tango56
29 mai 2008 à 07:55
Bonjoir
En attendant Raymond à cette heure là, doit dormir aux antilles (bonne nuit Raymond):

Une solution sans macro, sur deux colonnes:

Colonnes C, vous tirez des références au pas que vous souhaitez:
EnC1:0
En C2:10
EnC3:20
sélectionner C2 et C3 ensemble et tirez vers le bas jusqu'à atteindre le nombre de lignes de données divisé par 10
(autre option pour cette colonne:en C1;0; en C2 =C1+10 et tirez vers le bas)

En D1, la formule ci dessous
=RECHERCHEV(A1+C1;A$2:B2$500;2;0)$A$1:$B$2300 étant le champ de données, à bloquer
Incrémentez sur la hauteur du champ précédent.

La liste affichée restera à copier/ coller "Valeur" si besoin où vous voulez

CRDLMNT
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
29 mai 2008 à 09:51
bonjour Tango56, Raymond et Vaucluse

l'utilisation d'un filtre automatique ne permet pas de recopier uniquement les valeurs filtrées...mais toutes les valeurs.

Si tu fais un filtre pour n'afficher qu'une ligne sur 10, tu sélectionnes les lignes complètes affichées et tu les copies où tu veux sur une autre feuille ou un autre classeur et uniquement celles qui sont affichées.

Pour sélectionner une ligne sur 10, tu saisis sur une colonne vide de la première ligne : ="x"&ligne()
Sur 2007 ta formule va se mettre sur toute ta colonne.
Tu fais "filtres textuels" puis "se termine par" et tu sélectionnes le chiffre que tu veux.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 415
29 mai 2008 à 09:54
Bonjour gbinforme
Pour mon information et utilisation personnelle éventuelle, je suppose qu'il est inutile de chercher ce type de fonctionnement sur 2003?
Bien cordialement
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
29 mai 2008 à 10:38
bonjour Vaucluse,

Cela fonctionne aussi sous 2003 mais en un peu plus manuel.

1 la sélection des lignes est identique et fonctionne dans les 2 de façon identique.

2
- Pour sélectionner une ligne sur 10, tu saisis sur une colonne vide de la première ligne : ="x"&ligne()
=> idem (Le "x" est juste pour éviter le numérique, et on met ce qu'on veut ! par exemple apostrophe)

- Sur 2007 ta formule va se mettre sur toute ta colonne.
=> sur 2003 il faut la tirer manuellement !

- Tu fais "filtres textuels" puis "se termine par" et tu sélectionnes le chiffre que tu veux.
=> sur 2003 "filtres personnalisé"

En fait 2007 est toujours un tableur mais il décide un peu plus de lui-même car si tu ne veux la formule que sur une cellule, faudra l'enlever sur les autres (ctrl + z).
Tu dois par contre passer par des tas de menu et c'est assez soûlant : pour trouver "remplacer" il faut pratiquement savoir que cela existe car il faut trouver l'icône recherche pour y avoir accès (ou ctrl+h si l'on sait !).

Si tu veux voir comment il fonctionne, tu peux avec IE le découvrir ici

Bonne découverte dans le midi &@+
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 415 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
29 mai 2008 à 11:35
Super gbinforme.. merci beaucoup
Petite remarque: pour entrer la formule sur une hauteur importante sans la tirer sur 2003
_Sélectionner le champ par affichage dans la fenêtre adresse (Cell départ:cell arrivée)
_Entrer la formule correspondantes à cell départ
Entrer par touche Enter en maintenant la touche controle enfoncée.
Même topo pour une colonne complète en sélectionnant la colonne.(ou la, ligne bien sur...!)

Je ne doutes pas que tu connaisses, mais ça pourra servir à quelqu'un d'autre... et peut être sur 2007 pour éviter une entrée et un effacement.

Bien cordialement

PS:Le midi est actuellement un peu humide, mais sachant que l'on pleure la sécheresse depuis quelques années, on ne peut pas réellement s'en plaindre.
0
chtilou Messages postés 1696 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 523
29 mai 2008 à 13:33
Bonjour à tous,

Je propose cette solution en VBA.
Son but et de ne conserver que le 1er, 11éme, et 21éme jour du mois.

Le principe équivaut à:
En C1: =SI(JOUR(A1)=1;1;SI(JOUR(A1)=11;1;SI(JOUR(A1)=21;1;"")))
Puis suppression des lignes si C*=""

Cordialement.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
29 mai 2008 à 22:49
bonjour

Pour supprimer 9 lignes / 10 en VBA, il suffit de ne garder que les lignes ayant le 1 dans les unités.
Public Sub suppr()
Dim lig As Long
Application.ScreenUpdating = False
For lig = Cells(65536, 1).End(xlUp).Row To 1 Step -1
    If Right(lig, 1) <> 1 Then Rows(lig).Delete
Next lig
Application.ScreenUpdating = True
End Sub
0
chtilou Messages postés 1696 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 523
29 mai 2008 à 22:59
Bonsoir gbinforme.

Très intéressant je note.

Par contre si il y a des donnée dans les "n" premières colonnes il y à des données à conserver tu fais Cells(65536, n)?

PS: Excuse moi de poser des questions sur ton topic Tango56. :-|
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708 > chtilou Messages postés 1696 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012
29 mai 2008 à 23:14
bonsoir chtilou,

Si tu veux conserver les 4 premières lignes par exemple, tu ne gardes que les 5 et tu arrêtes aussi la boucle à 5.

Enfin, notre questionneur Tango56 veux "alléger" et se pose peut-être moins de questions.
0