XL 2010 intégrer plusieurs fois le même onglet (avec nom leg différent) a un classeur par macro bouton

sebbbbb

XLDnaute Impliqué
Bonsoir tout le monde

j'ai un problème à vous soumettre qui me semble insurmontable :). Mais avec vous je sais que rien n'est impossible;).

Voila j'ai une macro qui marche avec un bouton. Lorsque je clique sur le bouton, plusieurs onglets qui sont cachés apparaissent dans mon classeur. jusque là tout marche parfaitement

Est il possible que lorsque je clique a nouveau sur le même bouton les mêmes onglets s'ajoutent en plus des autres avec un nom d'onglets légèrement différent.

Voici mon code actuel :

Option Explicit
Sub blcmmobile()
'
' blcmmobile Macro
'
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect ("")
Sheets("BL1").Visible = True
Sheets("Packing List BL1").Visible = True
Sheets("CM1").Visible = True
Sheets("BL1 ").Select
Range("BM3:BN3").Select
ActiveWorkbook.Protect ("")
Application.ScreenUpdating = True
End Sub

Ainsi lorsque je clique sur mon bouton j'ai 3 onglets qui apparaissent avec le nom et l'ordre suivant :
- BL1
- Packing List BL1
- CM1

peut on modifier le script de façon à ce que lorsque je clique à nouveau sur le même bouton apparaissent à la suite des onglets ci-dessus 3 autres appelés :
- BL2
- Packing List BL2
- CM2

et ainsi de suite :
- BL3
- Packing List BL3
- CM3

Un grand merci par avance pour votre aide

seb
 

sebbbbb

XLDnaute Impliqué
Bonsoir Youky

c'est bien ce que je pensais
j'ai essayé le même scrip mais celà ne fonctionne pas plus pour le SWB2

je te joins le fichier pour que tu te rendes compte

merci
seb
 

Pièces jointes

  • TESTFICHIER (1).xlsm
    79.7 KB · Affichages: 7

youky(BJ)

XLDnaute Barbatruc
il nous fallait copier tous les onglets avant de changer les formules
Voici le code qui fonctionne
Bruno
VB:
Sub NEWblmobile()
Dim n, k, tx, onglet, deb, init, nb
'retifié cette ligne
init = "REI" ' les lettre du dernier onglet sans le chiffre
nb = 4 'nombre d'onglet ? copier
ActiveWorkbook.Unprotect ""
For k = Sheets.Count To 1 Step -1
If Left(Sheets(k).Name, 3) = init Then 'mis 3 au lieu de 2
deb = k
n = Val(Replace(Sheets(k).Name, init, ""))
tx = Replace(Sheets(k).Name, n, n + 1)
Exit For
End If
Next
For k = deb - nb + 1 To deb
Sheets(k).Copy after:=Sheets(Sheets.Count)
tx = Replace(Sheets(k).Name, n, n + 1)
ActiveSheet.Name = tx
 'If Left(tx, 3) <> "SWB" Then
    ActiveSheet.Unprotect
Next
On Error Resume Next
For k = Sheets.Count - 3 To Sheets.Count 'deb - nb + 1 To deb
Sheets(k).Select
'ici c'est pour modifier les formules
       For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
           c.Formula = Replace(c.Formula, "SWB" & n, "SWB" & n + 1)
           c.Formula = Replace(c.Formula, "PCK" & n, "PCK" & n + 1)
       Next
 'End If
Next
ActiveWorkbook.Protect ""
End Sub
 

sebbbbb

XLDnaute Impliqué
Bonsoir Youky
merci bcp
celà fonctionne bien sur le fichier test mais cela ne fonctionne plus sur mon fichier mère

pourtant même nom d'onglets. C'est a s'arracher les cheveux

qu'entends tu par :
il nous fallait copier tous les onglets avant de changer les formules

merci encore
seb
 

sebbbbb

XLDnaute Impliqué
En fait c'est étrange, j'ai l'impression que le script ne se lance pas complètement

si j'ajoute un onglet vierge à la suite de mes 4 onglets et que je lance la macro tout se déroule bien

Si je n'ajoute pas d'onglet vierge, et que je lance la macro, les onglets se dédoublent mais les liens ne se font pas

je n'y comprends rien :confused:

as tu une idée du bug ?
 

sebbbbb

XLDnaute Impliqué
Bonsoir Bruno

je reviens a nouveau sur ce post car il y a vraiment quelque chose qui m'échappe et je pense pas m être bien exprimé précédemment.

Je reprends un fichier test que tu m'avais aidé à développer (voir PJ)

Celui ci fonctionne très bien après duplication (clic sur le bouton NEW)

En effet si je prends l'onglet CMA2 (après duplication) les liens ont bien fonctionnés car si je prends pour exemple la cell D15 elle fait bien ref à une autre de l'onglet SWB2. Idem si je prends la cell D26 du l'onglet REI2, elle fait ref à une cellule de l'onglet SWB2.

Le seul hic, correspond aux liens de l'onglet SWB
2 (et autres onglets dupliqués commençant par SWB). En effet, dans cet onglet, si je prends pour exemple la cellule C30, celle ci fait ref à la cellule B42 l'onglet PCK1, alors que je voudrais que ce soit l'onglet PCK2

J'espère que tu verras ce que je veux dire

merci par avance
seb
 

Pièces jointes

  • TESTFICHIER (1).xlsm
    79.7 KB · Affichages: 3

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou