Bonsoir vous tous,
J'ai à nouveau un problème à vous soumettre.
Dans le fichier ci-joint, je voudrais que sur la feuille nommée "Français" je puisse définir une zone d'impression qui S'AGRANDISSE AUTOMATIQUEMENT selon le nombre de lignes visibles, soit une zone pouvant aller au maximum de A1 à F252.
Pour l'exemple fourni, il faudrait que ça imprime les cellules A1 - F42.
http://cjoint.com/?gfwHUptHgn
Comment dois-je m'y prendre ?
Définir une zone d'impression extensible
-

Yvouille - Membre impliqué
- Messages: 2074
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Salut le Forum
Yvouille avec une petite macro associée à un bouton.
Mytå
Yvouille avec une petite macro associée à un bouton.
- Code: Tout sélectionner
Sub Impression()
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$" & _
Columns(4).Find("*", [D1], , , , xlPrevious).Row
ActiveWindow.SelectedSheets.PrintPreview
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub
Mytå
- Mytå
Salut le forum
Pour l'impression inverse les lignes de code en commentaire
J'avais activer le PrintPreview pour ne pas imprimer durant les tests.
Mytå
Pour l'impression inverse les lignes de code en commentaire
- Code: Tout sélectionner
'ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SelectedSheets.PrintOut Copies:=1
J'avais activer le PrintPreview pour ne pas imprimer durant les tests.
Mytå
- Mytå
Bonjour,
une solution sans macro :
Principe : la zone d'impression sur Excel correspond en fait à une plage nommée.
Il "suffit" d'utiliser une formule nommée appelée Zone_d_impression
Insertion - Nom - Définir :
Nom dans le classeur : Zone_d_impression
Fait référence à : =DECALER(Français!$A$1;;;EQUIV("";Français!$A$11:$A$252;0)+10;6)
La plage de cellules nommée Zone_d_impression s'adaptera automatiquement au nombre de données comprises dans ta feuille.
@+
une solution sans macro :
Principe : la zone d'impression sur Excel correspond en fait à une plage nommée.
Il "suffit" d'utiliser une formule nommée appelée Zone_d_impression
Insertion - Nom - Définir :
Nom dans le classeur : Zone_d_impression
Fait référence à : =DECALER(Français!$A$1;;;EQUIV("";Français!$A$11:$A$252;0)+10;6)
La plage de cellules nommée Zone_d_impression s'adaptera automatiquement au nombre de données comprises dans ta feuille.
@+
- thibo
- Passionné d'Excel
- Messages: 3092
- Inscription: 03 Mai 2007, 18:51
- Version Excel: Excel 2003 + 2007
Bonsoir le Forum,
Un merci particulier à Thibo et Mytå pour leur solution respective et qui m'ont permis d'avancer d'une manière géniale dans mon projet. J'ai finalement choisi la solution de Thibo pour la feuille ci-jointe.
Une fois de plus je reste coi devant les solutions dont vous me faite profiter (ici j'inclu plusieurs personnes qui sont intervenues pour d'autres problèmes que j'avais soumis).
J'aurais encore un petit soucis à propos de ce travail au niveau de l'impression, mais je pourrais vivre avec. Toutefois si quelqu'un peu éventuellement m'aider à le résoudre, ce serait tant mieux.
Voila, lorsque j'imprime un plan de remboursement, il y a des sauts de page de manière à ce qu'une année complète (12 lignes de 1 mois) apparaisse sur la même feuille. Cependant, comme il y a toujours une dernière ligne 0.00, il se peut qu'elle apparaisse seule sur une page suivante - ce qui est quelque peu génant - au cas où le nombre de mois calculé en E13 est égal à 36, 84, 132, 180 ou 228 (sur la première page il y a trois années puis un saut de page, puis quatre années par page).
Si je ne trouve pas d'autres solutions, on ne fournira simplement pas - le cas échéant - la dernière page avec seulement la ligne des zéros.
http://cjoint.com/?giu4Q8LiCK
Un merci particulier à Thibo et Mytå pour leur solution respective et qui m'ont permis d'avancer d'une manière géniale dans mon projet. J'ai finalement choisi la solution de Thibo pour la feuille ci-jointe.
Une fois de plus je reste coi devant les solutions dont vous me faite profiter (ici j'inclu plusieurs personnes qui sont intervenues pour d'autres problèmes que j'avais soumis).
J'aurais encore un petit soucis à propos de ce travail au niveau de l'impression, mais je pourrais vivre avec. Toutefois si quelqu'un peu éventuellement m'aider à le résoudre, ce serait tant mieux.
Voila, lorsque j'imprime un plan de remboursement, il y a des sauts de page de manière à ce qu'une année complète (12 lignes de 1 mois) apparaisse sur la même feuille. Cependant, comme il y a toujours une dernière ligne 0.00, il se peut qu'elle apparaisse seule sur une page suivante - ce qui est quelque peu génant - au cas où le nombre de mois calculé en E13 est égal à 36, 84, 132, 180 ou 228 (sur la première page il y a trois années puis un saut de page, puis quatre années par page).
Si je ne trouve pas d'autres solutions, on ne fournira simplement pas - le cas échéant - la dernière page avec seulement la ligne des zéros.
http://cjoint.com/?giu4Q8LiCK
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2074
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Salut le forum
Yvouille en modifiant les formules, sur la feuille français
D13=SI(Berechnung!D35>0;Berechnung!D35;SI(A12=Berechnung!$E$13;"Fin Du Prêt";""))
à recopier vers le bas (Double-click sur la cellule)
Le code de la macro
Étant pas fort en Allemand(Deutsch) et Italien(Italiano) à toi de modifier le
"Fin De Prêt" dans ces langues, et adpater les deux autres macros et formules.
A te relire
Mytå
Yvouille en modifiant les formules, sur la feuille français
D13=SI(Berechnung!D35>0;Berechnung!D35;SI(A12=Berechnung!$E$13;"Fin Du Prêt";""))
à recopier vers le bas (Double-click sur la cellule)
Le code de la macro
- Code: Tout sélectionner
Sub Impression_francais()
Sheets("Français").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$" & _
Columns(4).Find("Fin Du Prêt", [D1], , , , xlPrevious).Row - 1
Application.Dialogs(xlDialogPrint).Show
Sheets("Berechnung").Select
Range("G1").Select
End Sub
Étant pas fort en Allemand(Deutsch) et Italien(Italiano) à toi de modifier le
"Fin De Prêt" dans ces langues, et adpater les deux autres macros et formules.
A te relire
Mytå
- Mytå
Bonjour,
Selon le conseil de Mytå, j'ai modifié les cellules D13 et suivantes de la feuille "Français" ainsi que la macro liée au bouton "Français" sur la feuille "Berechnung" (voir fichier ci-joint).
http://cjoint.com/?gjiOH0xVYV
J'ai maintenant toutefois toujours le problème de la ligne veuve imprimée sur une page séparée au cas où le nombre de mois est 36, 84, 132, 180 ou 228 (ce n'est plus "0.00" qui s'affiche, mais "Fin Du Prêt") et en plus l'impression avec une zone d'impression extensible ne fonctionne plus : toutes les pages sont toujours imprimées.
Que fais-je faux ?
Selon le conseil de Mytå, j'ai modifié les cellules D13 et suivantes de la feuille "Français" ainsi que la macro liée au bouton "Français" sur la feuille "Berechnung" (voir fichier ci-joint).
http://cjoint.com/?gjiOH0xVYV
J'ai maintenant toutefois toujours le problème de la ligne veuve imprimée sur une page séparée au cas où le nombre de mois est 36, 84, 132, 180 ou 228 (ce n'est plus "0.00" qui s'affiche, mais "Fin Du Prêt") et en plus l'impression avec une zone d'impression extensible ne fonctionne plus : toutes les pages sont toujours imprimées.
Que fais-je faux ?
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2074
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Bonjour
Le gros problème avec Find, c'est qu'il recherche dans le contenu de la cellule, hors le contenu de la cellule n'est pas ce qui est forcément visible à l'écran, dans ton cas c'est une formule, c'est pour cela qu'il trouve le texte "Fin Du Prêt" en ligne 252.
Tu as deux possibilités :
Comme tu connais le nombre de mois, tu reprends cette donnée,
ou
Tu recherches par la fonction d'excel EQUIV (Match en VBA), le numéro de la ligne qui contient le texte "Fin Du prêt"
Voilà ton problème de définition de la plage d'impression, pour ce qui est de la position de la ligne "Fin Du Prêt", tu dois jouer avec la propriétés PageSetup.FitToPagesTall, qui indique le nombre de pages en hauteur à imprimer, ceci en fonction du nombre de mois.
@+Jean-Marie
Le gros problème avec Find, c'est qu'il recherche dans le contenu de la cellule, hors le contenu de la cellule n'est pas ce qui est forcément visible à l'écran, dans ton cas c'est une formule, c'est pour cela qu'il trouve le texte "Fin Du Prêt" en ligne 252.
Tu as deux possibilités :
Comme tu connais le nombre de mois, tu reprends cette donnée,
- Code: Tout sélectionner
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$" & Sheets("Berechnung").range("E13")+12
'11 étant le numéro de la ligne d'entête. + 1 la ligne de "fin de prêt"
ou
Tu recherches par la fonction d'excel EQUIV (Match en VBA), le numéro de la ligne qui contient le texte "Fin Du prêt"
- Code: Tout sélectionner
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$" & _
Application.Match("Fin Du Prêt", Sheets("Français").Range("D:D"), 0)
Voilà ton problème de définition de la plage d'impression, pour ce qui est de la position de la ligne "Fin Du Prêt", tu dois jouer avec la propriétés PageSetup.FitToPagesTall, qui indique le nombre de pages en hauteur à imprimer, ceci en fonction du nombre de mois.
@+Jean-Marie
- JeanMarie
- Membre fidèle
- Messages: 281
- Inscription: 03 Déc 2006, 13:41
Rebonjour,
J'ai pu continuer à avancer avec mon travail grâce aux précieux conseils de Jean-Marie.
http://cjoint.com/?gjk25fkQ7I
Afin que seul le nombre nécessaire de pages s'imprime, j'ai choisi pour la macro "Impression_francais" - la seule corrigée pour l'instant - sa première proposition :
Je ne suis par contre pas arrivé à résoudre mon deuxième problème.
Je ne sais
-ni comment
-ni à quel endroit
utiliser la proposition de Jean-Marie ci-dessous :
A ce propos, je dois indiquer que j'ai remis un zéro dans ma formule à place de "Fin Du Prêt" tel que proposé une fois par Mytå. Il faudrait donc plutôt lire maintenant la citation de Jean-Marie de la manière suivante : ........ pour ce qui est de la position de la ligne "0.00" .........
Comme je sens qu'on s'approche de la perfection, je me permets d'insister !
Bonnes salutations à vous tous
J'ai pu continuer à avancer avec mon travail grâce aux précieux conseils de Jean-Marie.
http://cjoint.com/?gjk25fkQ7I
Afin que seul le nombre nécessaire de pages s'imprime, j'ai choisi pour la macro "Impression_francais" - la seule corrigée pour l'instant - sa première proposition :
Code:
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$" & Sheets("Berechnung").range("E13")+12
Je ne suis par contre pas arrivé à résoudre mon deuxième problème.
Je ne sais
-ni comment
-ni à quel endroit
utiliser la proposition de Jean-Marie ci-dessous :
..... pour ce qui est de la position de la ligne "Fin Du Prêt", tu dois jouer avec la propriétés PageSetup.FitToPagesTall, qui indique le nombre de pages en hauteur à imprimer, ceci en fonction du nombre de mois.
A ce propos, je dois indiquer que j'ai remis un zéro dans ma formule à place de "Fin Du Prêt" tel que proposé une fois par Mytå. Il faudrait donc plutôt lire maintenant la citation de Jean-Marie de la manière suivante : ........ pour ce qui est de la position de la ligne "0.00" .........
Comme je sens qu'on s'approche de la perfection, je me permets d'insister !
Bonnes salutations à vous tous
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2074
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Salut le forum
Une autre façon aussi de faire, la ligne contenant 0,00 ne sera pas prise en compte à l'impression.
Mytå
Une autre façon aussi de faire, la ligne contenant 0,00 ne sera pas prise en compte à l'impression.
- Code: Tout sélectionner
Sub Impression_francais()
Dim Cellule As Range
Sheets("Français").Select
ActiveSheet.PageSetup.PrintArea = ""
For Each cellule In [D1:D500]
If cellule.Value Like 0 Then Exit For
Next cellule
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$" & cellule.Row - 1
Application.Dialogs(xlDialogPrint).Show
Sheets("Berechnung").Select
Range("G1").Select
End Sub
Mytå
- Mytå
11 messages
• Page 1 sur 2 • 1, 2
-
- Sujets similaires
- Réponses
- Vus
- Dernier message
-
- definir une zone d'impression
par cfn3cfn » 20 Mai 2011, 03:52 - 4 Réponses
- 276 Vus
- Dernier message par cfn3cfn

20 Mai 2011, 09:03
- definir une zone d'impression
-
- Définir automatiquement une Zone d'impression
1, 2par Gepetto3 » 06 Mars 2009, 16:08 - 13 Réponses
- 1895 Vus
- Dernier message par Gepetto3

02 Avr 2009, 08:58
- Définir automatiquement une Zone d'impression
-
- Zone d'impression
par naphy » 03 Fév 2011, 17:19 - 5 Réponses
- 193 Vus
- Dernier message par Nad

07 Fév 2011, 20:08
- Zone d'impression
-
- Vérrouillage de la zone d'impression
par BNE » 10 Mars 2008, 19:55 - 2 Réponses
- 560 Vus
- Dernier message par BNE

13 Mars 2008, 11:40
- Vérrouillage de la zone d'impression
-
- Zone d'impression variable
par plamb2316 » 01 Avr 2009, 16:47 - 2 Réponses
- 386 Vus
- Dernier message par felix

01 Avr 2009, 17:51
- Zone d'impression variable
-
- Zone d'impression sous Excel
par Avenger22 » 16 Mars 2011, 10:10 - 9 Réponses
- 353 Vus
- Dernier message par Nad

16 Mars 2011, 18:25
- Zone d'impression sous Excel
Utilisateurs en ligne
Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Google Adsense [Bot] et 17 invités