Macro à l'ouverture du classeur qui bug

dionys0s

XLDnaute Impliqué
Salut le forum :

J'ai ce code qui s'exécute à l'ouverture du fichier, et qui plante sur la dernière étape, et je ne comprends pas du tout pourquoi... si vous avez une idée :

Code:
Private Sub Workbook_Open()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

    ChDir "X:\Finance\Bons de Commande\Projet\Support"
    Workbooks.Open Filename:= _
        "X:\Finance\Bons de Commande\Projet\Support\Datas.xls"
    Cells.Select
    Selection.Copy
    Windows("Projet.xls").Activate
    Feuil2.Visible = True
    Feuil2.Select
    Cells.Select
    ActiveSheet.Paste
    Windows("Datas.xls").Activate
    
End Sub

En gros le but est de fermer le classeur Datas.xls

D'avance merci pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Macro à l'ouverture du classeur qui bug

Bonjour à tous,

peut être avec l'utilisation d'une variable :

Code:
Dim wb As Workbook
Set wb = Workbooks.Open(Filename:= _
        "X:\Finance\Bons de Commande\Projet\Support\Datas.xls")
'tes instructions
wb.Close 'false ou true pour enregistrement des modifis.

avec ce type de code, partout oùu tu veux effectuer une action sur le classeur en question, tu te sers de la variable wb....

bonne fin d'après midi
@+
 

dionys0s

XLDnaute Impliqué
Re : Macro à l'ouverture du classeur qui bug

J'ai bidouillé une autre solution :

Je crée une macro dans un module lambda :

Code:
Sub Fermer_Datas()

    Windows("Datas.xls").Activate
    ActiveWindow.Close

End Sub

et dans This Workbook

Code:
Private Sub Workbook_Open()

Application.ScreenUpdating = False
Application.ShowWindowsInTaskbar = False
Application.DisplayAlerts = False

    ChDir "X:\Finance\Bons de Commande\Projet\Support"
    Workbooks.Open Filename:= _
        "X:\Finance\Bons de Commande\Projet\Support\Datas.xls"
    Cells.Select
    Selection.Copy
    Windows("Projet.xls").Activate
    Feuil2.Visible = True
    Feuil2.Select
    Cells.Select
    ActiveSheet.Paste
    Range("A1").Select
    Feuil2.Visible = False
    Call Fermer_Datas

Application.ScreenUpdating = True
Application.ShowWindowsInTaskbar = True
Application.DisplayAlerts = True

End Sub

Curieusement ça marche... mais en remplaçant mon code de Fermer_Datas à la place de Call Fermer_Datas, ça plante.

Mystère.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 246
Messages
2 117 750
Membres
113 300
dernier inscrit
faby79