3 Boutons pour mise en forme (masquer ligne vide ...+2)
bonjour
après avoir fait le tour de plusieurs post, forum ... et n'ayant pas trouvé de réponse a mes question (google ferait bien d'engager des femmes de ménages pour y trier tout l'bordel mdr), je me décide donc a poster sur votre forum pour m'aider à terminer le fichier que je souhaite créer.
je préviens d'avance que mes connaissances dans excel se limitent aux bases simples.
je vous joins si dessous le lien du tableau sur une mise en forme simple du rendu final.
Le fichier est un récapitulatif pour les salaire de mes collègues et moi même.
il comprendra au total 5 feuilles pour les différentes personnes concernées.
je souhaite donc procéder sur les 5 feuilles différentes aux mêmes manipulations indépendemment:
3 boutons:
- mise en forme
- enregistrer sous format pdf
- restaurer les lignes masquées.
--Bouton de mise en forme--
En cliquant dessus je souhaiterai masquer les lignes non-utilisés sur trois tableaux différents:
- détail vacation (A1:H21):
les colonnes F et G contiennent déjà des formules.
je partirai donc sur le remplissage des cellules A3:A20 pour identifier les lignes vides.
Les cellules vides de celui ci masqueront automatiquement la ligne concernée.
- Détail des frais supplémentaire (A23:H27)
Même chose pour les ligne 24:27.
pour info les cellules de ces lignes seront fusionnées A:F.
Si l'identification fonctionne juste sur A sinon en A:F pour masquer la/les ligne(s) vides.
- Détail Congès Payés(A29:H30)
celui ci, une différence, si la cellule E30 est vide elle masquerait les lignes 29:30.
--Bouton Enregistrer sous pdf--
Il permettra d'ouvrir directement la fenetre d'enregistrement sous format pdf de la feuilles actuel.
--bouton pour restaurer les lignes masquées--
ben comme son nom l'indique.
ces manipulations seront indépendantes à chaques feuilles.
je pense donc que le nom des macros affectés devra changer a chacun des boutons?
feuille 1: salaires.xlsx!Bouton1_Clic ( 2 et 3)
feuille 2 (4 à 6) ... etc?
j'espère ne pas avoir été trop long, mais je preférai m'exprimer clairement, car en tant que novice, il est très compliqué de traduire le language expert.
En vous remerciant.
j'ai essayé de comprendre un peu les macro via d'autres trouvé sur le forum
j'ai essayé d'adapter 2 macros trouvé pour tester et m'entrainer
la première ne m'affiche pas d'erreur mais ne fonctionne pas
quand a la deuxieme je n'ai que des erreurs, écrite tel quel ca commence par une erreur de compilation, utilisation incorrect de la propiété et le "range" est surligné
Sub Masquer_ligne() ' masque les lignes ou la valeur dans les cellules de la colonne A sont =0
Dim cellule As Range
Select Case ("A3:A20")
Case Selection
If Selection.Value = "0" Then Selection.EntireRow.Hidden = True
End Select
End Sub
Sub Masquer_lig() ' masque les lignes ou la valeur dans les cellules de la colonne A sont =0
Range ("A3:A20")
For Each cellule In Selection
If cellule.Value = "0" Then cellule.EntireRow.Hidden = True
Next cellule
End Sub
Bonjour
1ère macro
Select Case ("A3:A20")Veut dire que tu veux tester la chaine de caractère "A3:A20" ce qui ne ..... fait rien
Et Selection indique la zone sélectionnée (à partir de 1 cellule jusqu'à la feuille entière)
2ème macro
Range ("A3:A20")C'est incomplet : Il manque ce que tu veux faire avec ce "Range"
Exemples
Range("A3:A20").Select
Range("A3:A20").Value=10
Range("A3:A20").ClearContents
' etc...La 2ème macro pourrait être
Sub Masquer_lig() ' masque les lignes ou la valeur dans les cellules de la colonne A sont =0
Dim Cellule As Range
For Each Cellule In Range("A3:A20")
If Cellule.Value = 0 Then Cellule.EntireRow.Hidden = True
Next Cellule
End Subbonjour banzai
merci pour ton aide,
ta formule marche nikel, et ca ne me fait pas ca instantané, ca me fait un animation ligne par ligne lol.
je l'ai adapté ainsi pour mon tableau ce qui fonctionne.
Sub Masquer_ligne() ' masque les lignes ou la valeur dans les cellules de la colonne A sont =0
Dim Cellule As Range
For Each Cellule In Range("A3:A20", "A24:A27")
If Cellule.Value = 0 Then Cellule.EntireRow.Hidden = True
Next Cellule
End Subcependant j'ai également les ligne 29 et 30 via E29 et E30 a masquer mais lorsque je le marque comme suit, ca met une erreur
For Each Cellule In Range ("A3:A20", "A24:A27", "E29:E30")une petite question:
' masque les lignes ou la valeur dans les cellules de la colonne A sont =0Est ce une obligation de le marquer, cela a til un effet sur la macro ou aucun ce n'est que le descriptif de l'action de cette macro comme un memo?
Re,
j'ai testé ceci, j'ai du séparer A3:A20 de A24:A27 car cela me masquait également la ligne 22 et ca fonctionne
Sub Masquer_ligne() ' masque les lignes ou la valeur dans les cellules de la colonne A ou E sont =0
Dim Cellule As Range
For Each Cellule In Range("A3:A20")
If Cellule.Value = 0 Then Cellule.EntireRow.Hidden = True
Next Cellule
For Each Cellule In Range("A24:A27")
If Cellule.Value = 0 Then Cellule.EntireRow.Hidden = True
Next Cellule
For Each Cellule In Range("E29:E30")
If Cellule.Value = 0 Then Cellule.EntireRow.Hidden = True
Next Cellule
End Subet cela fonctionne.
il ne me reste donc plus que les deux autres bouton a faire
- Enregistre la feuille sous pdf (ouvrir la fenetre d'enregistrement en pdf)
- réafficher les lignes masquer.
Bonjour
Pour masquer tes lignes et pour éviter
jimbo27800 a écrit :ca me fait un animation ligne par ligne lol.
Sub Masquer_ligne() ' masque les lignes ou la valeur dans les cellules de la colonne A ou E sont =0
Dim Cellule As Range
Application.ScreenUpdating = False
For Each Cellule In Range("A3:A20,A24:A27,E29:E30")
If Cellule.Value = 0 Then Cellule.EntireRow.Hidden = True
Next Cellule
End SubPour afficher toutes les lignes
Sub AfficheLignes()
Application.ScreenUpdating = False
Rows.Hidden = False
End SubPour
jimbo27800 a écrit :-Enregistre la feuille sous pdf (ouvrir la fenetre d'enregistrement en pdf)
Comme tu es en 2007 je pense qu'il y a des instructions (que je ne connais pas) pour enregistrer directement sous Pdf
re bonsai
merci de ton aide, j'essai ceci de suite
ca fonctionne niquel,
j'avais testé d'écrire moi même la formule ce qui donnait ce qui suis mais me faisait la meme animation.
mais avec tes formules, ca ne le fait plus.
Sub Afficher_ligne() ' Afficher les lignes masquées
Dim Cellule As Range
For Each Cellule In Range("A3:A30")
If Cellule.EntireRow.Hidden = True Then Cellule.EntireRow.Hidden = False
Next Cellule
End SubPour ce qui est du dernier bouton de pdf, je ne m'y étais pas encore trop penché dessus, je vais continuer de fouiner.
Enfin, a chaque ouverture de mon tableau, il m'est demandé d'activer les macros pourquoi?
je l'ai enregistré sous excel prenant en charge les macros.
faut il protéger le tableau d'une certaine facon pour que ceci soit définitivement actif sans demande permanente?
a savoir que ce fichier sera le support de base, il sera renommé pour chaque édition mensuel,
de plus ce fichier sera partagé avec un collègue qui me remplace occasionnellement, il ne pratique excel que d'une facon simple et sans complexité. si j'amais je lui envoie ce fichier et qu'on lui demande d'activer les macro, il sera en flip mdr.
donc esti il possible que ceci n'apparraise plus et que les macro soient automatiquement activée?
encore merci de ton aide
Bonjour
Il est possible (comme avec XL 2003) de régler le niveau de sécurité des macros à faible (ce que je déconseille- j'aime bien être au courant)
Comment le faire avec 2007 je ne sais pas
Un spécialiste Es 2007 ne manquera pas de te l'indiquer
re par curiosité, pourquoi déconseillé?
Bonjour
Quand tu sais qu'une macro est présente, tu peux décider si tu veux l'activer
Dans le cas où le provenance peut-être suspecte, je n'aimerais pas qu'une macro puisse être exécutée sans que j'en sois averti
C'est mon opinion, je ne sais pas si j'empêcherai un effet indésirable d'une macro, car bien que j'ai le message, j'accepte souvent
sinon j'avais lu y a belle lurette qu'une macro "pouvait cacher des virus, cela est possible d'un fichier dont on ne connait pas la provenance", est ce vrai?
si on connait la provenance ou qu'on l'édit soi meme il n'y a aucun risque?
encore merci de ton aide, je mettrai ce topic en résolu une fois la macro du pdf trouvé pour partager l'info.
au plaisir
Bonjour
Beaucoup de choses sont possibles avec des macros
Et il y aura toujours des imbéciles (pour être poli)