Mon code ne marche pas

natbru

XLDnaute Occasionnel
Boujour à tous,

quelqu'un peut-il regarder mon code et me dire ce qu'il en pense? je débute et ce que j'ai fais ne fonctionne pas.

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

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

Merci de votre aide. [file name=EXEMPLE_20051218141821.zip size=23525]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EXEMPLE_20051218141821.zip[/file]
 

Pièces jointes

  • EXEMPLE_20051218141821.zip
    23 KB · Affichages: 21

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour NatBru, le Forum

Ah oui, il y a du boulot pour remettre ceci en programmation un poil plus conventionnelle... ;)

Pour ma part, je ne procèderais pas en copiant une feuille comportant des ActiveX (le Bouton 'SAVERAPPRO') mais je passerai par un UserForm indépendant des Feuille pouvant permettre l'export. (mais bon on peut le faire)

Enfin je comprends bien que lorsque l'on débute on ne passe pas forcément par le plus radical et on se complique la vie parfois. (Nom de plage, destruction du bouton etc)

Mon conseille, ce code de 'SAVERAPPRO' tel quel dans le Private Module de la Feuille, devrait plutôt être en Module Standard (Comme ça tu ne l'exporteras pas avec ta feuille dans le Fichier 'HISTORIQUE RAPPRO.xls'...

Par contre vu que tu as un Bouton CommandButton pour lancer ce Code, tu devras quand même lancer la macro avec quelques ligne dans le Private Module de la Feuille 'RAPPRO' du fichier 'Original':

Option Explicit

Sub SAVERAPPRO_Click()
Call GenerateHistoryRappro
End Sub


Ensuite tu crée un Module Standard 'Module1' toujours dans ce fichier 'Original' et tu mets ce code :

Option Explicit

Sub GenerateHistoryRappro()
Dim WBOriginal As Workbook
Dim WBHistoric As Workbook
Dim WSReproCopy As Worksheet
Dim ChemHis As String
Dim ReproName As String

Application.DisplayAlerts =
False

ChemHis = Sheets('DONNEES').Range('b7').Value

Set WBOriginal = ThisWorkbook

ReproName = 'REPRO_' & Format(Now, 'YYMMDD_HHMMSS')

WBOriginal.Sheets('RAPPRO').Copy after:=Sheets(Sheets.Count)


Set WSReproCopy = ActiveSheet
     
With WSReproCopy
        .OLEObjects(1).Delete
        .Columns('I:I').Delete Shift:=xlToLeft
        .Cells.Copy
        .Cells.PasteSpecial Paste:=xlPasteValues
        .Cells(1, 1).Select
        .Name = ReproName
   
End With
          Application.CutCopyMode =
False
   
WBOriginal.Save

Application.Workbooks.Open (ChemHis)

Set WBHistoric = ActiveWorkbook

With WBHistoric
    WSReproCopy.Copy after:=.Sheets(Sheets.Count)
    ActiveSheet.Name = Range('a2').Value & Format(Now, 'YYMMDD_HHMMSS')
    .Close
True
End With

Application.DisplayAlerts =
True
End Sub


Ce devrait déjà tourner un peu mieux... A condition sinequanon que tu aies bien paramétré ta feuille 'DONNEES' avec le chemin complet exact du fichier 'HISTORIQUE RAPPRO.xls' qui doit aussi bien exister.

Bonne découverte du VBA et bon dimanche
[ol]@+Thierry[/ol]
 

natbru

XLDnaute Occasionnel
Merci de t'être penché sur mon problème, je me doutais bien que ce que j'avais fait n'était pas terrible mais je vais regarder de plus pres ce que tu m'a transmis.

(Et je vais de ce pas aller acheter 'VBA pour les nuls')

Merci encore, je te donnerais des nouvelles pour te dire si ca correspond a ce que je souhaitais.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi