Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Renommer et afficher des feuilles cachées

C

Cantalou15

Guest
Bonsoir à tous,

Dans le document joint, je voudrai faire une macro qui me renomme les feuilles cachées (CE (X)) avec les Noms de parcelles de la feuille "Les Parcelles" et qui affiche uniquement les feuilles renommées.

Cette macro fonctionnera t'elle si le classeur est protégé?

Merci et à demain !
 

Pièces jointes

  • Epandage2a.zip
    35.6 KB · Affichages: 65
  • Epandage2a.zip
    35.6 KB · Affichages: 65
  • Epandage2a.zip
    35.6 KB · Affichages: 61
R

Robert

Guest
Bonsoir Cantalou, bonsoir le forum,

En pièce jointe ton fichier avec une macro qui devrait te convenir.

À plus,

Robert
 

Pièces jointes

  • Epandage2b.zip
    44.2 KB · Affichages: 89
C

Cantalou15

Guest
Merci Robert de travailler si tard sur mon projet!

J'apprécie tout particulièrement le code bien commenté car, même si je ne comprend pas encore bien les notions de variables, de constantes et de niveau de projet, je trouve ça très didactique!

Merci encore, je vais tester ta Macro tout de suite dans le document que j'ai fait évoluer depuis hier ...
 
C

Cantalou15

Guest
ça marche super MAIS (!) je voudrai un petit plus... il faudrait que le Nom de la parcelle soit rentré automatiquement dans la Cellule C10 de la Feuille qui a été renommée justement avec le Nom de cette parcelle.

J'ai essayer de faire

Range("C10").Select 'Sélectionne la Cellule C10
ActiveCell.FormulaR1C1 = ActiveSheet.Name 'Insère le nom de la feuille comme valeur pour la Cellule C10

Mais je ne sais pas où le mettre dans le code de Robert car au mieux c'est dans la cellule C10 de la feuille "Les Parcelles" que la valeur est rentrée !...

Merci votre réponse !
 
C

Cantalou15

Guest
J'ai trouvé !

Je ne sait pas si c'est élégant mais ça marche !

Option Explicit 'oblige à déclarer toutes les variables
Public Const nf As String = "Les Parcelles" 'déclare la constante nf (niveau projet)
Public f As Worksheet 'déclare la variable f (niveau projet)

Public Sub Renom()
Sheets("Les Parcelles").Range("A12:C65536").Sort Key1:=Range("A12"), Order1:=xlAscending
Application.ScreenUpdating = False 'empèche le raffraichissement de l'affichage pendant la Macro
Dim nb As Byte 'déclare la variable nb (niveau procédure)
Dim x As Byte 'déclare la variable x (niveau procédure)
Set f = Sheets(nf) 'définit la variable f (Onglet "Les Parcelles")
nb = f.Range("A65536").End(xlUp).Row - 11 'définit la variable nb (nombre de parcelles)
ActiveWorkbook.Unprotect 'déprotège le classeur
For x = 2 To nb + 1 'boucle sur le nombre de parcelles
On Error GoTo fin 'évite le bug si il y a plus de parcelle que d'onglets "C E (x)"
'affiche l'onglet "C E (x)"
Sheets("C E (" & x & ")").Visible = True
Sheets("C E (" & x & ")").Select
Range("C10").Select 'Sélectionne la Cellule C10
Sheets("C E (" & x & ")").Name = f.Cells(10 + x, 1).Value 'attribut le nom de la parcelle à l'onglet "C E (x)"
ActiveCell.FormulaR1C1 = ActiveSheet.Name 'Insère le nom de la feuille comme valeur pour la Cellule C10

Next x 'prochaine parcelle de la boucle
fin:
ActiveWorkbook.Protect Structure:=True, Windows:=False 'protège le classeur
Application.ScreenUpdating = True 'raffraichit l'affichage
Sheets("Les Parcelles").Select 'sélectionne la feuille "les Parcelles"
Range("A12").Select 'sélectionne la cellule A12
End Sub

@plus !
 
C

Cantalou15

Guest
Merci d'avance Robert, mais ça marche comme ça ... Par contre je me demande comment on pourrait faire pour que la macro affiche une nouvelle feuille en cas de nouveau clic sur le bouton si une nouvelle parcelle a été ajoutée dans la liste dans un deuxième temps ...

@plus
 
R

Robert

Guest
Re Cantalou, bonjour le forum,

Ton fichier modifé en pièce jointe (un peu en retard, j'espère que tu reviendras sur ce fil...)

Tu peux maintenant rajouter des parcelles et les afficher en recliquant sur le bouton Afficher.

À plus,

Robert
 

Pièces jointes

  • Epandage2c.zip
    45.2 KB · Affichages: 79

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…