Ou est l'erreur ????

Signaler
Messages postés
6
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
17 juillet 2009
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
J'ai un programme qui permet de détecter si il y a un fichier excel toutes les 5 minutes dans un folder, ensuite il doit l'analyser et envoyer un mail d'erreur si il detecte quelque chose, (enfin j'espere)
Le programme ne veut pas se compiler à "range" il me dit que sub n'est pas definit!

Aidez-moi svp

Sub RechercheFichier()


code = Format(Date, "yymmdd")


Do
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = code & ".xls"
.LookIn = "C:\RECEPTIONS\Leh"
.Execute


If .foundfiles.Count = 0 Then
newhour = Hour(Now())
newminute = Minute(Now())
newsecond = Second(Now()) + 3
WaitTime = TimeSerial(newhour, newminute, newsecond)
Application.Wait Time


ElseIf .foundfiles.Count > 0 Then
Workbooks.Open (.foundfiles(1))




Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
If Range("a1").Value = Empty Or Range("e3").Value <> Range("f3").Value Then
MailAd = ("qqun1[mailto:qqun1@qq.com;qqun2@qq.com @qq.com;qqun2@qq.com]")
Subj = ("erreur fichier")
Msg = Msg & ("Le fichier que vous nous avez envoyé est vide")
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End If


ActiveWorkbook.Close False
Kill .foundfiles(1)


End If
End With


Loop
End Sub

8 réponses

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonjour,

A priori, sans regarder plus à fond, j'aurai écrit :
MailAd = "qqun1[mailto:qqun1@qq.com;qqun2@qq.com @qq.com;qqun2@qq.com]"
Subj = "erreur fichier"

au lieu de :
MailAd = ("qqun1[mailto:qqun1@qq.com;qqun2@qq.com @qq.com;qqun2@qq.com]")
Subj = ("erreur fichier")

... les parenthèses vont être interpréter comme des paramètres à une fonction (ou sub dans le message d'erreur)...

Amicalement,
Us.
Messages postés
6
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
17 juillet 2009

pourquoi la compilation reste bloqué sur le mot range ?????
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Parce que "Range" n'existe pas en VB.Net
Messages postés
6
Date d'inscription
lundi 20 octobre 2008
Statut
Membre
Dernière intervention
17 juillet 2009

que dois-je faire alors ???
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Bonjour,
Que dois-tu faire ?
Du VBA, ma foi ...(ici, c'est du VB.Net) !!!
Commence par apprrendre à déterminer (c'est mille fois moins difficile que de développer) à quelle section du forum correspond ton outil de développement !
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Parce que Range appartient à l'objet Excel que tu as précédement dû ouvrir.
Il suffit de lui dire !
Exemple   maFeuilleExcel.Range

Ce qui m'épate, c'est que tu soies en .Net ...
Si tu es dans le VBA de Excel, tu as perdu 24h pour n'avoir pas pris le temps de bien choisir la catégorie de ta question (super, non ?)
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir,

C'est vrai ça... Le programme est sans nul doute du VBA sous Excel, mais ta phrase : "Le programme ne veut pas se compiler ..."... COMPILER n'est pas possible en VBA... alors ? J'Comprend plus rien...

Amicalement,
Us.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Si si, on peut compiler en VBA, c'est même une action fréquente avant de lancer un programme pour, au moins, vérifier que la syntaxe est bonne.
(dans le VB, menu Debuguer + Compiler)
C'est l'équivalent du Ctrl-F5 de VB6, mais sans exécution derrière.