Macros VBA excel [Résolu]

cs_foxblue 11 Messages postés lundi 28 mai 2007Date d'inscription 18 juillet 2015 Dernière intervention - 30 avril 2013 à 18:33 - Dernière réponse : cs_foxblue 11 Messages postés lundi 28 mai 2007Date d'inscription 18 juillet 2015 Dernière intervention
- 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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 2 mai 2013 à 08:14
3
Merci
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.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 2 mai 2013 à 19:58
3
Merci
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.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 30 avril 2013 à 21:08
0
Merci
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.
Commenter la réponse de ucfoutu
cs_foxblue 11 Messages postés lundi 28 mai 2007Date d'inscription 18 juillet 2015 Dernière intervention - 1 mai 2013 à 09:41
0
Merci
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
Commenter la réponse de cs_foxblue
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 1 mai 2013 à 17:47
0
Merci
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
Commenter la réponse de cs_MPi
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 2 mai 2013 à 08:05
0
Merci
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.
Commenter la réponse de ucfoutu
cs_foxblue 11 Messages postés lundi 28 mai 2007Date d'inscription 18 juillet 2015 Dernière intervention - 2 mai 2013 à 19:33
0
Merci
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
Commenter la réponse de cs_foxblue
cs_foxblue 11 Messages postés lundi 28 mai 2007Date d'inscription 18 juillet 2015 Dernière intervention - 2 mai 2013 à 21:38
0
Merci
OK, ok, merci pour vos messages
Igo
Commenter la réponse de cs_foxblue

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.