Bonjour besoin d 'aide voila je monte de version excel et je m 'apercois que mon code ne fonctionne plus c est un code pour envoyer des mails via fichier excel
exist-il un moyen de convertir ma macro 2007 en 2010
merci à vous...
Version imprimable
Bonjour besoin d 'aide voila je monte de version excel et je m 'apercois que mon code ne fonctionne plus c est un code pour envoyer des mails via fichier excel
exist-il un moyen de convertir ma macro 2007 en 2010
merci à vous...
Salut.
Je doute qu'une macro 2007 ne fonctionne pas en 2010...
Si tu donnais le code et que tu expliquais ce qui passe (message d'erreur, ...), nous pourrions probablement t'aider davantage :roll:
ok donc j ai deux macro qui plante une quand j'envoie les mails
et l autre c est un fichier que j ai ecrit (merci de ne pas rigoler car je n'ai pas le niveau encore)
donc lorsque je lance ma premiere macro pour envoyé les mails j ai ce message qui apparait
ERREUR D EXECUTION 1004
ERREUR DEFINI PAR L'application ou par l objet
voici le code
et le fichier
en lien merci par avance
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Sub EnvoiMail() Dim C As Range, Plage As Range, Factures As Range, Plage2 As Range Dim OlApp As Object, M As Object, Wbk As Workbook Set OlApp = CreateObject("Outlook.application") With Sheets("DOMAINE") Set Plage = .Range(.[A2], .[A:A].Find("*", , , , xlByRows, xlPrevious)) End With With Sheets("JUSTIF") Set Factures = .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 11) For Each C In Plage .AutoFilterMode = False Factures.AutoFilter 5, C.Value Factures.AutoFilter 10, "à relancer" Set Plage2 = Factures.Offset(1).Resize(Factures.Rows.Count - 1, 1) If Application.Subtotal(103, Plage2) > 0 Then Set Plage2 = Factures.SpecialCells(xlCellTypeVisible) Set M = OlApp.CreateItem(olMailItem) Set Wbk = Workbooks.Add(1) Plage2.Copy Wbk.Sheets(1).[A1] On Error Resume Next Kill ThisWorkbook.Path & "\" & "temp.xls" Application.DisplayAlerts = False Wbk.SaveAs ThisWorkbook.Path & "\" & "temp", FileFormat:=xlExcel8 Application.DisplayAlerts = True Wbk.Close False On Error GoTo 0 With M .Subject = "Objet" .Body = "Message" .Recipients.Add C.Offset(, 2).Value .attachments.Add ThisWorkbook.Path & "\" & "temp.xls" '.Display .Send End With Kill ThisWorkbook.Path & "\" & "temp.xls" End If Next C .AutoFilterMode = False End With End Sub
Sur quelle ligne as-tu cette erreur?
ben justement je ne l a voie pas ca s arrete directement avec ce message
mais j ai l impression quand je le fais manuellement bloque a ce niveau
Factures.AutoFilter 5, C.Value
Factures.AutoFilter 10, "à relancer"
Dans la macro, tu définis une plage qui va jusqu'en colonne K, alors que ta plage s'arrête en J (et ton filtre aussi).
En modifiant la ligne qui fixe la plage, tu passes
Code:Set Factures = .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 10)
Super, c'était cela. Mais j'ai un autre souci, car la macro s'arrête avec ce message d'erreur
Citation:
Erreur d'exécution 2147352567 (800200009)
erreur automation
une exception s est produite
Lorsque tu as une erreur, en général tu peux basculer en VBA pour voir sur quelle ligne l'erreur se produit (elle apparaît en jaune).
Donne-nous cette ligne, sinon on ne sait toujours pas mieux t'aider.
voici cette ligne ou cela bloque
Code:
1
2 Wbk.SaveAs ThisWorkbook.Path & "\" & "temp", FileFormat:=xlExcel8 Application.DisplayAlerts = True
Ca fonctionne mais j'ai un message d'erreur à la fin. Je pense savoir d'où cela viens car j'ai certains approb qui n'ont pas de mail.
Merci en tout cas mais j ai un autre cas ou la je pense que je vais planter
Ton fichier TEMP ne serait-il pas déjà ouvert, par hasard?
En phase de test, tu aurais intérêt à désactiver la ligne On Error Resume Next