Un fichier vérolé...

SanarienAVoir

XLDnaute Nouveau
Bonsoir,
Je ne sais plus que faire... voici mon problème. J'ai écrit en VBA un UserForm (environ 1000 lignes de codes) qui tournait sur différentes machines sous XP, Win7 avec Excel 97, 2003 et 2007. "tournait" car il est maintenant atteint par le virus MW97. C'est le seul parmi pas mal d'applications sous Excel+Vba que j'ai développées.
J'ai supprimé tout le UF, puis repris peu à peu toutes le macros, à chaque fois ré-enregistré le fichier et testé avec l'antivirus. J'ai fini par déterminer une macro qui, présente, infeste le tableau, absente pas de virus.
J'ai écrit la macro directement (avec l'éditeur Vba) en espérant éliminer cette cochonnerie : rien à faire. Je vous donne le code, y-a-t-il une ligne qui pourrait déclencher cette alerte ?

Private Sub Nouvel_click()
If Modification And Not Simultane Then
CasSuite = MsgBox("Abandon des modifications en cours ?", vbYesNo, "Abandon des modifications ")
If CasSuite = 7 Then Exit Sub
Modification = False
End If

Simultane = False
EnrSimul.Value = Simultane
Controls("Enregistre").Enabled = True

Application.Goto Reference:=TTableau
FlagTri(1) = True

Selection.Sort key1:=Cells(2, 1), order1:=xlAscending, Header:=xlYes, ordercustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom

Indexc = Cells(2, 1).Value
Indexb = 0
For Index = 3 To MaxFiche + 1
If Cells(Index, 1).Value > Indexc + 1 Then
Indexb = Indexc + 1
Exit For
Else
Indexc = Cells(Index, 1).Value
End If
Next Index

If Indexb = 0 Then Indexc = Cells(MaxFiche + 1, 1).Value
Indexc = Indexc + 1
MaxFiche = MaxFiche + 1
Controls("AvantApres").Max = MaxFiche + 1
Set TTableau = Range("$A$1:$AS$" & CStr(MaxFiche + 2))
Cells(MaxFiche + 1, 1).Value = Indexc
For Index = 12 To 17
Cells(MaxFiche + 1, Index) = False
Next Index
For Index = 28 To 44
Cells(MaxFiche + 1, Index) = False
Next Index

AvantApres.Value = MaxFiche + 1
End Sub

si vous pouviez m'aider !
merci d'avance
Sanarienavoir
 

SanarienAVoir

XLDnaute Nouveau
Re : Un fichier vérolé...

For Index = 12 To 17
Cells(MaxFiche + 1, Index) = False
Next Index
For Index = 28 To 44
Cells(MaxFiche + 1, Index) = False
Next Index


,si vous pouviez m'aider !
merci d'avance

---------------------
Bonjour,
je complète mon message d'hier soir : après avoir suivant le même procédé (enregistrement permanent, test par antivirus) ré-introduit la macro j'ai pu déterminer que "le virus" venait des deux boucles que je laisse en copie. Mais la question reste entière. En programmant autrement (while ... wend) j'arrive au résultat souhaité.
Suis-je le seul à avoir eu ce genre de bug ?

Merci d'avance

Sanarienavoir
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 223
Membres
103 159
dernier inscrit
FBallea