OVH Cloud OVH Cloud

Excel Copy Sheet

7 réponses
Avatar
Tibert
Bonjour ;
Un besoin d’aide pour Excel, voilà j’ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d’accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois autres
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c’est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2), Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une nouvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j’ai fait une macro voir ci-dessous et sa bogue a la ligne marqué d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations

7 réponses

Avatar
chadamsco
mais explique comment vous aidé moi c adamse d'autre m'appelle genis
magicien je suis informatien avec 5cyber en cote d'ivoire je peus vous
aider ok .....
Tibert wrote:
Bonjour ;
Un besoin d'aide pour Excel, voilà j'ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d'accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois aut res
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c'est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2) , Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une no uvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j'ai fait une macro voir ci-dessous et sa bogue a la ligne marqu é d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations


Avatar
René Delcourt
Selon mon humble expérience...

Sub Nouveau_cadencier()
Fl = ThisWorkbook.Sheets.Count
For x = Fl To Fl - 2 Step -1
Sheets(x).Copy after:=Sheets(Fl)
Next
End Sub
--
René Delcourt



Bonjour ;
Un besoin d’aide pour Excel, voilà j’ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d’accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois autres
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c’est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2), Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une nouvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j’ai fait une macro voir ci-dessous et sa bogue a la ligne marqué d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations





Avatar
René Delcourt
Il vaut mieux alimenter le forum, ça peut servir à d'autres.
C'est du bricolage mais ça tourne...

Sub Nouveau_cadencier()
Fl = ThisWorkbook.Sheets.Count
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, 4)
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
End If
Next
End Sub
--
René Delcourt



Bonjour ;
Un besoin d’aide pour Excel, voilà j’ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d’accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois autres
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c’est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2), Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une nouvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j’ai fait une macro voir ci-dessous et sa bogue a la ligne marqué d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations





Avatar
René Delcourt
Attention!cela ne fonctionne plus à partir de la 10ème copie...
--
René Delcourt



Il vaut mieux alimenter le forum, ça peut servir à d'autres.
C'est du bricolage mais ça tourne...

Sub Nouveau_cadencier()
Fl = ThisWorkbook.Sheets.Count
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, 4)
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
End If
Next
End Sub
--
René Delcourt



Bonjour ;
Un besoin d’aide pour Excel, voilà j’ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d’accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois autres
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c’est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2), Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une nouvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j’ai fait une macro voir ci-dessous et sa bogue a la ligne marqué d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations







Avatar
René Delcourt
Voilà le code corrigé.
Ca m'étonnerais que tu aies plus de 100 copies (301 feuilles) :-)

Sub Nouveau_cadencier()
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
End If
Next
End Sub
--
René Delcourt



Attention!cela ne fonctionne plus à partir de la 10ème copie...
--
René Delcourt



Il vaut mieux alimenter le forum, ça peut servir à d'autres.
C'est du bricolage mais ça tourne...

Sub Nouveau_cadencier()
Fl = ThisWorkbook.Sheets.Count
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, 4)
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
End If
Next
End Sub
--
René Delcourt



Bonjour ;
Un besoin d’aide pour Excel, voilà j’ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d’accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois autres
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c’est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2), Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une nouvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j’ai fait une macro voir ci-dessous et sa bogue a la ligne marqué d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations









Avatar
Tibert
Salut ;
Sa fonctionne quand je fait un tableau rapide avec les trois feuilles en y
mettant quelques chiffres il reprend bien la page tarif de la copie pour ça
c’est ok.
Mais quand je l’utilise cette m^me macro avec mon tableau existant ils
copient bien les trois feuilles mais ne change pas les formules avec la page
tarif copier.
Et quand je le fait manuellement en utilisant (Ctrl ) en sélectionnant mes
feuilles pour copie il change bien les formules avec la page tarif copier.
Si tu vois d’où cela pourrait venir tu fais une suite, autrement je verrais
plus tard.
Merci beaucoup pour l’aide j’aurais quand même appris quelques choses.
Salutations



Voilà le code corrigé.
Ca m'étonnerais que tu aies plus de 100 copies (301 feuilles) :-)

Sub Nouveau_cadencier()
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
End If
Next
End Sub
--
René Delcourt



Attention!cela ne fonctionne plus à partir de la 10ème copie...
--
René Delcourt



Il vaut mieux alimenter le forum, ça peut servir à d'autres.
C'est du bricolage mais ça tourne...

Sub Nouveau_cadencier()
Fl = ThisWorkbook.Sheets.Count
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, 4)
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
End If
Next
End Sub
--
René Delcourt



Bonjour ;
Un besoin d’aide pour Excel, voilà j’ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d’accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois autres
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c’est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2), Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une nouvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j’ai fait une macro voir ci-dessous et sa bogue a la ligne marqué d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations











Avatar
Tibert
Bonjour,
le 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




Voilà le code corrigé.
Ca m'étonnerais que tu aies plus de 100 copies (301 feuilles) :-)

Sub Nouveau_cadencier()
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
End If
Next
End Sub
--
René Delcourt



Attention!cela ne fonctionne plus à partir de la 10ème copie...
--
René Delcourt



Il vaut mieux alimenter le forum, ça peut servir à d'autres.
C'est du bricolage mais ça tourne...

Sub Nouveau_cadencier()
Fl = ThisWorkbook.Sheets.Count
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, 4)
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
End If
Next
End Sub
--
René Delcourt



Bonjour ;
Un besoin d’aide pour Excel, voilà j’ai un tableau avec quatre feuilles
nommé comme suivant :
1. Page d’accueil
2. Tarif
3. Paris
4. Bordeaux
Je voudrais faire une macro de façon à pouvoir recopier les trois autres
feuilles ensemble pour ne pas altérer les formules de calcul entre ces trois
feuilles « Tarif, Paris, Bordeaux » en utilisant toujours c’est trois dernier
feuilles, après avoir fait la première copie « Tarif (2), Paris (2), Bordeaux
(2) » je voudrais que la macro utilise les copies (2) pour faire une nouvelle
copies (3) et ainsi de suite, les copies (3) pour faire copies (4) que la
macro reprennent toujours les trois dernières feuilles pour faire les
copies,j’ai fait une macro voir ci-dessous et sa bogue a la ligne marqué d'un
astérix vers la fin.

Sub Nouveau_cadencier()
'
' Nouveau_cadencier Macro
' Macro enregistrée le 17/10/2006 par Sylvain
'

'
Sheets(Array("Tarif", "Paris", "Bordeaux")).Select
Sheets("Bordeaux").Activate
* Sheets(Array("Tarif", "Paris", "Bordeaux")).Copy Before:=Sheets(5)
Sheets("Paris (2)").Select
End Sub


Salutations