VBA Impression colonnes sélectionnées

Bonjour les Excel-Praticiens!

Je suis à la recherche d'un bout de code vba pouvant me permettre d'imprimer une partie d'un tableau. Je m'explique:

J'ai un tableau qui couvre Range ("A4:AN33") et ca correspond à une 40aine de colonnes. Mon souhait c'est de pouvoir :

1-- Visualiser un aperçu du tableau qui sera imprimé.

2-- imprimer un tableau qui ne comporterait que les colonnes préalablement sélectionnées ( avec des "x")

3--Effacer les "x" de la ligne 4 après l'impression.

Et idéalement, une esquisse de commentaire. (pour mieux comprendre. Suis (encore) en apprentissage )

Je joins un fichier.

Je vous remercie d'avance.

27print.xlsx (37.15 Ko)

Bonjour

Un essai pour commencer

Re Bonjour Banzaï!

Merci pour le code ( et surtout pour les commentaires qui m'aident bcp!!)...

Mais (pour l'instant) quand je l'exécute, rien ne se passe. Je veux dire:

  • -Pas de sélection des colonnes préselectionnées
  • -Pas de masquage des autres colonnes
  • -Pas d'aperçu à l'écran
  • -Pas d'envoi vers l'imprimante.

Une petite précision:

L'idée, c'est d'avoir ce tableau sur une seule page afin de pouvoir facilement collecter les données sur les joueurs pendant le match.

Et comme ça va aller vite, pour des raisons pratiques (i.e suivre le match, coacher et collecter les données), je me suis dit que c'est mieux de n'avoir que le nom des (16) joueurs sélectionnés sur cette seule page.

Du coup, j'ai utilisé l'enregistreur pour faire/tenter une mise en page: ==>Application de marges étroites et ==>Réduction à 55%.

Le code rajouté est délimité par les astérisques. (j'ai pas encore ajouté mes com').

Bonjour

Samoterell a écrit :

rien ne se passe

La macro à été développé sous environnement XL 2010 espérons que ce n'est pas un problème de compatibilité, sinon je ne sais pas quoi faire

Une version avec ta macro

A tester

Si la macro ne s"éxéute pas

peut etre eest ce un probleme de sécurité

Pour ma part, je dois choisir un certificat pour activer les macros sous 2010.

dans l'éditeur de vba,

outils => signature électronique

(Salut SylChat au passage!)

J'ai lancé la macro (sans rien modifier/toucher), ca bug. J'ai un message ==> "Erreur d'exécution 438; Propriété ou méthode non gérée par cet objet.". Et la ligne surlignée en jaune est

Application.PrintCommunication = False

A ce niveau j'ai une question (j'avoue ne pas encore cherché la réponse par l'intermédiaire de notre Google) Est ce que ce bug est dû au fait que je n'ai pas d'imprimante connectée?

Lorsque je mets en commentaire la dite ligne de code, la 2eme et dernière ligne jaune est celle du rétablissement de la communication avec l'imprimante. (

Application.PrintCommunication = True

).

Et quand je mets finalement ces DEUX lignes en commentaire, il n'y a rien qui se passe (pour l'instant! )

Je vais en attendant tester la solution de SylChat voir... Je reviens vers vous après!

Merci.

Bonjour

Dans le code j'ai bien noté que c'est une instruction pour Excel 2007 et plus

  ' Suspend la communication avec l’imprimante pendant la configuration des propriétés PageSetup
  ' Accélère la macro ( à mon avis )
  ' Spécifique 2007 et plus
  Application.PrintCommunication = False

Je ne connais pas l'environnement Mac et je ne sais dans quelle mesure les instructions sont compatibles

Ce que je ne comprends pas c'est que la macro à l'air d'être interprétée mais sans résultat apparent

Parce que suite aux réglages de l'imprimante il n'y a qu'un PrintPreview

  End With
  ' Rétablit la communication avec l’imprimante
  Application.PrintCommunication = True
  ActiveSheet.PrintPreview                                  ' Aperçu avant impression
  Columns.Hidden = False                                    ' Réaffiche toutes les colonnes

Essayes en direct cette commande pour savoir si elle passe

Il y'a du nouveau!

J'ai réussi à faire un test sous Excel 2010 installé vite fait sur windows7, le tout sur le Mac grâce à Parallels Desktop. Bref.

  • -Le code s'arrête /bug au moment de communiquer avec l'imprimante. J'en déduis que c'est à cause de l'absence d'imprimante.
  • -La mise en commentaire de cette ligne de communication permet au code de tourner:
==> Les colonnes croitées sont bien celles qui sont "imprimées". ****OK

==> L'aperçu est fonctionnel ****OK

X==> Avec une sélection de 16 joueurs, d'après l'aperçu, ces colonnes sont sur 2 pages. ( Une réduction peut être ?!?)

Est ce normal que malgré .Orientation = xlLandscape le tableau apparaisse en portrait?

C'est pas pour faire le difficile mais nous avons oublier d'effacer les "X" de la ligne 4. (les croix qui m'ont permis de sélectionner les colonnes.)

PS: Toujours pas encore essayer la solution de SylChat!

Ne te préoccupe pas de ma réponse,

si désormais ta macro tourne c'est que cela ne vients pas d'un probleme de sécurité

Sourire! Ok. mais on sait jamais. J'ai bien l'intention de la faire tourner sous Excel2011_Mac aussi.

Ne ce serait ce que pour des raisons pratiques.

Bonjour

Samoterell a écrit :

Le code s'arrête /bug au moment de communiquer avec l'imprimante. J'en déduis que c'est à cause de l'absence d'imprimante.

Ou une incompatibilité entre l'émulation W7 sur Mac

Mais tu peux supprimer ces lignes cela ne gène pas le déroulement de la macro

Samoterell a écrit :

==> Les colonnes croitées sont bien celles qui sont "imprimées". ****OK

Heu non j'ai codé à l'envers

Modifies la ligne suivante

  For I = 4 To Cells(5, Columns.Count).End(xlToLeft).Column
    If Cells(4, I) = "" Then Columns(I).Hidden = True      ' Si = "" on masque la colonne
  Next I
Samoterell a écrit :

X==> Avec une sélection de 16 joueurs, d'après l'aperçu, ces colonnes sont sur 2 pages. ( Une réduction peut être ?!?)

Est ce normal que malgré .Orientation = xlLandscape le tableau apparaisse en portrait?

Dans le code on précise bien une page en largeur et une page en hauteur et en mode portrait

    
   .Orientation = xlLandscape                    ' Mode paysage
    ' .
    ' .
    ' .
    .Zoom = False
   .FitToPagesWide = 1     ' 1 page en largeur
    .FitToPagesTall = 1     ' 1 page en hauteur

Enregistres une macro et vérifies les paramètres

Samoterell a écrit :

mais nous avons oublier d'effacer les "X" de la ligne 4

Rajoutes la ligne surlignée

  Columns.Hidden = False                                    ' Réaffiche toutes les colonnes
  Rows(4).ClearContents
End Sub

Ah okay. Tout est ok. Je veux dire le mode paysage (et par conséquent le débordement sur une 2ème page).

Tout venait du codage effectivement.

If Cells(4, I) = "" Then Columns(I).Hidden = True  

Un GRAND MERCI. Vive le Forum!!

Tiens, entre hier et aujourd'hui, j'ai appris disons "quelques alphabets" du VBA. A quand la maîtrise courante ?!!?. Le chemin est encore long!!

Rechercher des sujets similaires à "vba impression colonnes selectionnees"