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

VBA : liaisons de CheckBox

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 !

dionys0s

XLDnaute Impliqué
Bonjour le forum !
Joyeuses fêtes à tout le monde !

J'ai beau chercher sur Internet, je ne trouve pas de réponse à ceci :
J'ai le petit code suivant qui fonctionne très bien
VB:
Private Sub Copier_Tout_Le_Classeur()

    ThisWorkbook.Worksheets.Select 'Sélection de toutes les feuilles
    ActiveWindow.SelectedSheets.Copy 'Copie de toutes les feuilles dans un nouveau classeur

    ThisWorkbook.Close False 'Fermeture du "vieux" classeur sans sauvegarde

    'Macro d'import des modules de code qui fonctionne très bien aussi

End Sub

Mon problème vient du fait que dans le "nouveau" classeur (issu de la copie + import de modules) se trouvent tout un tas d'objets (CheckBox notamment) qui déclenchent des macros lorsqu'on clique dessus. Du coup, dans le cas présent, si je clique sur l'un de ces objets, il ouvre l'ancien fichier et exécute les commandes à partir et sur l'ancien fichier.

Comment "faire comprendre" à mon classeur, lors de la copie (ou juste après, en gros dans la même procédure) que tous les objets pointant vers l'ancien classeur doivent à présent pointer vers le nouveau classeur ?

D'avance merci pour votre aide !!
 
Re : VBA : liaisons de CheckBox

Bonsoir dionys0s,

Après le code ThisWorkbook.Close False la macro s'arrête.

Je ne vois pas comment vous pouvez ensuite importer des modules...

Mais bref, au lieu de copier les feuilles, pourquoi ne pas faire un SaveAs :

Code:
ThisWorkbook.SaveAs ThisWorkbook.Path & "\TOTO.xlsm"
A+
 
Re : VBA : liaisons de CheckBox

Bonjour le forum,
bonjour Job

j'ai effectivement oublié de préciser : tout ce bout de code se situe dans un .xlam
Donc ce sont des ActiveWorkbook (ou des pointeurs vers le bon classeur) que j'utilise.

J'ai écrit le bout de code du poste sans tenir compte de ce détail...
J'utilise cette méthode puisque j'ai remarqué que les classeurs s'alourdisse curieusement et sans raison (je veux dire sans ajout réel de données), et qu'en faisant ça, le classeur copié passe de 3,5Mo à 900Ko (si quelqu'un a une explication à ça d'ailleurs...)

Ceci dit, j'ai trouvé la solution entretemps. J'étais déjà tombée dessus mais je n'ai pas réussi à l'adapter tout de suite...

VB:
Private Sub Copier_Tout_Le_Classeur()

    Dim Feuil As Worksheet
    Dim OldWbk As Workbook, OldPath As String, OldFullPath As String

    Application.ScreenUpdating = False

    If Application.Workbooks.Count > 1 Then
        MsgBox "N'exécuter cette macro que lorsqu'un seul classeur est ouvert", vbInformation, "Exécution impossible"
        Exit Sub
    End If

    For Each Feuil In AW.Worksheets
        Feuil.Unprotect
    Next Feuil

    Set OldWbk = ActiveWorkbook
    OldPath = OldWbk.Path
    OldFullPath = OldWbk.FullName

    ActiveWorkbook.Worksheets.Select
    ActiveWindow.SelectedSheets.Copy

    OldWbk.Close False

    Workbooks(1).VBProject.References.AddFromFile "Macintosh HD:Applications:Microsoft Office 2011:Office:Visual Basic for Applications.framework:Versions:14:Resources:Visual Basic for Applications Extensibility Type Library"
    Workbooks(1).ChangeLink OldFullPath, Workbooks(1).Name, xlExcelLinks

    Call Importer_les_modules

    'Do: Loop While Application.Dialogs(xlDialogSaveAs).Show(OldPath) = False
    'Workbooks(1).Save

    Application.ScreenUpdating = True

End Sub
 
- 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

J
Réponses
4
Affichages
3 K
juicelink
J
C
Réponses
1
Affichages
2 K
Cekankonvaou
C
R
Réponses
0
Affichages
3 K
R
M
Réponses
6
Affichages
2 K
A
Réponses
5
Affichages
4 K
R
Réponses
6
Affichages
3 K
S
  • Question Question
Réponses
2
Affichages
2 K
sardaucar
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…