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

Sauvegarde par macro un peu spéciale

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 !

natbru

XLDnaute Occasionnel
Bonsoir à tous,

Je fais suite à mon post de ce matin car ma demande à un peu évolué. (cela dit je suis toujours débutante en vba)

Je travail sur un classeur excel dans lequel je voudrais sauvegarder une feuille (uniquement) :

- dans un classeur 'HISTORIQUE RAPPRO'

- que la copie faite ne conserve que les résultats et non les formules

- que le bouton 'SAUVEGARDE DU RAPPRO' soit supprimé

- que la colonne I soit suprrimée

- une feuille pour chaque mois

- que l'onglet de la feuille se nomme comme le contenue de la cellule A2 (de la meme feuille)

- que le chemin d'accés à la sauvegarde puisse être modifier par l'utilisateur dans la feuille 'DONNEES'

Je me suis servi d'un code que j'ai trouvé sur le site (mille escuses pour son créateur) que j'ai essayé d'adapter à mes besoins. Ca donne :

Private Sub SAVERAPPRO_Click()

'déclare la variable Ori
Dim Ori As Workbook

'déclare la variable His
Dim His As Workbook

'déclare la variable ChemHis
Dim ChemHis As String

'définit la variable ChemHis
ChemHis = Sheets('DONNEES').Range('b7').Value

'définit la variable Ori
Set Ori = ThisWorkbook

With Ori
'copie la feuille 'RAPPRO'
.Sheets('RAPPRO').Copy after:=Sheets(Sheets.Count)

'supprime le boutton
.ActiveSheet.Shapes('SAVERAPPRO').Select
SELECTION.Delete

'supprime la colonne avec lien hypertexte 'RETOUR'
Columns('I:I').Select
SELECTION.Delete Shift:=xlToLeft

'remplace les formules par les résultats
.ActiveSheet.Cells.Select
SELECTION.Copy
SELECTION.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblans:=False, Transpose:=False
Range('a1').Select

'sauve le classeur
.save

End With

'ouvre le classeur 'HISTORIQUE RAPPRO.xls'
Application.Workbooks.Open (ChemHis)

'définit la variable His
Set His = active.Workbook

'copie l'onglet 'RAPPRO' dans le classeur 'HISTORIQUE RAPPRO.xls'
Ori.Sheets('RAPPRO').Copy after:=His.Sheets(Sheets.Count)

'donne le nom à l'onglet en fonction de la cellule A2
ActiveSheet.Name = Range('a2').Value

'sauve 'HISTORIQUE RAPPRO.xls'
His.save

'ferme 'HISTORIQUE RAPPRO.xls'
His.Close

End Sub[/code]

Seulement pour le moment ca ne fonctionne pas du tout.

J'espère avoir été le plus claire possible et je prie pour avoir de l'aide.

Ci-joint le fichier exemple.

Merci beaucoup pour vos réponses. [file name=EXEMPLE_20051217231522.zip size=23525]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EXEMPLE_20051217231522.zip[/file]
 

Pièces jointes

Bonsoir natbru, le forum,

Il y as quelques erreur dans ton code, tu peux le remplacer par le suivant

Code:
Private Sub SAVERAPPRO_Click()()

'déclare la variable Ori
Dim Ori As Workbook

'déclare la variable His
Dim His As Workbook

'déclare la variable ChemHis
Dim ChemHis As String

'définit la variable ChemHis
ChemHis = Sheets('DONNEES').Range('b7').Value

'définit la variable Ori
Set Ori = ThisWorkbook

'ouvre le classeur 'HISTORIQUE RAPPRO.xls'
Application.Workbooks.Open (ChemHis)

'définit la variable His
Set His = Workbooks('HISTORIQUE RAPPRO.xls')

'suppression de la définition de 'NomOnglet'
Ori.Names('NomOnglet').Delete

'copie l'onglet 'RAPPRO' dans le classeur 'HISTORIQUE RAPPRO.xls'
Ori.Sheets('RAPPRO').Copy after:=His.Sheets(Sheets.Count)

'supprime le boutton
His.Sheets('RAPPRO').Shapes('SAVERAPPRO').Delete
'supprime la colonne avec lien hypertexte 'RETOUR'
His.Sheets('RAPPRO').Columns('I:I').Delete Shift:=xlToLeft
    
'remplace les formules par les résultat
His.Sheets('RAPPRO').Cells.Copy
His.Sheets('RAPPRO').Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

'donne le nom à l'onglet en fonction de la cellule A2
His.Sheets('RAPPRO').Name = Range('a2').Value

'sauve 'HISTORIQUE RAPPRO.xls'
His.save

'ferme 'HISTORIQUE RAPPRO.xls'
His.Close

End Sub

Comme ce code est sur ta feuille, il sera recopier à chaque fois dans ton fichier de sauvegarde pour rien.

Je te conseille de le faire comme dans l'exemple que je te renvoie

A+

Domic

[file name=EXEMPLE_20051218190142.zip size=20347]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EXEMPLE_20051218190142.zip[/file]
 

Pièces jointes

Merci pour ton temps et tes explications. Je me suis servi de ce que tu m'avais expliquer pour faire ce dont j'avais besoin et je l'ai rebalancer sur le forum pour correction. et maintenant c'est parfait. Merci de ton aide précieuse.
 
- 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

Réponses
21
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…