Bonjour,
Il ma été transmit un code qui dans un premier temps je pensais qu’il ne
fonctionner pas et après vérification je me suis aperçu que j’avais une
feuille masquer dans mon fichier ce qui empêcher le bon fonctionnement pour
la recopie des trois dernière feuille.
Ma question est la suivante :
Ce code fonctionne pour les copies des trois dernières feuilles de mon
classeur sur un total de quatre feuilles, qu’est ce qui faut changer dans ce
code ci-dessous pour faire les copies que des deux dernières feuille sur un
total de trois feuilles.
Salutation.
Sub Nouveau_Cadencier()
ActiveSheet.Unprotect
'
' Nouveau Cadencier Macro
' Macro enregistrée le 18/10/2006 par Sylvain
' Pour une copie de trois feuille
Fl = ThisWorkbook.Sheets.Count
If Fl >= 28 Then Fin = 5 Else Fin = 4
Sheets(Fl).Select
For x = Fl - 2 To Fl
Sheets(x).Copy After:=ActiveSheet
If x <> Fl - 2 Then
AncNom = Sheets(2).Name
Arempl = "'" & Sheets(Fl - 2).Name & "'"
If Fl = 4 Then Arempl = Sheets(Fl - 2).Name
Ajout = Right(ActiveSheet.Name, Fin)
NouNom = "'" & AncNom & Ajout & "'"
Application.DisplayAlerts = False
Cells.Replace What:=Arempl, Replacement:=NouNom, LookAt:=xlPart,
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False,
ReplaceFormat:=False
Application.DisplayAlerts = True
ActiveSheet.Protect
End If
Next
ActiveSheet.Protect
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel
Bonjour. Mets : For x = Fl - 1 To Fl au lieu de : For x = Fl - 2 To Fl Cordialement. Daniel "Tibert" a écrit dans le message de news:
Bonjour, Il ma été transmit un code qui dans un premier temps je pensais qu'il ne fonctionner pas et après vérification je me suis aperçu que j'avais une feuille masquer dans mon fichier ce qui empêcher le bon fonctionnement pour la recopie des trois dernière feuille. Ma question est la suivante : Ce code fonctionne pour les copies des trois dernières feuilles de mon classeur sur un total de quatre feuilles, qu'est ce qui faut changer dans ce code ci-dessous pour faire les copies que des deux dernières feuille sur un total de trois feuilles. Salutation. Sub Nouveau_Cadencier() ActiveSheet.Unprotect ' ' Nouveau Cadencier Macro ' Macro enregistrée le 18/10/2006 par Sylvain ' Pour une copie de trois feuille
Fl = ThisWorkbook.Sheets.Count If Fl >= 28 Then Fin = 5 Else Fin = 4 Sheets(Fl).Select For x = Fl - 2 To Fl Sheets(x).Copy After:¬tiveSheet If x <> Fl - 2 Then AncNom = Sheets(2).Name Arempl = "'" & Sheets(Fl - 2).Name & "'" If Fl = 4 Then Arempl = Sheets(Fl - 2).Name Ajout = Right(ActiveSheet.Name, Fin) NouNom = "'" & AncNom & Ajout & "'" Application.DisplayAlerts = False Cells.Replace What:=Arempl, Replacement:=NouNom, LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:úlse, SearchFormat:úlse, ReplaceFormat:úlse Application.DisplayAlerts = True ActiveSheet.Protect End If Next ActiveSheet.Protect End Sub
Bonjour.
Mets :
For x = Fl - 1 To Fl
au lieu de :
For x = Fl - 2 To Fl
Cordialement.
Daniel
"Tibert" <Tibert@discussions.microsoft.com> a écrit dans le message de news:
E505A4D4-C0D8-4742-850A-560093F4D8A7@microsoft.com...
Bonjour,
Il ma été transmit un code qui dans un premier temps je pensais qu'il ne
fonctionner pas et après vérification je me suis aperçu que j'avais une
feuille masquer dans mon fichier ce qui empêcher le bon fonctionnement
pour
la recopie des trois dernière feuille.
Ma question est la suivante :
Ce code fonctionne pour les copies des trois dernières feuilles de mon
classeur sur un total de quatre feuilles, qu'est ce qui faut changer dans
ce
code ci-dessous pour faire les copies que des deux dernières feuille sur
un
total de trois feuilles.
Salutation.
Sub Nouveau_Cadencier()
ActiveSheet.Unprotect
'
' Nouveau Cadencier Macro
' Macro enregistrée le 18/10/2006 par Sylvain
' Pour une copie de trois feuille
Fl = ThisWorkbook.Sheets.Count
If Fl >= 28 Then Fin = 5 Else Fin = 4
Sheets(Fl).Select
For x = Fl - 2 To Fl
Sheets(x).Copy After:¬tiveSheet
If x <> Fl - 2 Then
AncNom = Sheets(2).Name
Arempl = "'" & Sheets(Fl - 2).Name & "'"
If Fl = 4 Then Arempl = Sheets(Fl - 2).Name
Ajout = Right(ActiveSheet.Name, Fin)
NouNom = "'" & AncNom & Ajout & "'"
Application.DisplayAlerts = False
Cells.Replace What:=Arempl, Replacement:=NouNom, LookAt:=xlPart,
SearchOrder:=xlByColumns, MatchCase:úlse, SearchFormat:úlse,
ReplaceFormat:úlse
Application.DisplayAlerts = True
ActiveSheet.Protect
End If
Next
ActiveSheet.Protect
End Sub
Bonjour. Mets : For x = Fl - 1 To Fl au lieu de : For x = Fl - 2 To Fl Cordialement. Daniel "Tibert" a écrit dans le message de news:
Bonjour, Il ma été transmit un code qui dans un premier temps je pensais qu'il ne fonctionner pas et après vérification je me suis aperçu que j'avais une feuille masquer dans mon fichier ce qui empêcher le bon fonctionnement pour la recopie des trois dernière feuille. Ma question est la suivante : Ce code fonctionne pour les copies des trois dernières feuilles de mon classeur sur un total de quatre feuilles, qu'est ce qui faut changer dans ce code ci-dessous pour faire les copies que des deux dernières feuille sur un total de trois feuilles. Salutation. Sub Nouveau_Cadencier() ActiveSheet.Unprotect ' ' Nouveau Cadencier Macro ' Macro enregistrée le 18/10/2006 par Sylvain ' Pour une copie de trois feuille
Fl = ThisWorkbook.Sheets.Count If Fl >= 28 Then Fin = 5 Else Fin = 4 Sheets(Fl).Select For x = Fl - 2 To Fl Sheets(x).Copy After:¬tiveSheet If x <> Fl - 2 Then AncNom = Sheets(2).Name Arempl = "'" & Sheets(Fl - 2).Name & "'" If Fl = 4 Then Arempl = Sheets(Fl - 2).Name Ajout = Right(ActiveSheet.Name, Fin) NouNom = "'" & AncNom & Ajout & "'" Application.DisplayAlerts = False Cells.Replace What:=Arempl, Replacement:=NouNom, LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:úlse, SearchFormat:úlse, ReplaceFormat:úlse Application.DisplayAlerts = True ActiveSheet.Protect End If Next ActiveSheet.Protect End Sub