Impression automatique et masquage colonnes

Elryk Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Bonjour,

N'ayant pas trouvé de solution je me tourne vers le forum,

Je joint un fichier d'exemple pour plus de détails aux explications ci dessous:
(ce n'est jamais très clair !)

Chaque jours j'imprime plusieurs onglets de la façon suivante:
Liste de produit +Jour 1 (date du jour) et quantités

ce qui correspond au cellules B1:E9 que je sélectionne pour impression ( imprimer la sélection)

J'ai une macro qui masque la journée de la veille
du coup le l'en demain je me retrouve avec les colonnes B1:H9 à imprimer.

Je dois donc sélectionner les feuilles avec contrôle, mettre ma sélection en surbrillance et imprimer la sélection.

Comment automatiqer cette selection qui chaque jours ne peux rester au même emplacement car des colonnes sont masqués ?

J'ai raisonné dans ce sens :

Si cellule (xx) = "date voulue"
alors sélection cellules correspondante
impression sélection

A voir selon vos idées !

https://www.cjoint.com/c/IECkYgPJwmj

Merci d'avance pour votre aide.


Très bonne journée


Configuration: Windows / Chrome 74.0.3729.169

4 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour

Tu peux par macro faire masquer toutes les colonnes qui ne correspondent pas à la date du jour
Sub masquer()
'dernière colonne remplie en ligne 2 de la feuille
col = ActiveSheet.Rows(2).Find("*", , , , xlByRows, xlPrevious).Column
'boucle sur les colonnes de 3eme à derniere par pas de 3
For n = 3 To col Step 3
'si la date dans la colonne <> date du jour on masque ma colonne et les 2 suivantes
If Cells(1, n) <> Date Then
Columns(n).Hidden = True
Columns(n + 1).Hidden = True
Columns(n + 2).Hidden = True
End If
Next
End Sub

Cdlmnt
Via
0
Elryk Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Via,

Merci pour ta réponse,

effectivement ça fonctionne!

En revanche sur mon 2ème fichier, je n'ai pas réussi à intégrer le code pour 2 raisons:

1- il est structuré légèrement différent.
2- je dois afficher cette fois la date du lendemain


Voici la structure de mon fichier:



Les dates sont également présente dans la première ligne sur toutes les colonnes (problèmes avec cellules fusionnés !)

Grâce à toi j'y suis presque !
0
juer31 Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   6
 
Si tu t'ajoute une macro d'impression qui masque les date supérieur aussi ça t'éviterais de faire une sélection et permettrais d'imprimer ton ficher sans problème
0
Elryk Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Juer31,

La réponse de Via est exactement la même que toi, je n'ai plus qu'a en conclure que ça sera la meilleur solution,

Comme je le disais en réponse à Via, il me reste quelques détails à apporter, avec votre aide bien sûr !

Merci !
0
Elryk Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Je fais un petit UP ,

sur le message suivant, j'essaye d'adapter le code à 2 colonnes mais sans succès !

Bonjour Via,

Merci pour ta réponse,

effectivement ça fonctionne!

En revanche sur mon 2ème fichier, je n'ai pas réussi à intégrer le code pour 2 raisons:

1- il est structuré légèrement différent.
2- je dois afficher cette fois la date du lendemain


Voici la structure de mon fichier:




Les dates sont également présente dans la première ligne sur toutes les colonnes (problèmes avec cellules fusionnés !)

J'ai tenté de modifié les lignes

For n = 3 To col Step 3 (en 2 to col Step2)
'si la date dans la colonne <> date du jour on masque ma colonne et les 2 suivantes
If Cells(1, n) <> Date Then (pas trouvé pour placé "today+1")
Columns(n).Hidden = True
Columns(n + 1).Hidden = True
Columns(n + 2).Hidden = True


Merci encore.
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Elryk

For n = 2 to col step 2 devrait être bon
Date + 1 doit donner la date du lendemain

Avec 2 colonnes par date tu n'as plus besoin de Columns(n + 2).Hidden = True

Les cellules fusionnées sont toujours un problème pour les formules et les macros , il faut les éviter à tout prix et les remplacer avantageusement par une mise en forme; dans ton cas tu défusionnes puis sélectionnes les cellules C2:D2 puis clic droit Format de cellules - Alignement - Horizontal - Centré sur plusieurs colonnes

Cdlmnt
Via
0