[VBA] Erreur de code

Kiseki

XLDnaute Occasionnel
Bonjour,

J'ai fait un code pour sauvegarder une feuille dans un nouveau répertoire et classeur qui renomme la feuille avec la date du jour, la suivante "jour'1" etc...

Hier il me semblais bien fonctionner et maintenant il y à une erreur lors de la copie de la feuille que je ne comprend pas.

Éventuellement si vous voyez quelque chose à optimiser, je suis preneur pour apprendre à bien travailler.

Par exemple je n'ai pas réussis à faire passer "workbooks(nom)" comme variable, (j'ai bien mis as workbook et Set).

Merci,
 

Pièces jointes

  • Factureteste.xlsm
    40.3 KB · Affichages: 61
  • Factureteste.xlsm
    40.3 KB · Affichages: 71
  • Factureteste.xlsm
    40.3 KB · Affichages: 64
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Erreur de code

Bonjour,
Par exemple je n'ai pas réussis à faire passer "workbooks(nom)" comme variable, (j'ai bien mis as workbook et Set).

regarde ceci, en espérant que cela puisse t'aider :
Code:
Dim wb As Workbook, monfichier As String
'monfichier = chemin et nom fichier
Set wb = Workbooks.Open(monfichier)

bon après midi
@+
 

Kiseki

XLDnaute Occasionnel
Re : [VBA] Erreur de code

Bonjour Pierrot93,

Merci,

On peux utiliser cette variable comme s'il n'y avait pas open, ça me parait étrange mais bon.


Ça fonctionne, néanmoins j'ai le même soucis, cette ligne cause un soucis :

VB:
Workbooks("Factureteste.xlsm").Sheets("Facture").Copy before:=lui.Sheets(1) '***BLOQUE ICI***

Peut être car il y à dès lors 2 feuilles, car le code fonctionne très bien pour la première utilisation mais après ça endommage le fichier.
 

Kiseki

XLDnaute Occasionnel
Re : [VBA] Erreur de code

Oui,

Il me semble fonctionnais hier, mais vers fin de journée et aujourd'hui, il ne fonctionne pas et bloque à cette ligne, de prime il fait planter excel.

La macro va créer un dossier et fichier s'il n'existe pas, ouvrir le fichier si ce n'est fait et ensuite copier cette page.


Après le document est endommagé.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Erreur de code

Re,

essaye peut être ainsi :
Code:
Dim rep As String, nom As String, wb As Workbook
rep = ThisWorkbook.Path & "\Facture\"
nom = Format(Month(Date), "00") & "_" & Year(Date) & ".xls"
If Dir(rep, vbDirectory) = "" Then
    MkDir (rep)
    set wb = Workbooks.Add
    wb.SaveAs rep & nom
Else
    Set wb = Workbooks.Open(rep & nom)
End If
Workbooks("Factureteste.xlsm").Sheets("Facture").Copy before:=wb.Sheets(1)
 

Kiseki

XLDnaute Occasionnel
Re : [VBA] Erreur de code

Bonjour Pierrot,

Merci beaucoup, néanmoins le soucis persiste et reste identique.

La première utilisation fonctionne très bien, mais la deuxième génère une erreur.


L'aide sur le débogage et la ligne concernée :

VB:
Workbooks("Factureteste.xlsm").Sheets("Facture").Copy before:=wb.Sheets(1)

L'objet invoqué s'est déconnecté de ses clients.


Erreur Automation (erreur 440)
Voir aussi Particularités

Lorsque vous accédez à des objets Automation, des types d'erreur spécifiques peuvent se produire. Cause et solution de cette erreur :

Une erreur s'est produite lors de l'exécution d'une méthode ou de l'obtention ou de la définition d'une propriété d'une variable objet. L'erreur a été signalée par l'application qui a créé l'objet.
Vérifiez les propriétés de l'objet Err pour identifier la source et la nature de l'erreur. Tentez également d'utiliser l'instruction On Error Resume Next immédiatement avant d'accéder à l'instruction, puis vérifiez l'absence d'erreurs immédiatement après l'accès à l'instruction.

Pour plus d'informations, sélectionnez l'élément en question et appuyez sur F1 (sous Windows) ou AIDE (sur Macintosh).
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Erreur de code

Bonjour,

comprends pas, un code comme celui-ci-dessous fonctionne chez moi...
Code:
Dim wb As Workbook
Set wb = Workbooks.Add
Workbooks("classeur2.xls").Sheets("Feuil1").Copy before:=wb.Sheets(1)

est que "wb" est bien initialisé ? teste peut être le code ci-dessus dans un nouveau classeur... A voir ensuite le code exécuté au préalable ou bien la structure du classeur source...
 

Kiseki

XLDnaute Occasionnel
Re : [VBA] Erreur de code

Merci,

Je ne comprend pas non plus car la ligne fonctionne bien.

La première utilisation sans le dossier et fichier donc, fonctionne très bien.

Maintenant quand le fichier a été fait (ou existe) la macro bug.


La macro bug avec la même erreur, mais la feuille est quand même copiée suivant la syntaxe de la ligne.


J'en deviens fou.


Ton code fonctionne très bien aussi chez moi.


Tu voudrait bien tester le fichier ?

Je te remet le fichier à jour enregistré pour Excel 2003.
 

Pièces jointes

  • Factureteste.xls
    89.5 KB · Affichages: 55
  • Factureteste.xls
    89.5 KB · Affichages: 52
  • Factureteste.xls
    89.5 KB · Affichages: 50

Discussions similaires

Réponses
2
Affichages
367
Réponses
8
Affichages
482