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]
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]