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 Sub

bonjour 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 Sub

cependant 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 =0

Est 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 Sub

et 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 Sub

Pour afficher toutes les lignes

Sub AfficheLignes()
  Application.ScreenUpdating = False
  Rows.Hidden = False
End Sub

Pour

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 Sub

Pour 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)

Rechercher des sujets similaires à "boutons mise forme masquer ligne vide"