Copie de feuilles et liaisons

yvantof

XLDnaute Nouveau
Bonjour le Forum !

N'ayant pas de succès avec le fil "décomposition de formules" (je vais poster un exemple de fichier plus simple sur ce fil), je vous propose un autre problème.

J'ai récupéré un code sympa permettant de sauvegarder une feuille d'un classeur.
Cependant j'ai 3 problèmes.

1/ J'aimerais que le format d'enregistrement contienne aussi des lettres et signes.
Par ex TFC1000/29092007 au lieu de 100029092007
2/ La feuille est copiée dans "mes documents" ce qui ne m'arrange pas !
Je souhaiterai plutot définir un dossier.
3/ La feuille est toujours liée au fichier de départ et je voudrais simplement rompre les liaisons après que la feuille soit copiée;

ci-dessous le code.

Sub SAVEFORMUL()
'
' SAVEFORMUL Macro
' Macro enregistrée le 29/09/2007 par ANDRE
'
Dim Nomfichier As String, Entree As String
Dim f As Worksheet 'déclare la variable f
Dim fich As Workbook
Dim lerep
lerep = ActiveWorkbook.Path
Début:
Entree = InputBox("Please select number of formulae : for example N° TFC and date : 1250010108 ")
If Len(Entree) = 10 And IsNumeric(Entree) Then
Nomfichier = Left(Entree, 4) & "_" & Right(Entree, 6)
With Application.FileSearch
.NewSearch
.LookIn = lerep
.Filename = Nomfichier & ".xls"
.MatchTextExactly = True
.Execute
FileExists = .FoundFiles.Count = 1
If FileExists Then
MsgBox "This formulae already exist ! Please select an other name": GoTo Début
End If
End With
ActiveSheet.Copy
For Each obj In ActiveSheet.Shapes
obj.Delete
Next
ActiveWorkbook.SaveAs Filename:=Nomfichier & ".xls"
ActiveSheet.Name = Nomfichier
Msg = "Your fourmulae has been saved in the format (TFC)xxxx/date"
Title = "SAVE FORMULAE"
Style = vbOKOnly + vbInformation
Reponse = MsgBox(Msg, Style, Title)
ActiveWorkbook.Close (False)
Else
MsgBox "BAD FORMAT, Please try again": GoTo Début
End If
End Sub

Merci pour votre aide !
 

fred65200

XLDnaute Impliqué
Re : Copie de feuilles et liaisons

pour les liaisons sur Xl2007

With ActiveWorkbook
.UpdateRemoteReferences = False
.SaveLinkValues = False
End With
Si tu as une autre version d'excel, avec l'éditeur de macro tu devrais trouver

Pour enregistrer ailleurs que dans mes documents

définie Racine
Racine = "C:\Users\xxxx\Desktop\" ' avec un \ à la fin
ActiveWorkbook.SaveAs Filename:= Racine & Nomfichier & ".xls"

le dernier point je n'ai pas tout saisi

Entree = InputBox("Please select number of formulae : for example N° TFC and date : 1250010108 ", _
"Number of formulae", "N° TFC " & "0123456789")

If Entree Like "N° TFC ##########" Then
Nomfichier = Entree 'Left(Entree, 4) & "_" & Right(Entree, 6)

tiens nous au courant

Salutations
 

yvantof

XLDnaute Nouveau
Re : Copie de feuilles et liaisons

Bonjour FRED65200,

merci pour ton aide qui m'a permis de résoudre les points 1 et 2.

Le code permet de copier une feuille d'un classeur dans un dossier.
Je voudrais que les liens qui unissent la copie de la feuille au classeur de départ sautent.

Lorsque la copie est ouverte, les liens doivent impérativement avoir disparus.
Concernant la rupture de liens, l'éditeur de macro me donne (sous excel 2003):

Sub Macro3()

ActiveWorkbook.BreakLink Name:= _
"Chemin du fichier de départ.xls", _
Type:=xlExcelLinks
End Sub

J'ai essayé d'insérer ce "code" dans le code complet mais cela ne marche pas.
Lorsque j'ouvre la copie, les liens sont toujours là.
Je me trompe quelque part mais où ???

Merci pour tres conseils.
 

yvantof

XLDnaute Nouveau
Re : Copie de feuilles et liaisons

Bonjour PierreJean,

ci-joint le fichier vachement élagué !!!
A la base il fait 2.8 MO, contient une dizaine de feuilles de bases de données avec des recherchev partout .

Lorsque tu appuies sur "save formulae" il fait une copie du fichier dans la racine (que tu dois modifier bien sur pour que cela marche chez toi) que j'ai nommée dans la macro.

Je te remercie pour tes lumières

Fred,

je voudrais supprimer les liens et conserver les valeurs .

Yvantof.
 

Pièces jointes

  • LEGISLATION TFC21.zip
    36.5 KB · Affichages: 53
  • LEGISLATION TFC21.zip
    36.5 KB · Affichages: 53
  • LEGISLATION TFC21.zip
    36.5 KB · Affichages: 55

fred65200

XLDnaute Impliqué
Re : Copie de feuilles et liaisons

Grâce à toi j'ai découvert que FileSearch n'était plus reconnu dans Excel 2007 - Merci

Les liaisons viennent des noms de ta feuilles

Supprime les si tu n'en as plus besoin
Code:
For Each Nom In Activeworkbook.Names
  Nom.Delete
Next

NB
tu peux aussi inscrire en haut de ton module dans les déclarations

Public Const Racine As String = "C:\Documents and Settings\xxxxx\Bureau\TESTS TFC\" ' avec un \ à la fin

C'est plus simple lorsqu'il faut modifier le chemin.

Si tu as plusieurs Variables n'hésite pas à créer un module modVariables et y déclarer toutes tes constantes dedans.

@+
 

fred65200

XLDnaute Impliqué
Re : Copie de feuilles et liaisons

après

Code:
ActiveSheet.Copy
For Each obj In ActiveSheet.Shapes
obj.Delete
Next

tu insères

Code:
For Each Nom In Activeworkbook.Names
  Nom.Delete
Next


ensuite, tu as

Code:
ActiveWorkbook.SaveAs Filename:=Nomfichier & ".xls"


ça doit fonctionner

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 987
dernier inscrit
Doctami