1 pièce(s) jointe(s)
Feuilles non standard dans l'explorateur de projet VBA et dans "Microsoft Excel Objets"
Bonjour,
Dans l'explorateur de projet VBA et dans "Microsoft Excel Objets", j'ai de nombreuses feuilles , dont je ne sais pas comment les supprimer.
Elles se nomment "Feuil1", "Feuil2", ... et "Feuil25", mais ne sont pas apparentes dans le classeur excel.
Il n'y a pas de nom affiché entre parenthèse comme sur les autres feuilles normales.
L'icone de ces feuilles est identique à celui de Thisworkbook,
et par clic droit les propriétés des feuilles sont identiques à Thisworkbook au lieu d'être les mêmes que les autres feuilles standard.
J'ai cherché à les supprimer par une petite procédure :
Test sur la Feil20, mais sans succès :
Code:
1 2 3 4 5
|
Sub SuppressionDeFeuille()
Feuil20.Visible = True
Feuil20.Delete
End Sub |
ça ne marche pas (Voir la copie d'écran) :
Pièce jointe 606003
Savez vous comment puis-je m'y prendre pour les supprimer ?
De plus est ce que vous auriez une idée de la façon dont c'est feuilles auraient pu être crée et du coup comment se préunir de la création de celles-ci ?
Par avance Merci.
Bien à vous.
4 pièce(s) jointe(s)
Export/Import de macro et UserForm d'un classeur origine à un classeur cible
Bonjour Fil Free,
Merci pour l'interêt que tu as porté pour ma discussion et ta réponse.
Malheureusement ta solution ne fonctionne pas dans mon cas.
J'ai suivi scrupuleusement ce que tu as reporté, mais les feuilles 'zombies' sont restées bel et bien.
Je suis donc partie sur une solution plus laborieuse que j'ai trouvé sur ce même forum :
https://www.developpez.net/forums/d2...-frm-d-projet/
https://www.developpez.net/forums/d9...s/#post7177716
Je vais vous expliquer comment je m'y suis pris en suivant un peu près les 2 liens ci-dessus :
Le fichier origine avec les feuilles zombies s'appelle : Referentiel_des_flux_SDES-V2.xlsm
Sur celui-ci, j'ai crée une macro, que j'ai appellé macroReparation dont le code a été repris sur les discussions ce-dessus dont j'ai mis les liens :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Sub ExporterFrmEtModules()
' Déclaration des variables locales
Dim l_nomFichier
For Each l_nomFichier In ThisWorkbook.VBProject.VBComponents
Select Case l_nomFichier.Type
Case 1
ThisWorkbook.VBProject.VBComponents(l_nomFichier.Name).Export "C:\User\E524761\Documents\Personnel\Referentiel-Flux\TestsDivers\" & l_nomFichier.Name & ".bas"
Case 2
ThisWorkbook.VBProject.VBComponents(l_nomFichier.Name).Export "C:\User\E524761\Documents\Personnel\Referentiel-Flux\TestsDivers\" & l_nomFichier.Name & ".cls"
Case 3
ThisWorkbook.VBProject.VBComponents(l_nomFichier.Name).Export "C:\User\E524761\Documents\Personnel\Referentiel-Flux\TestsDivers\" & l_nomFichier.Name & ".frm"
Case 100
ThisWorkbook.VBProject.VBComponents(l_nomFichier.Name).Export "C:\User\E524761\Documents\Personnel\Referentiel-Flux\TestsDivers\" & l_nomFichier.Name & ".sht"
End Select
Next
End Sub |
Du coup ça a généré dans le répertoire C:\User\E524761\Documents\Personnel\Referentiel-Flux\TestsDivers\ tous les fichiers suivants :
BoiteDialogueIdentification.frm
BoiteDialogueIdentification.frx
Feuil1.sht
Feuil10.sht
Feuil11.sht
Feuil12.sht
Feuil13.sht
Feuil14.sht
Feuil15.sht
Feuil16.sht
Feuil17.sht
Feuil18.sht
Feuil19.sht
Feuil2.sht
Feuil20.sht
Feuil21.sht
Feuil22.sht
Feuil23.sht
Feuil24.sht
Feuil25.sht
Feuil26.sht
Feuil27.sht
Feuil28.sht
Feuil3.sht
Feuil35.sht
Feuil38.sht
Feuil39.sht
Feuil4.sht
Feuil5.sht
Feuil6.sht
Feuil7.sht
Feuil8.sht
Feuil9.sht
ModuleCopieOnglets.bas
ModuleReferentielFlux.bas
ModuleReparation.bas
ModuleTelechargement.bas
ThisWorkbook.sht
J'ai supprimé toutes les Feuilles, c'est à dire tous les fichiers dont l'extension étaient *.sht. L'idée ici était de pouvoir récupérer toutes les macro et les UserForm.
Pièce jointe 606211
Ensuite j'ai ouvert un fichier Excel vierge et j'ai copier à partir du classeur Origine, tous les onglets dans le classeur Cible : Referentiel_des_flux_SDES-V4.xlsm, de la manière manuelle suivante :
Pièce jointe 606212
Les 2 classeurs Referentiel_des_flux_SDES-V2.xlsm et Referentiel_des_flux_SDES-V4.xlsm sont ouverts
Click droit sur le nom de l'onglet à copier dans Referentiel_des_flux_SDES-V2.xlsm et sélectionner "Déplacer ou copier"
dans la listeBox "Dans le classeur", sélectionner le classeur cible : Referentiel_des_flux_SDES-V4.xlsm et tu cocher "Créer une copie"
Ensuite, à partir du classeur Cible : Referentiel_des_flux_SDES-V4.xlsm, j'ai ouvert l'explorateur VBA (Alt F11) est j'ai crée la macro MacroReparation :
Pièce jointe 606214
Le code que j'y ai mis est le suivant (repris des forums dont j'ai donné les liens ) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Sub ImporterTousLesFichiersDunRépertoire() '"d'après" SilkyRoad
' Déclaration des variables locales
Dim l_nomFichier As String
Dim l_nomRepertoire As String
l_nomRepertoire = "C:\User\E524761\Documents\Personnel\Referentiel-Flux\TestsDivers\"
l_nomFichier = Dir(l_nomRepertoire & "*.*")
MsgBox "Le nom du fichier est : " & l_nomFichier
Do While l_nomFichier <> ""
Application.VBE.ActiveVBProject.VBComponents.Import (l_nomRepertoire & l_nomFichier)
l_nomFichier = Dir
Loop
End Sub |
Après avoir executer la procédure, la userForm et les Procédure étaient crée dans le fichier cible : Referentiel_des_flux_SDES-V4.xlsm
Je ferme la discussion.
Bien à vous.