Sauvegarde par macro un peu spéciale

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

  • EXEMPLE_20051217231522.zip
    23 KB · Affichages: 12

Domic

XLDnaute Nouveau
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

  • EXEMPLE_20051218190142.zip
    19.9 KB · Affichages: 11

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane