OVH Cloud OVH Cloud

impression cellule avec valeur

9 réponses
Avatar
JACK 43
Bonjour,

Il y a qq jours je souhaitait : " Voilà je souhaite associer à une macro un
bouton. Ce bouton déclencherai
l'impression de la sélection.

Voilà mon problème la plage à imprimer sera toujours de la même largeur
(cellule A à F mais pour la longueur on débute en 1 mais on devrait finir sur
la dernière ligne où l'on trouve une valeur en A (absolument en A car de B à
F j'ai des totaux sur la ligne 300).

la réponse fut la suivante :

Range([A1], [A1].End(xlDown).End(xlToRight)).PrintOut



La macro fonctionne, malheureusement elle imprime jusqu'à la ligne 300. En
effet, la macro je pense ne trouve pas les cellules vides car il y a des
formules.

Visuellement elles sont vides mais elles ont toutes une formule. Donc est-il
possible d'imprimer en sélectionnant la plage d'impression contenant la
dernière valeur en A.

Par ailleurs j'ai le même problème pour un encadrement de cellules. Je
souhaitais effectuer un encadrement jusqu'à la dernière ligne où il y a une
valeur avec la mise en forme conditionnelle et la formule suivante :
=NBVAL($A30:$D30)>0 puis format bordure. Mais toute la plage est encadrée
même où il n'y a pas de valeurs apparentes car il y a des formules dans
chaque cellules.

MERCI ET A+

9 réponses

Avatar
Youky
salut,
pour l'impression
For k = Range("A65000").End(xlUp).Row To 1 Step -1
If Cells(k, 1) <> "" Then Exit For
Next
Range("A1:F" & k).PrintOut


"JACK 43" (sansspam)> a écrit dans le message de
news:
Bonjour,

Il y a qq jours je souhaitait : " Voilà je souhaite associer à une macro
un
bouton. Ce bouton déclencherai
l'impression de la sélection.

Voilà mon problème la plage à imprimer sera toujours de la même largeur
(cellule A à F mais pour la longueur on débute en 1 mais on devrait finir
sur
la dernière ligne où l'on trouve une valeur en A (absolument en A car de B
à
F j'ai des totaux sur la ligne 300).

la réponse fut la suivante :

Range([A1], [A1].End(xlDown).End(xlToRight)).PrintOut



La macro fonctionne, malheureusement elle imprime jusqu'à la ligne 300. En
effet, la macro je pense ne trouve pas les cellules vides car il y a des
formules.

Visuellement elles sont vides mais elles ont toutes une formule. Donc
est-il
possible d'imprimer en sélectionnant la plage d'impression contenant la
dernière valeur en A.

Par ailleurs j'ai le même problème pour un encadrement de cellules. Je
souhaitais effectuer un encadrement jusqu'à la dernière ligne où il y a
une
valeur avec la mise en forme conditionnelle et la formule suivante :
=NBVAL($A30:$D30)>0 puis format bordure. Mais toute la plage est
encadrée
même où il n'y a pas de valeurs apparentes car il y a des formules dans
chaque cellules.

MERCI ET A+



Avatar
JB
Bonjour,

J'avais compris que le tableau ressemblait à ceci (il n'y a rien en
A300)
Dans ce cas, la ligne 300 ne doit pas être imprimée.

http://cjoint.com/?mpsPXfnGcw

A B C D E F
1 10 11 12 13 14 15
2 20
3 25
4


299 11 22 33 66 55 44
300 xxxx
301

Cordialement JB
Avatar
JACK 43
Bonsoir YOUKY,

J'ai essayer la macro dans unb classeur vierge, elle fonctionne parfaitement.

En revanche dans mon classeur dont l'impression doit débuter à la cellule
BB31 jusqu'à BG en largeur puis en dessous dans la mesure où il y a des
valeurs (mais ne tient pas compte s'il s'agit de fonction); elle ne
fonctionne pas .

Je n'ai que l'impression de la première ligne.

Voici la macro modifier, comme je débute j'ai certainement fait une erreur;

Sub impressA()
For k = Range("BB65000").End(xlUp).Row To 1 Step -1
If Cells(k, 1) <> "" Then Exit For
Next
Range("BB31:BG" & k).PrintOut
End Sub


MERCI ET A+

******************************************



"Youky" wrote:

salut,
pour l'impression
For k = Range("A65000").End(xlUp).Row To 1 Step -1
If Cells(k, 1) <> "" Then Exit For
Next
Range("A1:F" & k).PrintOut


"JACK 43" (sansspam)> a écrit dans le message de
news:
Bonjour,

Il y a qq jours je souhaitait : " Voilà je souhaite associer à une macro
un
bouton. Ce bouton déclencherai
l'impression de la sélection.

Voilà mon problème la plage à imprimer sera toujours de la même largeur
(cellule A à F mais pour la longueur on débute en 1 mais on devrait finir
sur
la dernière ligne où l'on trouve une valeur en A (absolument en A car de B
à
F j'ai des totaux sur la ligne 300).

la réponse fut la suivante :

Range([A1], [A1].End(xlDown).End(xlToRight)).PrintOut



La macro fonctionne, malheureusement elle imprime jusqu'à la ligne 300. En
effet, la macro je pense ne trouve pas les cellules vides car il y a des
formules.

Visuellement elles sont vides mais elles ont toutes une formule. Donc
est-il
possible d'imprimer en sélectionnant la plage d'impression contenant la
dernière valeur en A.

Par ailleurs j'ai le même problème pour un encadrement de cellules. Je
souhaitais effectuer un encadrement jusqu'à la dernière ligne où il y a
une
valeur avec la mise en forme conditionnelle et la formule suivante :
=NBVAL($A30:$D30)>0 puis format bordure. Mais toute la plage est
encadrée
même où il n'y a pas de valeurs apparentes car il y a des formules dans
chaque cellules.

MERCI ET A+








Avatar
JACK 43
Bonsoir et Merçi JB,

Si tu avais mal compris c'est trés certainement que je mettais mal exprimé.
(c'est tellement difficile d'une façon littérale de décrire une action que
l'on souhaite).

Je reviens à mon souhait la macro "essai" correspond bien à ce que je
recherche.

Malheureusement, dans mon classeur la sélection de la macro s'effectue
jusqu'à la ligne où s'arrête les formules même sans valeur à l'intérieur.
(oui car la formule en A10 est du style =si(w10="";"";W10) donc si rien W10
vide A10;
Mais la sélection faite par la macro est active sur A10.

Chose que je n'arrive pas à comprendre ensuite lorsque je vois que celà ne
fonctionne pas, je mets la même façon de procéder (formule) dans ton classeur
dans cijoint et là la macro ne tient pas compte des formules et sélectionne
que les cellules avec valeur !!!!! HELP!! MERCI pour ton aide.


Bonjour,

J'avais compris que le tableau ressemblait à ceci (il n'y a rien en
A300)
Dans ce cas, la ligne 300 ne doit pas être imprimée.

http://cjoint.com/?mpsPXfnGcw

A B C D E F
1 10 11 12 13 14 15
2 20
3 25
4


299 11 22 33 66 55 44
300 xxxx
301

Cordialement JB




Avatar
Youky
Sub impressA()
For k = Range("BB65000").End(xlUp).Row To 1 Step -1
If Cells(k, 1) <> "" Then Exit For
Next
ActiveSheet.PageSetup.PrintArea = "BB31:BG" & k
ActiveSheet.PrintOut
ActiveSheet.PageSetup.PrintArea = ""
End Sub

cela devra faire l'affaire, la derniere ligne sert seulement à remettre
la zone d'impression en entier.

pour ta question 2
format de mise forme conditionnelle
la formule à modifier $A30 est la 1ere cellule et $D$100 la derniere
le $ sert à bloquer la ligne ou la colonne dans la recopie des formules
=NB.SI($A30:$D$100;">0")

Youky

"JACK 43" (sansspam)> a écrit dans le message de
news:
Bonsoir YOUKY,

J'ai essayer la macro dans unb classeur vierge, elle fonctionne
parfaitement.

En revanche dans mon classeur dont l'impression doit débuter à la cellule
BB31 jusqu'à BG en largeur puis en dessous dans la mesure où il y a des
valeurs (mais ne tient pas compte s'il s'agit de fonction); elle ne
fonctionne pas .

Je n'ai que l'impression de la première ligne.

Voici la macro modifier, comme je débute j'ai certainement fait une
erreur;

Sub impressA()
For k = Range("BB65000").End(xlUp).Row To 1 Step -1
If Cells(k, 1) <> "" Then Exit For
Next
Range("BB31:BG" & k).PrintOut
End Sub


MERCI ET A+

******************************************



"Youky" wrote:

salut,
pour l'impression
For k = Range("A65000").End(xlUp).Row To 1 Step -1
If Cells(k, 1) <> "" Then Exit For
Next
Range("A1:F" & k).PrintOut


"JACK 43" (sansspam)> a écrit dans le message
de
news:
Bonjour,

Il y a qq jours je souhaitait : " Voilà je souhaite associer à une
macro
un
bouton. Ce bouton déclencherai
l'impression de la sélection.

Voilà mon problème la plage à imprimer sera toujours de la même
largeur
(cellule A à F mais pour la longueur on débute en 1 mais on devrait
finir
sur
la dernière ligne où l'on trouve une valeur en A (absolument en A car
de B
à
F j'ai des totaux sur la ligne 300).

la réponse fut la suivante :

Range([A1], [A1].End(xlDown).End(xlToRight)).PrintOut



La macro fonctionne, malheureusement elle imprime jusqu'à la ligne 300.
En
effet, la macro je pense ne trouve pas les cellules vides car il y a
des
formules.

Visuellement elles sont vides mais elles ont toutes une formule. Donc
est-il
possible d'imprimer en sélectionnant la plage d'impression contenant la
dernière valeur en A.

Par ailleurs j'ai le même problème pour un encadrement de cellules. Je
souhaitais effectuer un encadrement jusqu'à la dernière ligne où il y a
une
valeur avec la mise en forme conditionnelle et la formule suivante :
=NBVAL($A30:$D30)>0 puis format bordure. Mais toute la plage est
encadrée
même où il n'y a pas de valeurs apparentes car il y a des formules dans
chaque cellules.

MERCI ET A+










Avatar
Ange Ounis
La fonction NB (Count en VBA) permet de décompter les cellules qui affichent un
résultat, en laissant de côté celles qui contiennent une formule qui renvoient,
par exemple, du texte vide("").
Attention toutefois : si ta plage peut avoir des trous (A1:A50 "occupée" puis
données suivantes en A70:A120 par exemple, soit un trou de 20 lignes) le
résultat ne sera pas celui attendu..
Si ce n'est pas le cas, ce genre de code pourrait peut-être te dépanner (pour
l'impression) :

Sub ImprimerPlageUtile()
Range("A1:F" & _
Application.Count(Range("A1:F299"))).PrintOut
End Sub

----------
Ange Ounis
----------

Bonjour,

Il y a qq jours je souhaitait : " Voilà je souhaite associer à une macro un
bouton. Ce bouton déclencherai
l'impression de la sélection.

Voilà mon problème la plage à imprimer sera toujours de la même largeur
(cellule A à F mais pour la longueur on débute en 1 mais on devrait finir sur
la dernière ligne où l'on trouve une valeur en A (absolument en A car de B à
F j'ai des totaux sur la ligne 300).

la réponse fut la suivante :

Range([A1], [A1].End(xlDown).End(xlToRight)).PrintOut



La macro fonctionne, malheureusement elle imprime jusqu'à la ligne 300. En
effet, la macro je pense ne trouve pas les cellules vides car il y a des
formules.

Visuellement elles sont vides mais elles ont toutes une formule. Donc est-il
possible d'imprimer en sélectionnant la plage d'impression contenant la
dernière valeur en A.

Par ailleurs j'ai le même problème pour un encadrement de cellules. Je
souhaitais effectuer un encadrement jusqu'à la dernière ligne où il y a une
valeur avec la mise en forme conditionnelle et la formule suivante :
=NBVAL($A30:$D30)>0 puis format bordure. Mais toute la plage est encadrée
même où il n'y a pas de valeurs apparentes car il y a des formules dans
chaque cellules.

MERCI ET A+



Avatar
Herdet
Bonsoir Ange,
Pourrais-tu rester dans le même fil que la question, STP ?
Tes réponses sont isolées et donc avant de les ouvrir on ne sait pas
toujours à qu'elle question elles sont liées.
Merci
Salutations
Robert

"Ange Ounis" a écrit dans le message de news:

La fonction NB (Count en VBA) permet de décompter les cellules qui
affichent un résultat, en laissant de côté celles qui contiennent une
formule qui renvoient, par exemple, du texte vide("").
Attention toutefois : si ta plage peut avoir des trous (A1:A50 "occupée"
puis données suivantes en A70:A120 par exemple, soit un trou de 20 lignes)
le résultat ne sera pas celui attendu..
Si ce n'est pas le cas, ce genre de code pourrait peut-être te dépanner
(pour l'impression) :

Sub ImprimerPlageUtile()
Range("A1:F" & _
Application.Count(Range("A1:F299"))).PrintOut
End Sub

----------
Ange Ounis
----------

Bonjour,

Il y a qq jours je souhaitait : " Voilà je souhaite associer à une macro
un bouton. Ce bouton déclencherai l'impression de la sélection.

Voilà mon problème la plage à imprimer sera toujours de la même largeur
(cellule A à F mais pour la longueur on débute en 1 mais on devrait finir
sur la dernière ligne où l'on trouve une valeur en A (absolument en A car
de B à F j'ai des totaux sur la ligne 300).

la réponse fut la suivante : Range([A1],
[A1].End(xlDown).End(xlToRight)).PrintOut



La macro fonctionne, malheureusement elle imprime jusqu'à la ligne 300.
En effet, la macro je pense ne trouve pas les cellules vides car il y a
des formules.

Visuellement elles sont vides mais elles ont toutes une formule. Donc
est-il possible d'imprimer en sélectionnant la plage d'impression
contenant la dernière valeur en A.

Par ailleurs j'ai le même problème pour un encadrement de cellules. Je
souhaitais effectuer un encadrement jusqu'à la dernière ligne où il y a
une valeur avec la mise en forme conditionnelle et la formule suivante :
=NBVAL($A30:$D30)>0 puis format bordure. Mais toute la plage est
encadrée même où il n'y a pas de valeurs apparentes car il y a des
formules dans chaque cellules.

MERCI ET A+





Avatar
Clément Marcotte
Bonjour,

Pourrais-tu rester dans le même fil que la question, STP ?


Mais, c'est ça qu'il a fait.

Tes réponses sont isolées et donc avant de les ouvrir on ne sait pas
toujours à qu'elle question elles sont liées.


M'est avis que c'est soit le serveur, soit OE qui te joue des tours.

Pour le cas où ce serait OE, le remède connu est:
0) S,assurer que l'on est en période creuse sur le forum
1) Se désabonner du groupe.
2) Fermer OE.
3) Selon JièL, relancer la machine
4) Relancer OE.
5) Se réabonner
6) Recharger un nombre suffisant d'entêtes
7) Si on a tout lu avant de se désabonner, on peut ensuite sans trop risquer
de manquer des messages importants, tout remettre comme lu sans tout relire.

P.S. 0, 6 et 7 sont des ajouts personnels dictés par l'expérience.

Si c'est un problème de serveur, tu peux essayer d'ajouter un compte de news
avec le serveur de MS: msnews.microsoft.com

OE peut jouer avec 2 comptes de news distincts.

Avatar
Ange Ounis
Bonsoir Robert,

Comme noté par Clément, je me suis contenté de cliquer sur "Répondre" au message
de JACK 43 du 15/12/05 16:40 dans mon lecteur de news (Thunderbird). Toujours
dans Thunderbird, ma réponse apparait bien dans le fil voulu.
Vu le nombre de problèmes qu'on peut lire ici ou ailleurs concernant Outlook
Express, problèmes dont je n'ai jamais vu l'ombre de la queue d'un avec Netscape
4.75 que j'ai utilisé longtemps ni avec Thunderbird que j'utilise maintenant,
puis-je te suggérer au moins un essai (de Thunderbird) ?
En passant, merci pour les photos de l'incontournable dîner parisien annuel du mpfe.
Cordialement

----------
Ange Ounis
----------

Bonsoir Ange,
Pourrais-tu rester dans le même fil que la question, STP ?
Tes réponses sont isolées et donc avant de les ouvrir on ne sait pas
toujours à qu'elle question elles sont liées.
Merci
Salutations
Robert

"Ange Ounis" a écrit dans le message de news:


La fonction NB (Count en VBA) permet de décompter les cellules qui
affichent un résultat, en laissant de côté celles qui contiennent une
formule qui renvoient, par exemple, du texte vide("").
Attention toutefois : si ta plage peut avoir des trous (A1:A50 "occupée"
puis données suivantes en A70:A120 par exemple, soit un trou de 20 lignes)
le résultat ne sera pas celui attendu..
Si ce n'est pas le cas, ce genre de code pourrait peut-être te dépanner
(pour l'impression) :

Sub ImprimerPlageUtile()
Range("A1:F" & _
Application.Count(Range("A1:F299"))).PrintOut
End Sub

----------
Ange Ounis
----------


Bonjour,

Il y a qq jours je souhaitait : " Voilà je souhaite associer à une macro
un bouton. Ce bouton déclencherai l'impression de la sélection.

Voilà mon problème la plage à imprimer sera toujours de la même largeur
(cellule A à F mais pour la longueur on débute en 1 mais on devrait finir
sur la dernière ligne où l'on trouve une valeur en A (absolument en A car
de B à F j'ai des totaux sur la ligne 300).

la réponse fut la suivante : Range([A1],
[A1].End(xlDown).End(xlToRight)).PrintOut



La macro fonctionne, malheureusement elle imprime jusqu'à la ligne 300.
En effet, la macro je pense ne trouve pas les cellules vides car il y a
des formules.

Visuellement elles sont vides mais elles ont toutes une formule. Donc
est-il possible d'imprimer en sélectionnant la plage d'impression
contenant la dernière valeur en A.

Par ailleurs j'ai le même problème pour un encadrement de cellules. Je
souhaitais effectuer un encadrement jusqu'à la dernière ligne où il y a
une valeur avec la mise en forme conditionnelle et la formule suivante :
=NBVAL($A30:$D30)>0 puis format bordure. Mais toute la plage est
encadrée même où il n'y a pas de valeurs apparentes car il y a des
formules dans chaque cellules.

MERCI ET A+