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

Copie une feuille avec son code et la renommer dans le meme classeur

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 !

chaelie2015

XLDnaute Accro
Bonjour FORUM
je cherche un code qui me permet de créer une copie de l'onglet (activé) avec le code de cette feuille et le renommer (cellule bu8) dans le mème classeur.
Merci
 
bonjour chaelie2015 bonjour le forum
VB:
Sub ajoutonglet()
Dim Nom As String
     On Error GoTo GestionErreur     'début du code

Nom = ActiveSheet.Range("bu8")
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Nom

GestionErreur:
 
End Sub
cordialement
galougalou
 
Bonjour galougalou
merci pour la réponse c'est nickel.
je souhaite encore désactiver dans la feuille copie ce code ci dessous ( qui etait dans le feuille d’origine)

VB:
Private Sub Worksheet_Deactivate()
Me.Visible = xlSheetVeryHidden
End Sub


comment faire pour que la copie reste toujours visible
merci
 
re
bonjour
ben en fait tu peux faire un test name
Private Sub Worksheet_Deactivate()
if me.name<>[BU8].value then Me.Visible = xlSheetVeryHidden
End Sub

comme ça l'events n'agira pas pas sur la copie

tu peux faire ton test sur le nom de la feuille originale aussi
 
Bonjour patricktoulon
Merci pour la réponse.
je m'explique dans la feuille originale j'ai des codes parmi ces code j'ai ce code ci-dessous

VB:
Private Sub Worksheet_Deactivate()
Me.Visible = xlSheetVeryHidden
End Sub

je souhaite désactiver plutôt le supprimer dans la feuille copie.
comment faire pour le supprimer par le code de GALOUGALOU?
Code:
Sub ajoutonglet()
Dim Nom As String
     On Error GoTo GestionErreur     'début du code

Nom = ActiveSheet.Range("bu8")
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Nom

GestionErreur:
 
End Sub
A+
 
Bonjour chaelie2015, GALOUGALOU, patrcktoulon,

Si l'on ne veut pas copier le VBA de la feuille source copier uniquement les cellules :
VB:
Sub ajoutonglet()
Dim F As Worksheet
Set F = ActiveSheet
With Sheets.Add(After:=Sheets(Sheets.Count))
    On Error Resume Next
    .Name = F.[BU8]
    F.Cells.Copy .[A1] 'copier-coller
    .UsedRange = F.UsedRange.Value 'facultatif, si l'on veut supprimer les formules
End With
End Sub
A+
 
re chaelie 2015 bonjour job75/patricktoulon, bonsoir le forum

capturer dans une variable le nom de la feuille active et le nom de la feuille source,effectuer un test et si celui ci est vrai (correspond au nom de la feuille source) alors la macro est appliquée.
VB:
Public ws1 As String
Public ws2 As String


Private Sub Worksheet_Activate()
ws1 = Sheets("Feuil1").Name
ws2 = ActiveSheet.Name
End Sub

Private Sub Worksheet_Deactivate()
If ws1 = ws2 Then Sheets("Feuil1").Visible = xlSheetVeryHidden
End Sub
cordialement galougalou
 
Bonjour JOB
Dans la feuille source j'ai ces codes
VB:
Option Explicit
'Plus rapide job
Private Sub ToggleButton1_Click() ' le 1er code'
Protect "charlie 2005 Anvers", UserInterfaceOnly:=True

If ToggleButton1 Then
    [BB20:BB154].AutoFilter 1, "<>M" 'filtre automatique
    ToggleButton1.Caption = "Réinitialiser  l'attachement"
Else
    If FilterMode Then ShowAllData
    ToggleButton1.Caption = "Afficher l'attachement"
End If

End Sub


Private Sub Worksheet_Deactivate()' le 2eme code'
Me.Visible = xlSheetVeryHidden
End Sub
je souhaite supprimer seulement le 2eme code lorse que je fais une copie de la feuille source.
merci
 
Avec la macro du post #7 Il peut y avoir une alerte quand on enregistre le fichier : image trop grande.

Il faut alors compléter la macro pour alléger la mémoire :
VB:
Sub ajoutonglet()
Dim F As Worksheet
Set F = ActiveSheet
On Error Resume Next
With Sheets.Add(After:=Sheets(Sheets.Count))
    .Name = F.[BU8]
    F.Cells.Copy .[A1] 'copier-coller
    .UsedRange = F.UsedRange.Value 'facultatif, si l'on veut supprimer les formules
    With .[A1].MergeArea 'si la cellule est fusionnée
        .Copy .Cells 'allège la mémoire
        .Merge
        .Select
    End With
End With
End Sub
 
Bonjour tout le monde
si vous permettez😵
le code du post # 2 de galougalou
VB:
Sub ajoutonglet()
Dim Nom As String
     On Error GoTo GestionErreur     'début du code

Nom = ActiveSheet.Range("bu8")
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Nom

GestionErreur:

End Sub
il me convient mais je souhaite le modifier, en ajoutant un code qui supprime le code 2 de la feuille copiée.(mettre la feuille copie visible)
le code 2
Private Sub Worksheet_Deactivate()' le 2eme code'
Me.Visible = xlSheetVeryHidden
End Sub

merci😳
 
Dernière édition:
Ce que je vous propose au fils 8 ne le supprime pas mais le désactive le résultat sera bien là il sera inopérant sur es feuilles différentes de la feuille source je ne suis pas devant mon ordi je vous fais un complément d'information ce soir si aucune solution n'a été trouvée cordialement Galou Galou
 
- 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

Discussions similaires

Réponses
4
Affichages
105
Réponses
3
Affichages
138
Réponses
3
Affichages
280
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…