Bouton enregistrement deux fichiers

  • Initiateur de la discussion Initiateur de la discussion KMos
  • 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 !

K

KMos

Guest
Bonjour à tous,

C'est mon premier message sur ce forum et j'espère pas mon dernier 🙂

Je viens vers vous pour savoir si quelqu'un pourrait m'aider à résoudre mon problème.

Aujourd'hui j'ai un fichiers pour établir des devis. Sur ce fichiers j'ai un bouton enregistrer qui permet d'enregistrer le fichiers en supprimant tous les liens

"Private Sub CommandButton1_Click()

ActiveWorkbook.Worksheets(1).Range("J3").Value = Now

ActiveSheet.Copy
Dim Liens As Variant
Dim L As Integer
'
Liens = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(Liens) Then
For L = 1 To UBound(Liens)
ActiveWorkbook.BreakLink Liens(L), Type:=xlExcelLinks
Next L
End If
Application.Dialogs(xlDialogSaveAs).Show CStr(ThisWorkbook.ActiveSheet.Range("J4").Value)

End Sub"

Ce que je voudrais c'est que il enregistre en plus le même fichiers mais sans supprimer les liens, qu'en un clique il enregistre deux fichiers, un avec les liens, l'autre sans.

Merci beaucoup de votre aide.

KMos
 
Re : Bouton enregistrement deux fichiers

Bonjour,

Merci de votre réponse si rapide.

Pour le moment au même endroit.
Le nom du fichier est dynamique en fonction d'infos de la feuille excel.

Je voudrais que cela s'enregistre de cette facon :

Nomdufichiers.xls (version avec les liens : pour moi)
Nomdufichiers-partner.xls (version sans les liens : a envoyer).

Merci beaucoup.

KMos
 
Re : Bouton enregistrement deux fichiers

Voilà ce que je te propose (à adapter):

Code:
Dim FD As FileDialog, Chemin As String
    Set FD = Application.FileDialog(msoFileDialogSaveAs)
    FD.AllowMultiSelect = False
    FD.InitialFileName = "Nom initial.xls"
    If FD.Show = -1 Then
        Chemin = FD.SelectedItems(1)
        'Enregistrement du fichier avec liens
        'Suppression des liens
        'Enregistrement du fichier sans lien
    
    End If

L'intérêt de FileDialog c'est que ça n'enregistre ton classeur que si tu utilises la méthode Execute.
 
Re : Bouton enregistrement deux fichiers

Merci de ton aide.

Je suis vraiment débutant sous VBA, je ne vois pas trop comment faire pour intégrer ta proposition.

Tu peux prendre quelques minutes pour me guider, ou même mieux me donner le code complet.

Je te mets mon code actuel que j'ai trouvé sur un site :

"Private Sub CommandButton1_Click()

ActiveWorkbook.Worksheets(1).Range("J3").Value = Now

ActiveSheet.Copy
Dim Liens As Variant
Dim L As Integer
'
Liens = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(Liens) Then
For L = 1 To UBound(Liens)
ActiveWorkbook.BreakLink Liens(L), Type:=xlExcelLinks
Next L
End If
Application.Dialogs(xlDialogSaveAs).Show CStr(ThisWorkbook.ActiveSheet.Range("J4").Value)

End Sub"

Merci beaucoup

KMos
 
Re : Bouton enregistrement deux fichiers

A mon avis ça doit donner ça :

Code:
Private Sub CommandButton1_Click()
Dim Liens As Variant
Dim L As Integer
Dim FD As FileDialog, Chemin As String
 
ActiveWorkbook.Worksheets(1).Range("J3").Value = Now
 
ActiveSheet.Copy
Set FD = Application.FileDialog(msoFileDialogSaveAs)
FD.AllowMultiSelect = False
FD.InitialFileName = CStr(ThisWorkbook.ActiveSheet.Range("J4").Value)
If FD.Show = -1 Then
        Chemin = FD.SelectedItems(1)
        Activeworkbook.SaveAs Chemin
Chemin = left(chemin, len(chemin)-4) & "-partner.xls" 
Liens = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLi nks)
If Not IsEmpty(Liens) Then
For L = 1 To UBound(Liens)
ActiveWorkbook.BreakLink Liens(L), Type:=xlExcelLinks
Next L
End If
 
Activeworkbook.SaveAs Chemin
End If
End Sub

Edit : Oups, j'avais oublié d'enlever un morceau... 🙂
 
Dernière édition:
Re : Bouton enregistrement deux fichiers

Merci encore,

Il me mets en rouge les deuxlignes suivantes et j'ai une erreur :

Liens = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLi nks)

Une idée ?
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
13
Affichages
2 K
Stedemart
S
O
Réponses
2
Affichages
680
Omkara
O
A
Réponses
0
Affichages
726
Alexsimps
A
R
Réponses
0
Affichages
3 K
R
L
Réponses
1
Affichages
1 K
Lucien31
L
J
Réponses
2
Affichages
858
T
Réponses
5
Affichages
2 K
tabernake
T
J
Réponses
0
Affichages
1 K
julie13
J
J
Réponses
6
Affichages
931
J
V
Réponses
2
Affichages
2 K
vynmarius
V
S
Réponses
1
Affichages
1 K
Retour