XL 2010 Prob avec sélection d'un onglet

sebbbbb

XLDnaute Impliqué
Bonjour

j'ai mis bcp de temps de faire le script ci-dessous qui fonctionne très bien.

---

Option Explicit
Dim I, II, III, IV, V
Dim Ws As Worksheet
Dim WsBL As Worksheet
Dim WsPLBL As Worksheet
Dim WsCM As Worksheet
Dim WsRe As Worksheet
Dim WsSWBS As Object
Sub NEWblmobile()
I = 0: II = 0: III = 0: IV = 0: V = 0
Application.ScreenUpdating = False
With ActiveWorkbook
.Unprotect ("BOURDAN1309")
For Each Ws In .Worksheets
With Ws
Select Case True
Case .Name Like "BL Mobile*"
I = I + 1
Case .Name Like "PL Mobile*"
II = II + 1
Case .Name Like "Man Mobile*"
III = III + 1
Case .Name Like "Receipt*"
IV = IV + 1
Case .Name Like "SWB service*"
V = V + 1
End Select
End With
Next Ws
.Sheets("BL Mobile1").Copy after:=.Sheets(.Sheets.Count)
Set WsBL = ActiveSheet
With WsBL
.Name = "BL Mobile" & 1 + I
End With
.Sheets("PL Mobile1").Copy after:=.Sheets(.Sheets.Count)
Set WsPLBL = ActiveSheet
With WsPLBL
.Name = "PL Mobile" & 1 + II
.UsedRange.Replace What:="BL Mobile1", Replacement:=WsBL.Name, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
.Sheets("Man Mobile1").Copy after:=.Sheets(.Sheets.Count)
Set WsCM = ActiveSheet
With WsCM
.Name = "Man Mobile" & 1 + III
.Unprotect
.UsedRange.Replace What:="BL Mobile1", Replacement:=WsBL.Name, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Protect
End With
.Sheets("Receipt1").Copy after:=.Sheets(.Sheets.Count)
Set WsRe = ActiveSheet
With WsRe
.Name = "Receipt" & 1 + IV
.UsedRange.Replace What:="BL Mobile1", Replacement:=WsBL.Name, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
.Sheets("SWB service1").Copy after:=.Sheets(.Sheets.Count)
Set WsSWBS = ActiveSheet
With WsSWBS
.Name = "SWB service" & 1 + V
.UsedRange.Replace What:="BL Mobile1", Replacement:=WsBL.Name, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
End With
Application.ScreenUpdating = True

ActiveWorkbook.Protect "BOURDAN1309"
Set WsBL = ActiveSheet
MsgBox "NE PAS OUBLIER D'INDIQUER LE NUMERO DU NOUVEAU BL"

End Sub

--

Le but étant que lorsque je clique sur un bouton, 6 onglets sont dédoublés avec le num qui se modifie dans le nom de l'onglet

ainsi si je clique sur le bouton situé dans l'onglet BL Mobile1, un onglet se créé automatiquement qui prend le nom BL Mobile2 et ainsi de suite. 5 onglets s'ajoutent en même tps pour que chacun se termine par 2 puis ensuite 3 et ainsi de suite.
les 5 onglets d'origine s'appellent :
- BL Mobile1
- PL Mobile1
- Man Mobile1
- Receipt1
- SWB service1

mon problème est que je voudrais qu'à chaque fois que je clique sur le bouton, et une fois que le jeu d'onglet a été ajouté, la page sélectionnée (donc visible à l'écran corresponde au dernier onglet BL Mobile? - le point d'interrogation correspondant au dernier numéro

actuellement le dernier onglet affiché correspond à SWB service? - le point d'interrogation correspondant au dernier numéro

j'espère être assez clair dans mes explications

merci par avance
seb
 
Solution
Re bonjour,
Voici donc ton fichier avec quelques formules utilisant la fonction INDIRECT (voir onglet PL Mobile1)
Une formule en CQ2 de l'onglet BL Mobile1 a été insérée. Ne pas supprimer. C'est cette formule qui permettra ensuite de réaliser les INDIRECT
Bonne chance pour les futures modifs.
Cordialement
@+ Lolote83

Lolote83

XLDnaute Barbatruc
Re bonjour,
Je viens de voir ton fichier et j'avoue ne plus rien comprendre.
je souhaite juste que lorsque je fais un clic, l'onglet actif (visible) soit le dernier affiché nommé BL MOBILE?
Y aura-til duplication de tous les onglets ? ou seulement sur BL Mobile1 qui sera dupliqué ?
Je crois qu'il faut plus d'explication ou donne un classeur fait à la mano de ce que tu souhaites au final.
@+ Lolote83
 

sebbbbb

XLDnaute Impliqué
Lolote
merci pour ton aide mais je dois mal m'exprimer.
peux tu t'appuyer sur le post 6 et le fichier joint ? Car tu travailles sur quelque chose qui fonctionne deja bien sur mon fichier. le seul prob (sur mon fichier) c'est que je n'arrive pas à avoir le bon onglet à l'affichage
merci par avance
 

sebbbbb

XLDnaute Impliqué
Lolote

merci encore pour ton aide.

Mon fichier du post 6 fonctionne très bien et le principe de duplication est exactement ce que je veux. donc inutile de travailler sur autre chose.

Le seul hic :
si tu cliques sur le bouton NEW, la duplication se passe très bien mais je voudrai que l'onglet actif donc celui sélectionné automatiquement et qu'on voit à l'écran soit le dernier onglet créé portant le nom BL MobileX (x étant le num 2 ou 3 ou 4, bref le dernier créé).

actuellement avec mon scrip l'onglet actif apres le clic (donc qu'on voit à l'écran s'appelle SWB serviceX (x étant le num 2 ou 3 ou 4, bref le derner créé).

j'espère que c'est maintenant plus clair :)

encore Merci
seb
 

sebbbbb

XLDnaute Impliqué
bien et pas bien :)

sur le principe c'est parfait
le hic c'est que les liens entre feuilles sont perdus

ainsi il y a des liens entre cellules (par ex entre PL Mobile1 et BL Mobile1), j'aimerai que sur les nouveaux jeux les liens soient gardés entre eux pour avoir par ex entre PL Mobile2 et BL Mobile2

je sais je suis chiant :cool:
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
La demande était une duplication d'onglets et je pense que le résultat attendu correspond à ta demande.
Est ce que ton code (qui lui aussi dupliquait les onglets) perdaient les liens ?
Je ne le répèterais jamais assez, mais une demande doit être claire, concise et un maximum d'explication amène une réponse dans ce sens.
Je sais, je suis chiant !!!!
Il y a bien une possibilité en utilisant la fonction INDIRECT mais cela nécessite de revoir toutes tes formules.

@+ Lolote83
 
Dernière édition:

sebbbbb

XLDnaute Impliqué
bonjour
je crois que mon 1er post donnait plutot bien le sens de ce que j'attendais, et mon fichier joint aussi mais je sais que c'est pas facile de se plonger dans quelque chose qui peut paraitre clair pour un autre

on m'a parlé de la fonction indirect mais je n'ai pas bien compris.
pourrais tu me faire juste un exemple pour une cellule dans mon fichier stp ?

merci Lolote
 

Discussions similaires