Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Un fichier vérolé...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
708
Réponses
4
Affichages
581
Réponses
8
Affichages
651
Réponses
2
Affichages
427
Réponses
2
Affichages
187
Réponses
8
Affichages
270
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
372
Réponses
10
Affichages
533
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…