supprimer des lignes vides

Le
Olivier
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le classeur
suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom, .
avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes mais
uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre nom4
et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #19496821
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le classeur
suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom, ....
avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes mais
uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre nom4
et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier





Olivier
Le #19496951
Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique marche
mais le problème est que les nombres ne restent pas toujours positifs ou
négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1 et ne
devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir réutiliser
le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom,
.... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes
mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre
nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier






Daniel.C
Le #19497431
Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le travail
sur la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour d'aujourd'hui
et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique marche
mais le problème est que les nombres ne restent pas toujours positifs ou
négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1 et ne
devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir réutiliser le
filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom, ....
avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes
mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre
nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier








Daniel.C
Le #19497421
Annule, c'est à côté de la plaque
Daniel

Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le travail sur
la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique marche
mais le problème est que les nombres ne restent pas toujours positifs ou
négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1 et ne
devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir réutiliser
le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom,
.... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes
mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre
nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier








Daniel.C
Le #19497411
Regarde ton classeur modifié :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijmSjSafZ.xls
Daniel

Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le travail sur
la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique marche
mais le problème est que les nombres ne restent pas toujours positifs ou
négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1 et ne
devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir réutiliser
le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom,
.... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes
mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre
nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier








Olivier
Le #19497671
Merci Daniel
Ca marche, je vois pas comment mais ca fonctionne !
Tu peux expliquer ce qui se passe exactement ?
SI(
ESTERR(PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()));
"";
INDEX($A$1:$A$7;PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE())))
Je n'arrive pas à comprendre la signification du ESTERR et de PETITE.VALEUR
Merci encore
Olivier

"Daniel.C"
Regarde ton classeur modifié :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijmSjSafZ.xls
Daniel

Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le travail
sur la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique
marche mais le problème est que les nombres ne restent pas toujours
positifs ou négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1 et
ne devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir
réutiliser le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom,
.... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes
mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre
nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier












Daniel.C
Le #19498161
Pour simplifier. Avec
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
Je récupère les n° de ligne des valeurs positives. Je me sers ensuite
de cette valeur dans la fonction INDEX pour récupérer les données dans
les colonnes A, B et C.
LIGNE() me donne le numéro de ligne ou se trouve la formule et
indirectement le numéro d'ordre de la fonction PETITE.VALEUR.
SI($C$1:$C$7>0;LIGNE($C$1:$C$7)) renvoie une matrice des lignes des
cellules de la colonne C ayant une valeur positive.
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
renvoie pour la ligne 1 la première ligne etc.
Comme il n'y a, dans l'exemple que 4 valeurs positives, la formule de
la 5e ligne renvoie une erreur. Je teste donc pour savoir si la formule
est en erreur, et si oui, je n'affiche rien.
D'ailleurs, je viens d'y penser, pour faire plus simple, j'aurais pu
écrire :
=SI(NB.SI($C$1:$C$7;">=0") A ta disposition pour toute explication complémentaire.
Daniel
Merci Daniel
Ca marche, je vois pas comment mais ca fonctionne !
Tu peux expliquer ce qui se passe exactement ?
SI(
ESTERR(PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()));
"";
INDEX($A$1:$A$7;PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE())))
Je n'arrive pas à comprendre la signification du ESTERR et de PETITE.VALEUR
Merci encore
Olivier

"Daniel.C"
Regarde ton classeur modifié :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijmSjSafZ.xls
Daniel

Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le travail
sur la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique
marche mais le problème est que les nombres ne restent pas toujours
positifs ou négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1 et
ne devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir
réutiliser le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom,
.... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces lignes
mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et entre
nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier














Olivier
Le #19500801
Bonjour,
je reviens poser une question car ca ne marche plus !!
Mes données se trouvent à partir de la ligne 4 et je veux afficher sur une
autre feuille.
J'arrive à faire le changement de feuille en rajoutant devant les $C$1:$C$7
le nom de la feuille où sont les données.
Ca ca marche.
Mais là où ca ne fonctionne plus, c'est lorsque mes données ne débutent pas
en ligne 1. je fais bien une formule matricielle en changeant les $C$1:$C$7
en $C$4$C$11 et pareil pour $A$1:$A$7 mais rien ne s'affiche.
Vois tu quel est le problème ?
Olivier


"Daniel.C"
Pour simplifier. Avec
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
Je récupère les n° de ligne des valeurs positives. Je me sers ensuite de
cette valeur dans la fonction INDEX pour récupérer les données dans les
colonnes A, B et C.
LIGNE() me donne le numéro de ligne ou se trouve la formule et
indirectement le numéro d'ordre de la fonction PETITE.VALEUR.
SI($C$1:$C$7>0;LIGNE($C$1:$C$7)) renvoie une matrice des lignes des
cellules de la colonne C ayant une valeur positive.
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
renvoie pour la ligne 1 la première ligne etc.
Comme il n'y a, dans l'exemple que 4 valeurs positives, la formule de la
5e ligne renvoie une erreur. Je teste donc pour savoir si la formule est
en erreur, et si oui, je n'affiche rien.
D'ailleurs, je viens d'y penser, pour faire plus simple, j'aurais pu
écrire :
=SI(NB.SI($C$1:$C$7;">=0") A ta disposition pour toute explication complémentaire.
Daniel
Merci Daniel
Ca marche, je vois pas comment mais ca fonctionne !
Tu peux expliquer ce qui se passe exactement ?
SI(
ESTERR(PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()));
"";
INDEX($A$1:$A$7;PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE())))
Je n'arrive pas à comprendre la signification du ESTERR et de
PETITE.VALEUR
Merci encore
Olivier

"Daniel.C"
Regarde ton classeur modifié :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijmSjSafZ.xls
Daniel

Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le travail
sur la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique
marche mais le problème est que les nombres ne restent pas toujours
positifs ou négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1
et ne devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir
réutiliser le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter
une colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom,
prenom, .... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces
lignes mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et
entre nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier


















Daniel.C
Le #19504171
Bonjour.
Etant donné que je me sers du numéro de ligne pour la fonction INDEX,
il faut conserver les plages $A$1:$A$7 etc. Par exemple :
=SI(NB.SI(Feuil2!$C$4:$C$10;">0") Regarde l'exemple ici :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijbBir2X0.xls
Daniel

Bonjour,
je reviens poser une question car ca ne marche plus !!
Mes données se trouvent à partir de la ligne 4 et je veux afficher sur une
autre feuille.
J'arrive à faire le changement de feuille en rajoutant devant les $C$1:$C$7
le nom de la feuille où sont les données.
Ca ca marche.
Mais là où ca ne fonctionne plus, c'est lorsque mes données ne débutent pas
en ligne 1. je fais bien une formule matricielle en changeant les $C$1:$C$7
en $C$4$C$11 et pareil pour $A$1:$A$7 mais rien ne s'affiche.
Vois tu quel est le problème ?
Olivier


"Daniel.C"
Pour simplifier. Avec
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
Je récupère les n° de ligne des valeurs positives. Je me sers ensuite de
cette valeur dans la fonction INDEX pour récupérer les données dans les
colonnes A, B et C.
LIGNE() me donne le numéro de ligne ou se trouve la formule et
indirectement le numéro d'ordre de la fonction PETITE.VALEUR.
SI($C$1:$C$7>0;LIGNE($C$1:$C$7)) renvoie une matrice des lignes des
cellules de la colonne C ayant une valeur positive.
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
renvoie pour la ligne 1 la première ligne etc.
Comme il n'y a, dans l'exemple que 4 valeurs positives, la formule de la 5e
ligne renvoie une erreur. Je teste donc pour savoir si la formule est en
erreur, et si oui, je n'affiche rien.
D'ailleurs, je viens d'y penser, pour faire plus simple, j'aurais pu écrire
:
=SI(NB.SI($C$1:$C$7;">=0") A ta disposition pour toute explication complémentaire.
Daniel
Merci Daniel
Ca marche, je vois pas comment mais ca fonctionne !
Tu peux expliquer ce qui se passe exactement ?
SI(
ESTERR(PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()));
"";
INDEX($A$1:$A$7;PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE())))
Je n'arrive pas à comprendre la signification du ESTERR et de
PETITE.VALEUR
Merci encore
Olivier

"Daniel.C"
Regarde ton classeur modifié :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijmSjSafZ.xls
Daniel

Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le travail
sur la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique
marche mais le problème est que les nombres ne restent pas toujours
positifs ou négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera devenu -1
et ne devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir
réutiliser le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter une
colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille, et
appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir le
classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom, prenom,
.... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces
lignes mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et
entre nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier




















Olivier
Le #19535081
Merci j'y suis arrivé !
Olivier

"Daniel.C" e%
Bonjour.
Etant donné que je me sers du numéro de ligne pour la fonction INDEX, il
faut conserver les plages $A$1:$A$7 etc. Par exemple :
=SI(NB.SI(Feuil2!$C$4:$C$10;">0") Regarde l'exemple ici :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijbBir2X0.xls
Daniel

Bonjour,
je reviens poser une question car ca ne marche plus !!
Mes données se trouvent à partir de la ligne 4 et je veux afficher sur
une autre feuille.
J'arrive à faire le changement de feuille en rajoutant devant les
$C$1:$C$7 le nom de la feuille où sont les données.
Ca ca marche.
Mais là où ca ne fonctionne plus, c'est lorsque mes données ne débutent
pas en ligne 1. je fais bien une formule matricielle en changeant les
$C$1:$C$7 en $C$4$C$11 et pareil pour $A$1:$A$7 mais rien ne s'affiche.
Vois tu quel est le problème ?
Olivier


"Daniel.C"
Pour simplifier. Avec
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
Je récupère les n° de ligne des valeurs positives. Je me sers ensuite de
cette valeur dans la fonction INDEX pour récupérer les données dans les
colonnes A, B et C.
LIGNE() me donne le numéro de ligne ou se trouve la formule et
indirectement le numéro d'ordre de la fonction PETITE.VALEUR.
SI($C$1:$C$7>0;LIGNE($C$1:$C$7)) renvoie une matrice des lignes des
cellules de la colonne C ayant une valeur positive.
PETITE.VALEUR(SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()))
renvoie pour la ligne 1 la première ligne etc.
Comme il n'y a, dans l'exemple que 4 valeurs positives, la formule de la
5e ligne renvoie une erreur. Je teste donc pour savoir si la formule est
en erreur, et si oui, je n'affiche rien.
D'ailleurs, je viens d'y penser, pour faire plus simple, j'aurais pu
écrire :
=SI(NB.SI($C$1:$C$7;">=0") A ta disposition pour toute explication complémentaire.
Daniel
Merci Daniel
Ca marche, je vois pas comment mais ca fonctionne !
Tu peux expliquer ce qui se passe exactement ?
SI(
ESTERR(PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE()));
"";
INDEX($A$1:$A$7;PETITE.VALEUR(
SI($C$1:$C$7>0;LIGNE($C$1:$C$7));LIGNE())))
Je n'arrive pas à comprendre la signification du ESTERR et de
PETITE.VALEUR
Merci encore
Olivier

"Daniel.C"
Regarde ton classeur modifié :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijmSjSafZ.xls
Daniel

Bonjour.
La formule matricielle (à valider avec CTRL+Maj+Entrée) fait le
travail sur la même feuille à partir de la ligne 1 :
=SI(ESTERR(PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()));"";PETITE.VALEUR(SI($C$1:$C$7>0;$C$1:$C$7*LIGNE($C$1:$C$7));LIGNE()))
Cordialement.
Daniel

Merci pour l'idée mais...
J'affine un peu plus ma question :
le nombre en question est la différence entre le numéro du jour
d'aujourd'hui et du jour de naissance.
Ainsi aujourd'hui on est le 5.
Si on est né le 3, le nombre est 3-5 = -2 négatif
Si on est né le 6, le nombre est 6-5 = 1 positif.
Si on est né le 12, le nombre est 12-5 = 7 positif.
Je ne veux afficher que ceux qui ont un nombre positif. Ta technique
marche mais le problème est que les nombres ne restent pas toujours
positifs ou négatifs suivant le jour qu'on ouvre le classeur.
par exemple, dans deux jours (on est le 7) le nombre 1 sera
devenu -1 et ne devra plus être affiché.
J'aurais souhaité que tout se fasse automatiquement sans devoir
réutiliser le filtre à chaque ouverture du classeur.
Merci
Olivier



"isabelle" a écrit dans le message de news:
%
bonjour Olovier,

comme il n'y a pas de liens entre les données, tu pourrais ajouter
une colonne sur laquel tu pourrais mettre des 1
vis-à-vis les données que tu veut transférer sur l'autre feuille,
et appliquer un filtre automatique.

isabelle

Olivier a écrit :
Bonjour,
je voudrais SANS utiliser VBA donc uniquement avec Excel obtenir
le classeur suivant.
J'ai en feuille2, plusieurs lignes contenant des données Nom,
prenom, .... avec en colonne C des nombres.
Je voudrais que s'affiche en Feuille 1, un récapitulatif de ces
lignes mais uniquement celle qui contiennent des nombres positifs.
Exemple
Feuille 2
Nom1, prenom1,18
Nom2, prenom2,113
Nom3, prenom3,-5
Nom4, prenom4,6
Nom5, prenom5,-7
Nom6, prenom6,-79
Nom7, prenom7,42
En feuille 1 je veux obtenir
Nom1, prenom1,18
Nom2, prenom2,113
Nom4, prenom4,6
Nom7, prenom7,42

Bien sur, je ne veux pas de ligne vide entre les nom2 et nom4 et
entre nom4 et nom7 (sinon je sais faire)
Est-ce possible sans VBA ?
Merci à tous
Olivier
























Publicité
Poster une réponse
Anonyme