Création de classeurs sans importer les références

Taebo

XLDnaute Nouveau
Le forum, les modérateur,
cher tous,

Ne postant pas énormément, et cherchant dans le forum d'habitude, je n'ai que rarement eu l'occasion de vous dire :)merci:eek:. Si vous saviez tous ce que j'ai appris ici! Mais voilà, l'outil "chercher dans le forum" est arrivé pour moi à ses limites (enfin juste cette fois).

L'idée
Le but de mon document est de créer un dossier avec des formulaires. Chaques dossiers doit avoir le nom de la commande, et chaques formulaires quelques spécifications ainsi que porter le nom de la commande. Pour l'instant on crée ce dossier avec les X même formulaires en copiant et mettant à jour le dernier que l'on a fait. J'ai envie d'automatiser tout ça.

Mon dossier fait:
Au moyen d'un bout de code lié à un bouton, placé dans la première feuille d'un classeur, je crée un dossier (que je nomme) dans le même répertoir que mon fichier excel. Ensuite, toujours avec le même code, je copie toutes les feuilles qui suivent dans ce dossier fraîchement nommé, mais pour chaques feuilles (que je nomme aussi) je recrée un dossier (qui ne contient que la feuille).
A savoir: Les feuilles que j'enregistre ainsi dans un nouveau dossier contiennent des références (au travers de formules) à la première feuille de mon classeur.

Mon problème:
Le dossier que je créer est destiné à être classé ailleurs. Donc je veux me débarrasser des références au premier classeur.

J'ai essayé de me débarrasser de toutes les formules mais ça ne marche pas. Y a-t-il un moyen de rendre ces nouveaux classeurs indépendants?

Padawan en besoin d'un maître
Merci à tous
 

Pièces jointes

  • Book1.xls
    49 KB · Affichages: 49
  • Book1.xls
    49 KB · Affichages: 50
  • Book1.xls
    49 KB · Affichages: 52
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Création de fichier sans importer les formules

Bonjour Taebo, bonjour le forum,

Ton code modifié :
Code:
Private Sub CommandButton1_Click()
Dim Chemin2 As String ' Définir une variable pour le chemin
Dim sDos As String ' Définir une variable pour le nom du dossier
Dim DocName As String ' Définir un variable pour le nom des fichier

Chemin2 = ThisWorkbook.Path & "\" ' Définir le chemin d'accès par défaut
Application.ScreenUpdating = False
sDos = Sheets("feuil1").Range("A1") ' Récupérer le nom du dossier en cellule A1
If Dir(Chemin2 & sDos, vbDirectory) = "" Then ' Vérifier si ce dossier existe, grâce à l'instruction DIR()
    MkDir Chemin2 & sDos ' Dir ne renvoit rien, le dossier n'existe pas, il faut le Créer
End If
For Document = 2 To 3 ' Remplir le dossier
    DocName = Sheets(Document).Name
    Application.DisplayAlerts = False
    DocName = Sheets("feuil1").Range("A1") & "_" & DocName & ".xls"
    Sheets(Document).Select ' Sauvegarde de la feuille comme fichier
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs Chemin2 & sDos & "\" & DocName, xlAddIn
    ActiveSheet.UsedRange.Select
    Selection.Copy
    ActiveCell.PasteSpecial (xlPasteValues)
    ActiveWorkbook.Close True
Next Document
Application.ScreenUpdating = True
Application.DisplayAlerts = True ' Ré-activer les messages d'alerte
End Sub
 

Taebo

XLDnaute Nouveau
Re : Création de fichier sans importer les formules

Merci Robert!

Je pensais aussi à quelque chose comme ça mais je me disais qu'on pouvait peut-être faire autrement. Bon dans tout les cas ça marche.

Juste une question sur le bout de code que tu m'a donné: le "True" est vraiment obligatoire?

Code:
    ActiveWorkbook.Close True
 

Taebo

XLDnaute Nouveau
Re : Création de classeurs sans importer les références

Re Robert, 你好 le forum

même si j'apprécie la métaphore, la question n'est pas dénuée de sens à cause de cela:

ActiveWorkbook.SaveAs Chemin2 & sDos & "\" & DocName, xlAddIn

Tu vois ce que je veux dire? on a déjà sauvegarder, re-sauvegarder n'est pas obligatoire (et ralonge suivant comment)

Enfin c'est ce qu'il me semble, sinon je vais m'acheter un certain instrument :)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Création de classeurs sans importer les références

Bonsoir Taebo, bonsoir le forum,

Tu enregistes avec :
Code:
ActiveWorkbook.SaveAs Chemin2 & sDos & "\" & DocName, xlAddIn
Ensuite tu modifies avec :
Code:
 ActiveSheet.UsedRange.Select
    Selection.Copy
    ActiveCell.PasteSpecial (xlPasteValues)
Donc à ce stade si tu sors sans enregistrer ta dernière modification ne sera pas enregistrée...

Ha j'oubliais, Il y a des promotions sur les contrebasses...

 

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 978
Membres
101 854
dernier inscrit
micmag26