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...
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
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
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 : Sélectionner tout - Visualiser dans une fenêtre à part Set Factures = .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 10)
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Super, c'était cela. Mais j'ai un autre souci, car la macro s'arrête avec ce message d'erreur
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.
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
voici cette ligne ou cela bloque
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager