> Tous les forums > Forum Bureautique
 VBA Copie d'une feuille masquée
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
matbarns
  Posté le 02/08/2019 @ 15:32 
Aller en bas de la page 
Petit astucien

Bonjour,

dans mon classeur, j'ai une feuille nommée "Base" qui est masquée. Quand je lance ma macro, je veux créer une copie de cette feuille, et la placer en dernière position dans ma liste de feuilles. J'ai écrit le code, cela fonctionne, sauf que ça modifie le nom de ma feuille "Base" !!! et je ne veux pas qu'il soit modifié car sinon ma macro ne fonctionne plus...

Est-ce quelqu'un comprend d'où vient ce problème ?

Merci

Sub AjoutCopieFeuille()

Dim NFeuille As String

Sheets("Base").Copy After:=Sheets(Sheets.Count)

'Taper le nom de la nouvelle feuille
NFeuille = InputBox("Entrez le nom de la nouvelle feuille")

'on nomme la feuille
Sheets(Sheets.Count).Name = NFeuille

Sheets(NFeuille).Visible = True

End Sub

Publicité
Debrief
 Posté le 03/08/2019 à 09:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Ça ressemble à un bug Excel car l'ajout de la feuille ne se fait pas après toutes les feuilles comme demandé dans le code mais après la dernière feuille non masquée. Donc l'idée est de démasquer la dernière feuille si elle est masquée, de procéder à la copie puis de re-masquer la feuille démasquée si nécessaire.

Sub AjoutCopieFeuille()

Dim NomFeuille As String
Dim Hidden As Integer

'Démasquage éventuel de la dernière feuille
Hidden = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Visible
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Visible = True

'Copie de la feuille Base
ThisWorkbook.Sheets("Base").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

'Taper le nom de la nouvelle feuille
NomFeuille = InputBox("Entrez le nom de la nouvelle feuille")

'On nomme la feuille et on la rend visible
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = NomFeuille
ThisWorkbook.Sheets(NomFeuille).Visible = True

'Masquage de l'ex-dernière feuille si précédemment masquée
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count - 1).Visible = Hidden

End Sub

D.

Edit: et je suppose que si la dernière feuille qu'on doit rendre visible est protégée il faut préalablement la déprotéger pour la rendre visible, puis faire la manip inverse à la fin.

Edit 2: j'ai changé de Boolean en Integer le type de la variable qui garde la visibilité de la feuille compte tenu des possibilités XlSheetVisibility Enum



Modifié par Debrief le 03/08/2019 12:11
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
copie d'une colonnes vers une autre feuille
Effectuer une copie dans Excel des données d'une feuille vers une autre
Afficher une feuille masquée mais avec mot de passe
Macro copie feuille
Un lien hypertexte qui renvoi sur feuille masquée
Copie onglets excel dans une seule feuille
copie de colonne vers une autre feuille avec condi
copie feuille excel
copie toutes les lignes si valeur en a = x
copie de cellules
Plus de sujets relatifs à VBA Copie d''une feuille masquée
 > Tous les forums > Forum Bureautique