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

sebbbbb

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

youky(BJ)

XLDnaute Barbatruc
Bonsoir Seb
Pour + de facilité j'ai renommé qlq peu le nom de tes onglets (1) au lieu de 1
La macro fait d'elle même
Voici un fichier avec un onglet Accueil ou un bouton est dispo
Bruno
 

Fichiers joints

sebbbbb

XLDnaute Occasionnel
Magique. Bravo ! c'est excellent
d'où te viennent toutes ces connaissances en vba ?
merci encore, tu me bluffes
seb
 

sebbbbb

XLDnaute Occasionnel
Bonjour

j'ai testé la macro et vraiment elle est top. j'aurai juste une petite question

Imaginons que j'ai des liens entre les différentes feuilles par exemple entre Packing list 1 avec BL1 et idem entre CM1 et BL1, lorsque j'ajoute un nouveau jeu d'onglets, le lien entre Packing list 2 et BL1 reste, tout comme CM2 et BL1.

Est il possible que lorsque l'on ajoute un nouveau jeu de d'onglets, les liens changent pour que Packing list2 et CM2 soient liés a BL2 (au lieu de BL1)

merci par avance
seb
 

youky(BJ)

XLDnaute Barbatruc
Bonjour Seb et ChTi160,
Seb, ne serait-il pas indiscret de connaitre ses liens entre onglets
Peut être les mettre dans mon fichier exemple > class1.xlsm
Cela doit être possible mais sans savoir ou aller . . . .dur!dur!
Bruno
 

sebbbbb

XLDnaute Occasionnel
Merci Chti160
c'est parfait. un grand merci :)
je reprécise le 2e point :
Imaginons que dans l'onglet BL1 cellule a1 j'ai le commentaire "vendu"; dans la cellule A1 de l'onglet CM1 en cellule A1 j'ai la formule ='BL1'!A1 ; donc apparait le terme "vendu"

maintenant si j'ajoute les 3 nouveaux onglets par le bouton, dans la cellule A1 de l'onglet CM2 j'aurai également le terme "Vendu" car il y aura également la formule ='BL1'!A1

j'aimerai donc plutot que la cellule A1 de l'onglet CM2 ai un lien avec l'onglet BL2, donc la formule ='BL2'!A1

j'espère avoir été plus clair et que cela est faisable. merci a vous tous

seb
 

youky(BJ)

XLDnaute Barbatruc
Oups ! je vois le message mais le fichier est déjà fait, je le mets en attendant.
Pas de lien c'est la macro qui fait
Bruno
 

Fichiers joints

sebbbbb

XLDnaute Occasionnel
Bonjour Youky
merci beaucoup pour ton travail cependant je ne pense pas m' être bien exprimé car ce que je souhaiterai c'est que les formules changent d'elles mêmes.

ainsi si la formule dans la cellule A1 de l'onglet CM1 est égale à = 'BL1!A1"

apres clic je souhaiterai que dans la cellule A1 de l'onglet CM2 la formule devienne = 'BL2!A1" et ainsi de suite

dans la cellule A1 de l'onglet CM3 la formule devienne = 'BL3!A1"

pas facile à expliquer :)

seb
 

sebbbbb

XLDnaute Occasionnel
oui hélas car effectivement cela fonctionne pour l'exemple désigné mais j'aimerai que cela fonctionne egalement pour tous les eventuels liens que je pourrais intégrer dans le 1er jeu d'onglets
 

youky(BJ)

XLDnaute Barbatruc
Tout comme toi Jean Marie
Juste pour le fun avec class1.xlsm
Bruno
VB:
Sub blcmmobile()
Dim n
ActiveWorkbook.Unprotect ("")
If Sheets("BL(1)").Visible = True Then
Sheets("BL(1)").Copy After:=Sheets(Sheets.Count)
Sheets("Packing List BL(1)").Copy After:=Sheets(Sheets.Count)
n = Replace(Split(ActiveSheet.Name, "(")(1), ")", "")
ActiveSheet.UsedRange.Replace What:="(1)", Replacement:="(" & n & ")", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Sheets("CM(1)").Copy After:=Sheets(Sheets.Count)
ActiveSheet.UsedRange.Replace What:="(1)", Replacement:="(" & n & ")", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Else
Application.ScreenUpdating = False
Sheets("BL(1)").Visible = True
Sheets("Packing List BL(1)").Visible = True
Sheets("CM(1)").Visible = True
Sheets("BL(1)").Select
Range("BM3:BN3").Select
Application.ScreenUpdating = True
End If
ActiveWorkbook.Protect ("")
End Sub
 

sebbbbb

XLDnaute Occasionnel
Ca me semble pas mal du tout ! Bravo a vous
je fais les tests et vous revient
Mille merci pour votre aide collégiale
seb
 

sebbbbb

XLDnaute Occasionnel
Messieurs
merci encore infiniment pour votre aide
j'ai donc intégré le code a mon fichier
le hic c'est que mes onglet sont protégés. je sais habituellement déverouiller un onglet et le reverouiller apres le scrip mais la je bloque.
voici mon fichier en PJ
merci
seb
 

Fichiers joints

sebbbbb

XLDnaute Occasionnel
bonjour
je reviens vers vous concernant ce post
j'ai essayé de modifier ce post de façon a pouvoir doubler, tripler...un jeu de 6 onglets appelé :
- BL1
- Impr. BL1
- PL BL1
-CM1
- MR1
-FM1

Il faudrait je pense se baser cette formule (merci chti160) qui est parfaite pour un jeu de 3 onglets mais je bloque pour augmenter à 6 onglets. Pourriez vous me donner un petit coup de main svp ?

Option Explicit
Dim I, II, III
Dim Ws As Worksheet
Dim WsBL As Worksheet
Dim WsPLBL As Worksheet
Dim WsCM As Object
Sub NEWblmobile()
I = 0: II = 0: III = 0
Application.ScreenUpdating = False
With ActiveWorkbook
.Unprotect ("")
For Each Ws In .Worksheets
With Ws
Select Case True
Case .Name Like "Mobile BL*"
I = I + 1
Case .Name Like "Packing List BL*"
II = II + 1
Case .Name Like "Mobile CM*"
III = III + 1
End Select
End With
Next Ws
.Sheets("Mobile BL1").Copy after:=.Sheets(.Sheets.Count)
Set WsBL = ActiveSheet
With WsBL
.Name = "Mobile BL" & 1 + I
End With
.Sheets("Packing List BL1").Copy after:=.Sheets(.Sheets.Count)
Set WsPLBL = ActiveSheet
With WsPLBL
.Name = "Packing List BL" & 1 + II
.Unprotect
.UsedRange.Replace What:="Mobile BL1", Replacement:=WsBL.Name, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Protect
End With
.Sheets("Mobile CM1").Copy after:=.Sheets(.Sheets.Count)
Set WsCM = ActiveSheet
With WsCM
.Name = "Mobile CM" & 1 + III
.Unprotect
.UsedRange.Replace What:="Mobile BL1", Replacement:=WsBL.Name, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Protect
End With
End With
Application.ScreenUpdating = True
ActiveWorkbook.Protect ("")
End Sub



merci
seb
 

sebbbbb

XLDnaute Occasionnel
bonjour jean Marie
En fait le fichier fonctionne tellement bien que je souhaite l'adapter a d'autres qui eux comporte 6 onglets. mais je te confirme que l'autre fichier m'a vraiment dépanné, et je l'ai adapté plusieurs fois.
le hic est maintenant de l'adaptera des versions avec un nbr d'onglets supérieur
j'ai bien essayé d'ajouter des select case
je vais encore essayé de mon coté
merci
seb
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas