XL 2010 Problème avec un code vba

  • Initiateur de la discussion Initiateur de la discussion sebbbbb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sebbbbb

XLDnaute Impliqué
Bonjour

Gràce à l'aide de plusieurs d'entre vous j'ai constitué un petit fichier test qui me permet en cliquant sur un bouton de dupliquer un jeu de 4 onglets autant de fois que je clique sur le bouton. Evidemment les formules doivent également faire ref aux nouveaux onglets

Ce code fonctionne très bien sauf sur le premier onglet

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 SWB2 (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

Voici ci dessous le code et en pj le fichier

**
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
' 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

**
merci à vous
seb
 
Dernière modification par un modérateur:
je précise que ce fichier est un fichier test
mon fichier mere est trop lourd a uploader et comporte de nombreux fichiers cachés
j'ai l'impression que celà est important dans la constitution du code
merci à vous et bonne soirée
seb
 
Bonsoir le fil

=>sebbbbb
Ton fichier de test n'est pas suffisamment anonymisé
(comme je le disais dans ton autre fil)
Ci dessous des explications qui devraient mieux illustrer mon propos
(extrait de la charte)
1 - Conformité RGPD
Tout message ou fichier déposé sur ce site ne doit pas comporter de données à caractère personnel (DCP).
Il convient d’anonymiser toutes les données permettant d’identifier directement ou indirectement une personne.
XLD ne saurait être tenu responsable au cas où un visiteur du site posterait des données non conformes à la législation en vigueur.
Si vous détectez une non conformité, merci d'alerter le webmaster de ce site : webmaster@excel-downloads.com, nous supprimerons les données dans les plus brefs délais.
Il reste dans ton fichier des noms de société, des emails, adresse postale et numéro de tel.
Il suffirait juste de les remplacer par des
Nom1 Prénom1 Adresse1
toto.titi@domaine.com

NB: Je t'ai envoyé un MP par rapport à autre ton fil (mais tu sembles pas l'avoir vu)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
1 K
  • Question Question
Microsoft 365 îPb code VBA
Réponses
1
Affichages
594
Réponses
3
Affichages
863
Retour