Macro qui crashe la 2eme fois

sharkantipav

XLDnaute Occasionnel
Bonjour,
Jai un fichier sur lequel j'utilise la macro suivante. Elle tourne bien des que je l'execute la1ere fois. Si je l'execute une 2eme fois avec des donnees differentes. Elle me fait crasher tout mes excel. une idee de ce qui pourrait declencher cela. Merci bcp


VB:
Sub saveIOI()

Dim endI As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False

Dim ioiname As String
ioiname = "F:\Delta XXXXXXXXXXXXXXXXXXXX " & Format(Date, "DDMMMYY") & ".xls"
If Range("A10") = "" Then
endI = Range("A10")
Else
endI = Range("A10").End(xlDown).Row
End If

Range("D9:K" & endI).Select
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "Swap Template"
ActiveSheet.Select

Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Columns("A:H").EntireColumn.AutoFit

Application.CutCopyMode = False
Range("A2").Select
ActiveSheet.Move
ActiveWorkbook.SaveAs ioiname, FileFormat:=56
ActiveWorkbook.Close


Dim olapp As Outlook.Application
Dim msg As MailItem
Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
msg.To = "XXXX@YYY.com"
msg.Subject = "IOI - " & Format(Date, "DDMmmYY") & " - " & Range("G3").Value
msg.Attachments.Add Source:=ioiname
msg.Display

Sheets("IOI").Range("G3").Select

Set olapp = Nothing
Set msg = Nothing

Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True

End Sub
 

youky(BJ)

XLDnaute Barbatruc
Bonsoir,
On ne peut pas créer plusieurs fois un onglet avec le même nom.
Petite rectif dans un 1er temps car il faut supprimer l'onglet s'il existe
Bruno
VB:
Range("D9:K" & endI).Select
Selection.Copy
on error resume next'on gère les erreurs
Sheets("Swap Template").delete'on tente de la supprimer
on error goto 0'on desactive la gestion d'erreur
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "Swap Template"
 

sharkantipav

XLDnaute Occasionnel
Bonjour et merci de la reponse.
En fait comme cet onglet bouge vers un nouveau fichier ce probleme n'arrive pas.
Par contre un fait que j'ai remarque, c'est qu'en fait la macro ecrase le fichier existant
VB:
ioiname = "F:\Delta XXXXXXXXXXXXXXXXXXXX " & Format(Date, "DDMMMYY") & ".xls"

du coup la macro crash au niveau de
Code:
ActiveWorkbook.SaveAs ioiname, FileFormat:=56
lorsqu'on lui demande de sauver en ecrasant le fichier precedant en format .xls
 

youky(BJ)

XLDnaute Barbatruc
Hello,
Sur ce point je vais te répondre
En début de ta macro tu as
Application.DisplayAlerts = False
donc tu neutralise les alertes du type souhaitez-vous écraser et remplacer le fichier
Ta macro fait direct le remplacement sans ce soucier du reste.
Donc que faire soit écraser soit donner un nom autre . . . .
Bruno
 

Discussions similaires

Réponses
3
Affichages
550

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo