Macros VBA excel

Résolu
cs_foxblue Messages postés 11 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 18 juillet 2015 - 30 avril 2013 à 18:33
cs_foxblue Messages postés 11 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 18 juillet 2015 - 2 mai 2013 à 21:38
Bonsoir,
j'ai un souci avec cette partie de macro :
' qui Transfère les données chargées dans ThisWorkbook.
[b]With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
x = .CountOfLines
.DeleteLines 1, x
.InsertLines 1, LeModule.Lines(1, LeModule.CountOfLines)
End With/b

si je la laisse dans le classeur, Gmail me dit qu'il contient un virus lorsque je mets le classeur en pièce jointe d'un message ? alors que visiblement ça n'est pas le cas !
J'ai effectué de nombreux tests en incluant ou supprimant cette macro et je tourne en rond avec ce problème de virus ....
D'avance merci pour votre aide
Igo

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 mai 2013 à 08:14
Il ne s'agit de toutes manières (la question, telle que posée) pas d'un problème relevant de VB6, mais bel et bien d'une cause Gmail, avec les "raisons" (la stratégie) de Gmail.
Interroge donc Gmail sur ces raisons.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 mai 2013 à 19:58
On en profite :
Un classeur Excel est un exécutable.
Son code (même modifié dynamiquement) est automatiquement compilé par excel, contrairement à VB6 (qui nécessite une compilation à chaque modif).
On voit bien ici ce que l'on peut faire dynamiquement et on voit bien comment on pourrait jusqu'à mettre la pagaille partout "par petits morceaux" (lecture de fichiers textes plats "inoffensifs" et incorporation insidieuse d'instructions immédiatement exécutables !
Ce n'est là qu'un exemple (et ce n'est pas le pire) de la dangerosité d'un simple classeur. Raison pour laquelle seuls les plus imprudents s'amusent (prennent le risque) d'ouvrir des classeurs dont ils ne sont pas les auteurs. Ce risque est accru lorsque l' "échange" se fait par site de dépôt interposé.

Le danger est apparemment moindre sous VB6 ? Oui et non ... Oui si l'on inhibe VBS sur la machine d'accueil, non si VBS est disponible et que l'exe de VB6 contient du code ajouté par l'utilisation du composant Script Control.

A bons entendeurs ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 avril 2013 à 21:08
Bonjour,
déjà : aucun antivirus sérieux ne laissera passer une instruction d'écriture d'instructions. Et la raison de sa réaction est simple à comprendre.
Dans le cas contraire, il suffirait d'un fichier texte tout bête (donc non exécutable) contenant du texte d'instructions malveillantes, de l'ouvrir en lecture, y lire les chaînes de caractères qu'il contient et les insérer comme instructions (cette fois-ci exécutables) "ajoutées" à un module.
On peut toujours argumenter sur le fait que ces instructions "rajoutées" sont ou non malveillantes. Si elles ne le sont pas : aucune raison, alors, de ne pas se contenter de les mettre en dur dans le code, hein ...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_foxblue Messages postés 11 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 18 juillet 2015
1 mai 2013 à 09:41
Bonjour ucfoutu,
merci d'avoir répondu à ma question bien que je ne comprenne pas vraiment la réponse ! l'instruction que je mentionne est au milieu de la procédure :
Private Sub CmdExport_Click()
Dim x As Integer
Application.ScreenUpdating = False
Workbooks("monfichier.xls").Activate

With ActiveWorkbook.VBProject.VBComponents
.Remove .Item("Module1")
.Remove .Item("Userform1")
.Remove .Item("Userform2")
.Remove .Item("Userform3")
.Remove .Item("Userform4")
.Remove .Item("Userform5")
.Remove .Item("Userform6")
End With
DoEvents

With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With

'Charge le module dans le classeur
Set VbComp = ActiveWorkbook.VBProject.VBComponents.Import("d:\ThisWorkbook.cls")
'Le renomme (pour le supprimer plus facilement ultérieurement
' VbComp.Name = Cible
Set LeModule = VbComp.CodeModule

'Transfère les données chargées dans ThisWorkbook.
'Attention les données existantes dans "ThisWorkbook" sont écrasées.

With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
x = .CountOfLines
.DeleteLines 1, x
.InsertLines 1, LeModule.Lines(1, LeModule.CountOfLines)
End With

' importation nouveau projet de macros dans fichier actif
For i = 1 To 6
ActiveWorkbook.VBProject.VBComponents.Import "d:\USF" & i & ".frm"
Next i

ActiveWorkbook.VBProject.VBComponents.Import "d:\copieModule1.bas"


MsgBox "Opération terminée."
Application.ScreenUpdating = True
End Sub
Quand je transmets ce classeur en pièce jointe tel que, gmail me dit que la pièce jointe a un virus et si je supprime les 5 lignes mentionnées du with, ça passe sans problème ?
Déolé d'insister ! est-ce que je dois zipper le classeur pour ne plus avoir ce problème ?
Merci par avance
Igo
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 mai 2013 à 17:47
Bonjour,

Il y a de fortes chances que ça passe mieux s'il est zippé

Par contre, je ne peux pas te répondre pourquoi ces quelques lignes font en sorte que GMail le prenne pour un virus...


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 mai 2013 à 08:05
Bonjour,
Il est vrai que le zip pourrait échapper (au téléchargement) ...
Il est également vrai qu'un antivirus sérieux interviendrait par contre plus loin.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_foxblue Messages postés 11 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 18 juillet 2015
2 mai 2013 à 19:33
bonjour, je pense effectivement qu'il s'agit d'un problème de sécurité Gmail qui ne peux laisser passer mon code appelant une source qui peut s'avérer dangereuse même si là ça ne semble pas le cas.
Merci à tous
Igo
0
cs_foxblue Messages postés 11 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 18 juillet 2015
2 mai 2013 à 21:38
OK, ok, merci pour vos messages
Igo
0
Rejoignez-nous