Mise à jour zone d'impression

  • Initiateur de la discussion Initiateur de la discussion gvives
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gvives

XLDnaute Occasionnel
Bonjour à tous,

Je souhaite que la zone d'impression d'une feuille excel se mette à jour automatiquement. J'ai récupéré ce code qui fonctionne à un détail près puisque la zone d'impression de ce code ne sélectionne que la colonne B alors que la zone souhaitée est de B2 à J... (jusqu'à la ligne ou se situe le chiffre 0 dans la colonne A).

Sub ImpressionDynamiqueFormules()
ActiveWindow.DisplayZeros = True
lignefin = [A:A].Find("0", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
If Err = 0 Then
ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(lignefin - 1, 2)).Address
Else
ActiveSheet.PageSetup.PrintArea = [B1].CurrentRegion.Address
End If
End Sub

Une autre question, est-il possible que cette macro s'execute automotiquement lorsque le chiffre 0 est saisie.

Merci beaucoup de votre aide.
 
Re : Mise à jour zone d'impression

Bonjour à tous,

Peux-tu essayer avec :

VB:
Sub ImpressionDynamiqueFormules()
    ActiveWindow.DisplayZeros = True
    Lignefin = [A:A].Find("0", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
    If Err = 0 Then
        ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(Lignefin - 1, 10)).Address
    Else
        ActiveSheet.PageSetup.PrintArea = [B1].CurrentRegion.Address
    End If
End Sub

A + à tous
 
Re : Mise à jour zone d'impression

Bonjour à tous,

Petite modification pour adaptation à ta deuxième question:

Dans un module standard :

VB:
Sub ImpressionDynamiqueFormules()
On Error GoTo Fin
    ActiveWindow.DisplayZeros = True
    Lignefin = [A:A].Find("0", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
    If Err = 0 Then
        ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(Lignefin - 1, 10)).Address
    Else
        ActiveSheet.PageSetup.PrintArea = [B1].CurrentRegion.Address
    End If
Fin:
End Sub
Dans le module de la feuille :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With F1.Range("A1:A100")
If Target.Value = 0 Then Call ImpressionDynamiqueFormules
End With
End Sub

A + à tous

Edition suite à ton dernier message : J'ai simplement modifié cette ligne :
ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(Lignefin - 1,1)).Address

en
ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(Lignefin - 1,10)).Address
pour avoir la dixième colonne donc la J

 
Dernière édition:
Re : Mise à jour zone d'impression

Merci encore JCBL,

Je rajoute une petite question ... comment puis-je rendre variable de la même façon la valeur de ma colonne (avc un zéro dans la ligne 2 pour le choix de la colonne)...

Merci encore...
 
Re : Mise à jour zone d'impression

En fait je pense que je me suis mal exprimé dans mon dernier message.

Je souhaite que la saisie de zéros délimite ma zone d'impression.

Jusqu'à ici la macro délimite la ligne de fin de ma zone d'impression grace au zéro saisie dans la colonne A.

Je souhaite aussi pouvoir délimiter la colonne de fin en saisissant un zéro sur la ligne 2.

Le fichier suivant va expliquer un peu mieux les choses...
 

Pièces jointes

Re : Mise à jour zone d'impression

En fait je voudrais la même chose que ce code ci mais avec que la colonne (ici n°10) soit définie grace à un zéro inscrit en ligne 2 sous la colonne correspondante.

Sub ImpressionDynamiqueFormules()
ActiveWindow.DisplayZeros = True
Lignefin = [A:A].Find("0", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
If Err = 0 Then
ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(Lignefin - 1, 10)).Address
Else
ActiveSheet.PageSetup.PrintArea = [B1].CurrentRegion.Address
End If
End Sub

Merci encore...
 
Re : Mise à jour zone d'impression

Bonjour à tous,

Donc tu souhaites que la zone d'impression soit définie par la colonne -1 qui contient le 0 et la ligne -1 qui contient le 0...

Merci de reprendre mon dernier code est de tenter de l'adapter.

Je repasse demain si tu n'as pas de réponse.

A + à tous
 
Re : Mise à jour zone d'impression

Rebonjour JCGL,

J'ai d'abord voulu fonctionner par étape et j'ai tenté d'essayer d'adapter ton code en rendant variable la colonne pour ensuite intégrer fusionner les deux codes. Mais je bloque déjà à la première étape 🙁

Sub ImpressionDynamiqueFormules()
ActiveWindow.DisplayZeros = True
Columnsfin = [2:2].Find("0", SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Columns
If Err = 0 Then
ActiveSheet.PageSetup.PrintArea = Range([B2], Cells(Columnsfin, 2)).Address
Else
ActiveSheet.PageSetup.PrintArea = [B2].CurrentRegion.Address
End If
End Sub

Mais j'ai une erreur 400 et je suis très novice en VBA...

Si tu as deux minutes à me consacrer...

Merci par avance,
 
Re : Mise à jour zone d'impression

Bonjour à tous,

Voici ce à quoi je pensais :

Dans un module standard :
VB:
Option Explicit


Sub ImpressionDynamiqueFormules()
Dim LigFin%
Dim ColFin%


On Error GoTo Fin
    ActiveWindow.DisplayZeros = True
    LigFin = [E:E].Find("0", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
    ColFin = [2:2].Find("0", SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Column
    If Err = 0 Then
        ActiveSheet.PageSetup.PrintArea = Range("E2", Cells(LigFin - 1, ColFin - 1)).Address
    Else
        ActiveSheet.PageSetup.PrintArea = [A1].CurrentRegion.Address
    End If
Fin:
End Sub

Dans le module de la feuille :

VB:
Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
With Feuil1.Range("A2")
If Target.Value <> "" Then Call ImpressionDynamiqueFormules
End With
End Sub

Déclenchement du code par changement de la valeur dans la liste de validation en A2

A + à tous
 

Pièces jointes

Re : Mise à jour zone d'impression

C superrrr JCGL !!!

Je n'aurais jamais pu faire ça tout seul merci beaucoup du temps que tu m'a consacré...

Heuu je suis assez content de voir que j'avais bien rédigé ma recherche colonne 🙂

Très bonne journée,

Gaëtan
 
Re : Mise à jour zone d'impression

Bonjour à tous,
Salut Gaëtan,

Je suis ravi de voir que tu étais presque arrivé au résultat...
Un conseil : commence tous tes codes par Option Explicit et rédige en minuscule. Si la syntaxe est bonne, le passage en "nom propre" sera automatique.

Cela peut être automatisé dans l’Éditeur VBA accessible par Alt F11 et Outils et Options :

Capture_1.png

A++ l'ami et au plaisir de tenter de t'aider et surtout de te lire sur des réponses...

A + à tous
 

Pièces jointes

  • Capture_1.png
    Capture_1.png
    43.1 KB · Affichages: 64
  • Capture_1.png
    Capture_1.png
    43.1 KB · Affichages: 63
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
461
Réponses
0
Affichages
1 K
Réponses
2
Affichages
929
Retour