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 !
RE..
Normal............
Ceci est demandé et si cellule bleu " donc supérieur a 1 donc bleu " impression automatique
Donc
La macro fait exactement ce qui lui est demandée
Soit==> impression si supérieur à 1
Si tu souhaites aussi imprimer si il y a 1 dans les cellules, remplace cette ligne
If Cells(j, i) > 1 Then
Par
If Cells(j, i) > 0 Then
Bonjour,
Une proposition avec ce code dans la feuille "LUNDI"
VB:
Sub imprimer()
Dim i&, j&
For j = 5 To 428 Step 47
For i = 9 To 33 Step 8
If Cells(j, i) > 1 Then
Range(Cells(j - 3, i - 7), Cells(j + 43, i)).PrintPreview 'supprimer cette ligne après essai
' Range(Cells(j - 3, i - 7), Cells(j + 43, i)).PrintOut 'Valider cette ligne après essai
End If
Next
Next
End Sub
Après avoir appuyer sur le bouton " imprimer " en haut de la feuille " lundi " une fenêtre s'ouvre ( voir photo )
non seulement il n'y a qu'une feuille a imprimer et je dois appuyer en haut a gauche pour imprimer ...
merci
Après avoir appuyer sur le bouton " imprimer " en haut de la feuille " lundi " une fenêtre s'ouvre ( voir photo )
non seulement il n'y a qu'une feuille a imprimer et je dois appuyer en haut a gauche pour imprimer ...
merci
Re..
Les instructions que j'avais mis dans le code, ici en rouge n'ont pas été suivies
'------------
Range(Cells(j - 3, i - 7), Cells(j + 43, i)).PrintPreview 'supprimer cette ligne après essai
' Range(Cells(j - 3, i - 7), Cells(j + 43, i)).PrintOut 'Valider cette ligne après essai
'------------- Ce classeur en Pjimprime directement les feuilles dont les cellules en bleu sont plus grand que 1, sans passer par la visualisation avant impression.
oups 🙁 désolé ...
je ne pensai pas qu'il y avait quelque chose a faire dans le code vba
tout fonctionne 👍
c'est super ...merci 😉
j'ai une autre question ...
Dans le fichier ci-joint j'ai une remise a zéro des cellules par un bouton
le problème est que quand je protège la feuille celui ci ne fonctionne plus
serait il possible qu'il fonctionne feuille protégé ?
et si c'est possible je suis preneur 🙂
en tout cas je te remercie pour l'aide apporté 👍
Re..
Nouveau classeur , nouvelle question = nouveau post
Mais bon......
C'est faisable....Mais
Il n'y a aucun code de suppression de données dans ce classeur
Ne sachant quoi supprimer, je ne m'y aventure pas....
En fait il n'y a rien a supprimer je pense qu'il y a juste a rajouté quelque chose dans la vba du bouton pour que celui ci fonctionne même si la feuille est protégé
ci-joint le fichier source
En fait il n'y a rien a supprimer je pense qu'il y a juste a rajouté quelque chose dans la vba du bouton pour que celui ci fonctionne même si la feuille est protégé
ci-joint le fichier source
RE
Pour autoriser le VBA, ici la macro attribué au bouton mise à jour sans se soucier de la protection.
Mettre ceci dans le ThisWorkbook
VB:
Private Sub Workbook_Open()
Feuil2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
End Sub
Et pour la remise à zéro la macro pourrait ressembler à ceci (A placer dans le module de la feuille "PRINTEMPS")
Il faudra néanmoins refaire les cellules "Livraison" ou il y un "retour à la ligne" inutile
Code:
Sub REMISE_A_ZERO()
Dim C As Range
With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
For Each C In Range("c11:s104")
If C = "ADULTES" Or C = "MATERNELLES" Or C = "ÉLÉMENTAIRES" Or C = "LIVRAISON" Or C = "HEURE" Then
C.Offset(, 1) = ""
End If
Next
With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub
RE
Pour autoriser le VBA, ici la macro attribué au bouton mise à jour sans se soucier de la protection.
Mettre ceci dans le ThisWorkbook
VB:
Private Sub Workbook_Open()
Feuil2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
End Sub
Et pour la remise à zéro la macro pourrait ressembler à ceci (A placer dans le module de la feuille "PRINTEMPS")
Il faudra néanmoins refaire les cellules "Livraison" ou il y un "retour à la ligne" inutile
Code:
Sub REMISE_A_ZERO()
Dim C As Range
With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
For Each C In Range("c11:s104")
If C = "ADULTES" Or C = "MATERNELLES" Or C = "ÉLÉMENTAIRES" Or C = "LIVRAISON" Or C = "HEURE" Then
C.Offset(, 1) = ""
End If
Next
With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub
C'est vraiment du bon boulot 👍
Il y a juste un petit soucis ...
Quand la feuille est protégé il faudrait que je puisse avoir quand même accès au menu déroulant ( pain bagnat ) a la date du ( lundi ) et toutes les cellules ( Adultes, Maternelles ,Élémentaires, livraisons et heure )
C'est vraiment du bon boulot 👍
Il y a juste un petit soucis ...
Quand la feuille est protégé il faudrait que je puisse avoir quand même accès au menu déroulant ( pain bagnat ) a la date du ( lundi ) et toutes les cellules ( Adultes, Maternelles ,Élémentaires, livraisons et heure )
Ce matin j'ai voulu adapter ton code au fichier réel car tu avais un fichier test ...
c'est a dire que les feuilles ( juillet, aout et toussaint n'était pas dans le fichier
la feuille printemps fonctionne très bien
mais j'ai une erreur 400 qui apparait quand je protège les autres feuilles et que j'appuie sur remise a zéro
merci pour ton aide
Ce matin j'ai voulu adapter ton code au fichier réel car tu avais un fichier test ...
c'est a dire que les feuilles ( juillet, aout et toussaint n'était pas dans le fichier
la feuille printemps fonctionne très bien
mais j'ai une erreur 400 qui apparait quand je protège les autres feuilles et que j'appuie sur remise a zéro
merci pour ton aide
Dans le classeur qui est présenté, il n'y a rien dans les feuilles "JUILLET, AOUT, TOUSSAINT"
Dans le classeur précèdent, il n'y avait qu'une seule feuille de protégée et autorisé par VBA directement à l'ouverture du classeur par
Private Sub Workbook_Open()
Feuil2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
End Sub
Feuil2 étant le "codeName" de la feuille"PRINTEMPS "
S'il y en a d'autres, il faut les ajouter
S'il y en a beaucoup on peut faire une boucle et exclure celles qui n'en font pas partie comme par exemple
VB:
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.Name <> "EFFECTIF JOUR" And Sh.Name <> "LISTE" Then ' ici les noms de feuille à exclure
Sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
End If
Next
End Sub
Recommandation:
Il serait sage d'avoir une feuillemodèle complète avec les cellules verrouillées ou non, les formats, les listes de validation..etc......
De supprimer les colonnes fusionnées inutiles
Ainsi on pourrait copier cette feuille dans les mois concernés
C'est toi qui voit...
En pj: Le classeur modifié avec les feuilles concernées protégées, mais sans ces recommandations
- 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