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

copie d'onglets: la macro bug à 35 onglets

gilles72

XLDnaute Junior
Bonjour à tous,
XP excel 2003 ou 2007
sur un fichier, une macro est censée recopier une feuille modèle, autant de fois qu'on a besoin de semaines
En clair si un projet se déroule sur 50 semaines, le modèle est recopié et renommé selon les semaines ciblées.
PB: elle bug au dela de 35 feuilles
kekun saurait-y m'aider la dessus?
Je ne peux joindre le fichier, car même compréssé, il fait 94ko
je joins juste la macro ci dessous

Merci
gilles

Sub CopieToutesSem()
'S 'il n'y a pas l'informatique sur chantier:
'Créer les onglets de toutes les semaines (le RA)
'copie l'onglet "semaine en cours" en autant de semaines que dure le chantier
'et affecte les Noms d'affaire et N° de semaine

Sheets("dates").Select
Range("H6:H1750").Select 'Activate
Dim Name As String
Dim Mycell As Range, Mysheet As Worksheet, MyName$
For Each Mycell In Selection 'liste de noms
MyName = Mycell.Value
If MyName <> "" Then
On Error Resume Next
Set Mysheet = Sheets(MyName)
On Error GoTo 0
If Mysheet Is Nothing Then Sheets("Semaine en cours").Copy Before:=Sheets("Semaine en cours")

'depuis semaine en cours (2) je recopie les heures sur semaine en cours
Sheets("Semaine en cours (2)").Select
Range("M10:M76").Select
Selection.Copy
Sheets("Semaine en cours").Select 'je recopie sur semaine en cours
Range("K10").Select
ActiveSheet.Paste Link:=True 'copie avec liaison
Application.CutCopyMode = False
'je renomme l'onglet
Sheets("Semaine en cours (2)").Select
Sheets("Semaine en cours (2)").Name = MyName
Application.ScreenUpdating = False
[K3].Value = "Semaine"
[M3] = ActiveSheet.Name
Range("M3").Select
Selection.Copy
Range("BE2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("O3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-1]C[42],basedates,2,FALSE)"
Range("O2").Select

' ActiveSheet.PROTECT DrawingObjects:=True, Contents:=True, Scenarios:=True
' ActiveSheet.EnableSelection = xlUnlockedCells
End If
Next Mycell


'renomme l'onglet Semaine en cours et le met à la fin pour que
'l'utilisateur ne l'utilise pas

Sheets("Semaine en cours").Select
'
Range("K10:K76").Select
Range("K76").Activate
Selection.ClearContents
Sheets("Paramètres").Select
Sheets("Semaine en cours").Name = "vierge"
End Sub
 

gilles72

XLDnaute Junior
Re : copie d'onglets: la macro bug à 35 onglets

Re bonjour
désolé de vous avoir sollicité pour rien:
j'ai traouvé le bug, qui ne venait pas de la macro, mais d'un tableau qui me permet de faire une recherchev sur les dates
merci encore
par contre, concernant ta suggestion
Nota : présenter un code en l'encadrant par des balises (#) c'est plus clair
je ne saisis pas...concrètement
à+
gilles
 

job75

XLDnaute Barbatruc
Re : copie d'onglets: la macro bug à 35 onglets

par contre, concernant ta suggestion
Nota : présenter un code en l'encadrant par des balises (#) c'est plus clair
je ne saisis pas...concrètement

En rédigeant le message, sélectionner tout le code et cliquer en haut sur la balise #, on obtient :

Code:
Sub CopieToutesSem()
'S 'il n'y a pas l'informatique sur chantier:
'Créer les onglets de toutes les semaines (le RA)
'copie l'onglet "semaine en cours" en autant de semaines que dure le chantier
'et affecte les Noms d'affaire et N° de semaine

Sheets("dates").Select
Range("H6:H1750").Select 'Activate
Dim Name As String
Dim Mycell As Range, Mysheet As Worksheet, MyName$
For Each Mycell In Selection 'liste de noms
MyName = Mycell.Value
If MyName <> "" Then
On Error Resume Next
Set Mysheet = Sheets(MyName)
On Error GoTo 0
If Mysheet Is Nothing Then Sheets("Semaine en cours").Copy Before:=Sheets("Semaine en cours")

'depuis semaine en cours (2) je recopie les heures sur semaine en cours
Sheets("Semaine en cours (2)").Select
Range("M10:M76").Select
Selection.Copy
Sheets("Semaine en cours").Select 'je recopie sur semaine en cours
Range("K10").Select
ActiveSheet.Paste Link:=True 'copie avec liaison
Application.CutCopyMode = False
'je renomme l'onglet
Sheets("Semaine en cours (2)").Select
Sheets("Semaine en cours (2)").Name = MyName
Application.ScreenUpdating = False
[K3].Value = "Semaine"
[M3] = ActiveSheet.Name
Range("M3").Select
Selection.Copy
Range("BE2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("O3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-1]C[42],basedates,2,FALSE)"
Range("O2").Select

' ActiveSheet.PROTECT DrawingObjects:=True, Contents:=True, Scenarios:=True
' ActiveSheet.EnableSelection = xlUnlockedCells
End If
Next Mycell


'renomme l'onglet Semaine en cours et le met à la fin pour que
'l'utilisateur ne l'utilise pas

Sheets("Semaine en cours").Select
'
Range("K10:K76").Select
Range("K76").Activate
Selection.ClearContents
Sheets("Paramètres").Select
Sheets("Semaine en cours").Name = "vierge"
End Sub

A+
 

MJ13

XLDnaute Barbatruc
Re : copie d'onglets: la macro bug à 35 onglets

Bonjour Gilles, Job

Attention sur la création de planning annuel par semaine (environ 55 onglets), j'ai déjà eu le problème du bug vers la 30 ème recopie.

Pour l'éviter, on peut soit fermer Excel et recommencer ou ajouter un compteur et sauvegarder le fichier au bourt de 30 recopies.
 

HB35

XLDnaute Nouveau
Re : copie d'onglets: la macro bug à 35 onglets


Bonjour,
Je cherche à créer un planning annuel avec un onglet par semaine. Existe t'il des modèles tout fait ?
Merci
 

YANN-56

XLDnaute Barbatruc
Re : copie d'onglets: la macro bug à 35 onglets

Bonsoir à tous,

Juste joint un Classeur amusant que j'avais envie de faire, au cas où il puisse servir.
(M'en fiche! ................. Je me suis amusé un certain temps...)

Amicalement,

Yann
 

Pièces jointes

  • ACTIVITE.xls
    36 KB · Affichages: 75
  • ACTIVITE.xls
    36 KB · Affichages: 61
  • ACTIVITE.xls
    36 KB · Affichages: 62

Discussions similaires

Réponses
10
Affichages
444
Réponses
0
Affichages
606
Réponses
3
Affichages
837
Réponses
9
Affichages
828
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…