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

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
 

chaelie2015

XLDnaute Accro
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
 

chaelie2015

XLDnaute Accro
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+
 

job75

XLDnaute Barbatruc
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+
 

GALOUGALOU

XLDnaute Accro
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
 

chaelie2015

XLDnaute Accro
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+
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
 

job75

XLDnaute Barbatruc
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
 

chaelie2015

XLDnaute Accro
Bonjour tout le monde
si vous permettezo_O
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:oops:
 
Dernière édition:

GALOUGALOU

XLDnaute Accro
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
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 871
dernier inscrit
Maïmanko