Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Impression tableau et code VBA

moustic54

XLDnaute Occasionnel
Bonjour à tous

Je n'y connais rien en code VBA et même en lisant les différents messages je n'ai pas trouvé.
Ma question va sans doute paraitre stupide à plus d'un posteur maitrisant Excel. je voudrais pouvoir imprimer un tableau d'un clic sur un bouton. Le tableau va évoluer de 50 lignes à 100 lignes et plus. donc imprimer le tableau jusqu'à la derniere ligne renseignée. Mais je ne sais pas faire.

J'ai aussi trouvé un code qui affiche une bulle d'aide lorsque l'on approche la souris du bouton mais lorsque je reprends le code : debocage avec erreur sur ("monshape"). Pourquoi ?

Private Sub Bouton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If X < 10 Or X > Bouton1.Width - 10 Or Y < 10 Or Y > Bouton1.Height - 10 Then
ActiveSheet.Shapes("monshape").Visible = False
Else
ActiveSheet.Shapes("monshape").Visible = True
End If
End Sub​
 

JCGL

XLDnaute Barbatruc
Re : Impression tableau et code VBA

Bonjour à tous,

Il te faut définir la zone d'impression avec la fonction Decaler() par Nom / Définir.

Un bout de ton fichier permettrait de te donner les bonnes valeurs de la formule (pour savoir quelle est la colonne qui comprendra le plus de valeurs en lignes).

A+ tous
 

moustic54

XLDnaute Occasionnel
Re : Impression tableau et code VBA


Bonsoir JCGL
Je ne peux pas définir une zone d'impression elle change chaque jour en fonction des saisies dans le tableau et aucune cellule n'est vide.

Je joins juste la trame du tableau sans chiffres, les couleurs qui n'existent pas sur le vrai tableau indiquent les cellules remplies.
 

Pièces jointes

  • IMPRESSION.zip
    5.6 KB · Affichages: 57
  • IMPRESSION.zip
    5.6 KB · Affichages: 49
  • IMPRESSION.zip
    5.6 KB · Affichages: 54

thomlau

XLDnaute Occasionnel
Re : Impression tableau et code VBA

Bonjour Moustic54, le forum.

Je te propose une solution que j'avais trouvé sur ce forum.

Il faut que tu sélectionne la plage A5 à A150, puis tu nomme cette zone Zone_Imp. Cette zone doit faire référence à :
Tu insére cette formule :
Code:
=DECALER(Feuil1!$A$5:$T$5;;;MAX(SI(Feuil1!$B$5:$T$150<>"";LIGNE(Feuil1!$A$5:$A$150)-4)))

Dans un module, ce code :
Code:
Sub impression()

    ActiveSheet.PageSetup.PrintArea = "Zone_Imp"
    '******Attention, réactiver le ligne ci-dessous en supprimant le '******
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1
    Range("A5").Select
    
End Sub

Il ne te rete qu'a affecter cette macro (Sub_impression) au déclenchement de ton bouton de commande.

En espérant avoir répondu à tes attentes...

Bonne journée et bonne fête à tous, bon Week pour certains!
 

Pièces jointes

  • IMPRESSION.zip
    13.6 KB · Affichages: 66
  • IMPRESSION.zip
    13.6 KB · Affichages: 67
  • IMPRESSION.zip
    13.6 KB · Affichages: 70

moustic54

XLDnaute Occasionnel
Re : Impression tableau et code VBA

Bonjour à tous

Et merci pour vos propositions mais je suis vraiment nul.
Même en reprenant le fichier que tu as mis en copie, thomlau, le bouton Impression ne donne rien sauf selection de la cellule A5 et si je lance aperçu avant impression seuls les entetes de colonnes du tableau apparaissent.

J' ai essayé de le faire sur mon fichier - je ne veux pas imprimer la colonne A mais je n'obtiens que la cellule B5 "active". Vraiment je suis nul de chez nul !!!

Bonnes fêtes du 1er mai à tous

Je mets ici le fichier modifié si vous pouviez me dire où je me suis planté. Merci
 

Pièces jointes

  • IMPRESSION V2.zip
    10.9 KB · Affichages: 43
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Impression tableau et code VBA

Re,

Tes valeurs en colonne B sont-elles numériques ou alphabétiques ?
Est-il possible qu'il y ait des cellules vides en B pour une "Semaine" donnée ?

Je prends la colonne B parce que je suppose que c'est la première que tu rempliras... A confirmer

A+

Edition : Sans réponse, on part du principe que les valeurs en B sont numériques ET qu'il n'y pas de vide...
 

Pièces jointes

  • Zone Impression.zip
    11.6 KB · Affichages: 63
  • Zone Impression.zip
    11.6 KB · Affichages: 68
  • Zone Impression.zip
    11.6 KB · Affichages: 72
Dernière édition:

moustic54

XLDnaute Occasionnel
Re : Impression tableau et code VBA

Ton bouton fonctionne super, JCGL c'est exactement çà que je veux savoir faire.

- Peux - tu m'expliquer comment faire pour pouvoir à mon tour le reproduire sur mon tableau ?


- Pour répondre à ta question, la 1ere colonne (B) contient des données alphanumérique (liste deroulante) et aucun vide.

- Numerique ou alphanumerique, quels changements doit-on faire dans le code ?

- Si je demande dans la mise en page les lignes à repeter en haut, le bouton ne fonctionne plus.
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Impression tableau et code VBA

Re,

Si tes données en B sont alphanumériques, modifie la Zone d'impression par :

Code:
=DECALER(Feuil1!$B:$T;;;NB.SI(Feuil1!$B$5:$B$5000;"<>"&"")+4)
par Nom / Définir



Ce qui reviens à demander d'imprimer les colonnes de B à T mais pour le nombre de lignes différentes de VIDE dans la colonne B (+4 parce que ta première cellule en B commence à la ligne 5)

A+

Edition : Suite à

- Si je demande dans la mise en page les lignes à repeter en haut, le bouton ne fonctionne plus.

Quelle ligne souhaites-tu répéter ?
 
Dernière édition:

moustic54

XLDnaute Occasionnel
Re : Impression tableau et code VBA

Re JCGL,

J'aurai voulu repeter les entetes de colonnes (ligne 5)

Merci pour tes explications.

Sans vouloir abuser de ton temps, j'avais vu que ce code permettait d'obtenir une info lorsque le bouton était survolé par la souris mais erreur que je le reprends j'ai une erreur sur ("monshape"). Sais-tu pourquoi ?

Private Sub Bouton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If X < 10 Or X > Bouton1.Width - 10 Or Y < 10 Or Y > Bouton1.Height - 10 Then
ActiveSheet.Shapes("monshape").Visible = False
Else
ActiveSheet.Shapes("monshape").Visible = True
End If
End Sub
 

JCGL

XLDnaute Barbatruc
Re : Impression tableau et code VBA

Re,

Rajoute dans le code la Feuil1 :

Code:
Option Explicit

Private Sub CommandButton1_Click()
Application.Dialogs(xlDialogPrint).Show
ActiveSheet.PageSetup.PrintTitleRows = "$5:$5"
End Sub
Pour ta deuxième question remplace "mon shape" par le non exact de ta forme (Image1 ou Rectangle1 : pour connaitre le nom exact, clique sur la forme et tu auras son nom dans la zone de nom (au dessus du A de la colonne A)

A+
 

moustic54

XLDnaute Occasionnel
Re : Impression tableau et code VBA

Pour ta deuxième question remplace "mon shape" par le non exact de ta forme (Image1 ou Rectangle1 : pour connaitre le nom exact, clique sur la forme et tu auras son nom dans la zone de nom (au dessus du A de la colonne A)

A+

Bonsoir à tous,

Rien n'y fait ..... pourtant j'ai bien créé ma zone de texte qui devrait apparaitre lorsque j'approche la souris et j'ai bien repris son nom et modifié le code comme tu me l'as conseillé JCGL mais nada !! au contraire çà bloque le bouton impression

JCGL, tu m'as appris les codes pour zone d'impression de tableau en alpha + numérique, quel serait le code s'il y avait des lignes vides à l'intérieur du tableau, simplement pour info.
 

JCGL

XLDnaute Barbatruc
Re : Impression tableau et code VBA

Bonjour à tous,

Pour le survol du shape, je pense que le fichier serait le bienvenu
Pour les vides, il faudrait rajouter un =NB.VIDE(A4:A14) soit

=DECALER(Feuil1!$B:$T;;;NB.SI(Feuil1!$B$5:$B$5000;"<>"&"")+4+NB.VIDE($B$50:$B$100))


A+
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Impression tableau et code VBA

Bonjour moustic
Salut JC

une autre façon de déterminer ta zone d'impression :

Code:
    Range("B1:T" & [B1].CurrentRegion.Rows.Count).Name = "zone_d_impression"
    ActiveSheet.PageSetup.PrintArea = "zone_d_impression"

A++ JC
A+ à tous
 

moustic54

XLDnaute Occasionnel
Re : Impression tableau et code VBA

Bonjour à tous

Voici le fichier, JCGL, avec l'option bouton survol qui pose probleme.
Merci bhbh je vais tester ta formule magique

Mon frigo est vide (un tel vide que l'on entend l'eccho) et je ne peux pas rester longtemps connecté il y a les courses à faire !!! Mais des que possible je me reconnecte.

Bonne journée à tous
 

Pièces jointes

  • IMPRESSION V3.zip
    13.3 KB · Affichages: 62

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…