Impression automatique et masquage colonnes

Fermé
Elryk Messages postés 15 Date d'inscription mardi 28 mai 2019 Statut Membre Dernière intervention 10 septembre 2021 - 28 mai 2019 à 13:21
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 1 juin 2019 à 09:15
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
A voir également:

4 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
28 mai 2019 à 14:51
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 mardi 28 mai 2019 Statut Membre Dernière intervention 10 septembre 2021
Modifié le 29 mai 2019 à 13:05
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 107 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 25 mars 2024 6
28 mai 2019 à 15:23
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 mardi 28 mai 2019 Statut Membre Dernière intervention 10 septembre 2021
Modifié le 29 mai 2019 à 13:04
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 mardi 28 mai 2019 Statut Membre Dernière intervention 10 septembre 2021
1 juin 2019 à 03:57
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 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
1 juin 2019 à 09:15
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