Macro qui crashe la 2eme fois

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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"
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
547
Réponses
18
Affichages
316
Réponses
2
Affichages
283
Réponses
17
Affichages
1 K
Retour