Sélectionner la zone tant que le chiffre est négatif

Le
Bruno RCSC
Bonjour,

A l'issue du tri d'un tableau, je voudrais définir une zone d'impression
allant de la cellule N1 à la dernière valeur négative de la colonne Q.

Tant que la valeur de la colonne est négative alors

Malheureusement, je suis incapable d'écrire le code correspondant.

Merci pour votre aide.

Sous Excel 2002

BH.
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 #16541711
bonjour Bruno,

si la premiere valeur négative est à la ligne 1
la formule =NB.SI(Q:Q;"<0") te donnera la ligne de fin des nombres négatif

donc l'adresse sera :
adresse = Range("N1:Q" & Application.CountIf(Range("Q:Q"), "<0")).Address

isabelle

Bruno RCSC a écrit :
Bonjour,

A l'issue du tri d'un tableau, je voudrais définir une zone d'impression
allant de la cellule N1 à la dernière valeur négative de la colonne Q.

Tant que la valeur de la colonne est négative alors ...

Malheureusement, je suis incapable d'écrire le code correspondant.

Merci pour votre aide.

Sous Excel 2002

BH.




Bruno RCSC
Le #16543961
Bonjour,

Merci Isabelle.
Mais je rencontre le problème suivant (incompréhensible) :
la zone ne prend pas les 2 dernières lignes des valeurs négatives
adresse = Range("N1:Q" & Application.CountIf(Range("Q:Q"), "<0")).Address
Range(adresse).Select
Si ma dernière valeur négative est en ligne 40, la sélection s'arrête en
ligne 38 !

J'ai validé par une MFC qu'il me détectait bien des valeurs négatives, ce
qui (heureusement) est le cas.

Une solution ?

Merci.
BH


bonjour Bruno,

si la premiere valeur négative est à la ligne 1
la formule =NB.SI(Q:Q;"<0") te donnera la ligne de fin des nombres négatif

donc l'adresse sera :
adresse = Range("N1:Q" & Application.CountIf(Range("Q:Q"), "<0")).Address

isabelle

Bruno RCSC a écrit :
Bonjour,

A l'issue du tri d'un tableau, je voudrais définir une zone d'impression
allant de la cellule N1 à la dernière valeur négative de la colonne Q.

Tant que la valeur de la colonne est négative alors ...

Malheureusement, je suis incapable d'écrire le code correspondant.

Merci pour votre aide.

Sous Excel 2002

BH.




isabelle
Le #16544891
bonjour Bruno,

est ce que la plage en colonne Q commence à la ligne 1 ?
le tableau est t'il trié sur la colonne Q ?

isabelle

Bruno RCSC a écrit :
Bonjour,

Merci Isabelle.
Mais je rencontre le problème suivant (incompréhensible) :
la zone ne prend pas les 2 dernières lignes des valeurs négatives
adresse = Range("N1:Q" & Application.CountIf(Range("Q:Q"), "<0")).Address
Range(adresse).Select
Si ma dernière valeur négative est en ligne 40, la sélection s'arrête en
ligne 38 !

J'ai validé par une MFC qu'il me détectait bien des valeurs négatives, ce
qui (heureusement) est le cas.

Une solution ?

Merci.
BH


bonjour Bruno,

si la premiere valeur négative est à la ligne 1
la formule =NB.SI(Q:Q;"<0") te donnera la ligne de fin des nombres négatif

donc l'adresse sera :
adresse = Range("N1:Q" & Application.CountIf(Range("Q:Q"), "<0")).Address

isabelle

Bruno RCSC a écrit :
Bonjour,

A l'issue du tri d'un tableau, je voudrais définir une zone d'impression
allant de la cellule N1 à la dernière valeur négative de la colonne Q.

Tant que la valeur de la colonne est négative alors ...

Malheureusement, je suis incapable d'écrire le code correspondant.

Merci pour votre aide.

Sous Excel 2002

BH.








michdenis
Le #16545141
Une lecture en diagonale du fil ...

Dans la question :
| A l'issue du tri d'un tableau, je voudrais définir une zone d'impression
| allant de la cellule N1 à la dernière valeur négative de la colonne Q.

Il n'est pas dit que toutes les entrées en colonne Q sont négatives ????
à moins que je n'ai pas saisi le sens de sa question !




"isabelle" a écrit dans le message de news:
OeO5yaf$
bonjour Bruno,

est ce que la plage en colonne Q commence à la ligne 1 ?
le tableau est t'il trié sur la colonne Q ?

isabelle

Bruno RCSC a écrit :
Bonjour,

Merci Isabelle.
Mais je rencontre le problème suivant (incompréhensible) :
la zone ne prend pas les 2 dernières lignes des valeurs négatives
adresse = Range("N1:Q" & Application.CountIf(Range("Q:Q"), "<0")).Address
Range(adresse).Select
Si ma dernière valeur négative est en ligne 40, la sélection s'arrête en
ligne 38 !

J'ai validé par une MFC qu'il me détectait bien des valeurs négatives, ce
qui (heureusement) est le cas.

Une solution ?

Merci.
BH


bonjour Bruno,

si la premiere valeur négative est à la ligne 1
la formule =NB.SI(Q:Q;"<0") te donnera la ligne de fin des nombres
négatif

donc l'adresse sera :
adresse = Range("N1:Q" & Application.CountIf(Range("Q:Q"), "<0")).Address

isabelle

Bruno RCSC a écrit :
Bonjour,

A l'issue du tri d'un tableau, je voudrais définir une zone d'impression
allant de la cellule N1 à la dernière valeur négative de la colonne Q.

Tant que la valeur de la colonne est négative alors ...

Malheureusement, je suis incapable d'écrire le code correspondant.

Merci pour votre aide.

Sous Excel 2002

BH.








isabelle
Le #16545131
michdenis a écrit :
Une lecture en diagonale du fil ...



Il n'est pas dit que toutes les entrées en colonne Q sont négatives ????
à moins que je n'ai pas saisi le sens de sa question !



je ne crois pas que ce soit le cas, mais si comme dit dans la question initiale:
la plage d'impression doit commencer en "N1" il vaudrait que le tableau soit trier (croissant) sur la colonne Q
pour compter les négatifs
me tromperaisje ? à moins que la colonne Q contienne également du texte et/ou une ligne de titre
isabelle
Bruno RCSC
Le #16545231
Bonjour,

Merci de vous préoccuper de mon problème.

Je préfère vous joindre un exemple concret, j'ai mis le code que j'utilise
et qui précède la sélection de la zone.
On tri la colonne Q par ordre croissant (les variations) avec la colonne O
en décroissant.
Dans la colonne Q, il y a un vide (Q1, le titre Q2).

http://cjoint.com/?ionERZggLP

Merci.

BH


"isabelle" a écrit dans le message de news:
eS8yk6f$


michdenis a écrit :
Une lecture en diagonale du fil ...



Il n'est pas dit que toutes les entrées en colonne Q sont négatives ????
à moins que je n'ai pas saisi le sens de sa question !



je ne crois pas que ce soit le cas, mais si comme dit dans la question
initiale:
la plage d'impression doit commencer en "N1" il vaudrait que le tableau
soit trier (croissant) sur la colonne Q
pour compter les négatifs
me tromperaisje ? à moins que la colonne Q contienne également du texte
et/ou une ligne de titre
isabelle


isabelle
Le #16545311
bonjour Bruno,

il faut ajouter + 2 à la formule pour compter la ligne vide + la ligne de titre
ou bien
compter les négatif de la plage Q3:Q65535

adresse = Range("N1:T" & Application.CountIf(Range("Q:Q"), "<0") + 2).Address
ou
adresse = Range("N1:T" & Application.CountIf(Range("Q3:Q65535"), "<0") + 2).Address

isabelle

Bruno RCSC a écrit :
Bonjour,

Merci de vous préoccuper de mon problème.

Je préfère vous joindre un exemple concret, j'ai mis le code que j'utilise
et qui précède la sélection de la zone.
On tri la colonne Q par ordre croissant (les variations) avec la colonne O
en décroissant.
Dans la colonne Q, il y a un vide (Q1, le titre Q2).

http://cjoint.com/?ionERZggLP

Merci.

BH


"isabelle" a écrit dans le message de news:
eS8yk6f$

michdenis a écrit :
Une lecture en diagonale du fil ...
Il n'est pas dit que toutes les entrées en colonne Q sont négatives ????
à moins que je n'ai pas saisi le sens de sa question !


je ne crois pas que ce soit le cas, mais si comme dit dans la question
initiale:
la plage d'impression doit commencer en "N1" il vaudrait que le tableau
soit trier (croissant) sur la colonne Q
pour compter les négatifs
me tromperaisje ? à moins que la colonne Q contienne également du texte
et/ou une ligne de titre
isabelle






isabelle
Le #16545301
oubli la deuxième suggestion Bruno, c'est un erreur.

isabelle

isabelle a écrit :
bonjour Bruno,

il faut ajouter + 2 à la formule pour compter la ligne vide + la ligne
de titre
ou bien
compter les négatif de la plage Q3:Q65535

adresse = Range("N1:T" & Application.CountIf(Range("Q:Q"), "<0") +
2).Address
ou
adresse = Range("N1:T" & Application.CountIf(Range("Q3:Q65535"), "<0") +
2).Address

isabelle

Bruno RCSC a écrit :
Bonjour,

Merci de vous préoccuper de mon problème.

Je préfère vous joindre un exemple concret, j'ai mis le code que
j'utilise et qui précède la sélection de la zone.
On tri la colonne Q par ordre croissant (les variations) avec la
colonne O en décroissant.
Dans la colonne Q, il y a un vide (Q1, le titre Q2).

http://cjoint.com/?ionERZggLP

Merci.

BH


"isabelle" a écrit dans le message de news:
eS8yk6f$

michdenis a écrit :
Une lecture en diagonale du fil ...
Il n'est pas dit que toutes les entrées en colonne Q sont négatives
????
à moins que je n'ai pas saisi le sens de sa question !


je ne crois pas que ce soit le cas, mais si comme dit dans la
question initiale:
la plage d'impression doit commencer en "N1" il vaudrait que le
tableau soit trier (croissant) sur la colonne Q
pour compter les négatifs
me tromperaisje ? à moins que la colonne Q contienne également du
texte et/ou une ligne de titre
isabelle








Bruno RCSC
Le #16546041
Je confirme que la 1ère solution fonctionne parfaitement.

Merci et bravo Isabelle.

BH.
Publicité
Poster une réponse
Anonyme