XL 2010 arret (pause) inexpliqué sur ''end sub''

bérylion

XLDnaute Occasionnel
bonjour la foule,

j'ai un projet vba que j'améliore un peu tous les jours, et depuis hier j'ai une pause à l'éxécution sur la ligne ''end sub'' d'une procédure ?!

y'a pourtant pas de point d'arret, et si je relance en appuyant sur [F5] le problème ne revient pas (c'est à dire que le code ne s'arrete qu'a la 1ere exécution de cette sub, mais plus à la 2e ni aux suivantes).

quelqu'un saurait me dire pourquoi ça peut arriver ?....

voila la fautive, exécutée depuis userform2 et qui va chercher des infos dans l'objet classeur wbkBase créé depuis userform1 (les 2 form sont ouvert en m tps) :

Code:
Public FNRs As New Scripting.Dictionary
Dim REF_Selected_FNR()
....
....
Private Sub choix_type_echantillon(typeECH As Byte)

  FNRs.RemoveAll
  ColumnNbr = 26 + 2 * typeECH
  UserForm1.wbkBase.Sheets(typeECH).Activate

  Dim REFs_FNRs()
  For i% = 2 To Application.WorksheetFunction.CountA(Range(Range("Z:Z").Offset(0, 2 * typeECH).Address)) + 1
      If Not FNRs.Exists(Cells(i, ColumnNbr).Text) Then 
           j = 0
          ReDim REFs_FNR(0)
          For Each objCell In Range(Range("A2"), Range("A2").End(xlDown))
              If objCell.Offset(0, ColumnNbr - 1) = Cells(i, ColumnNbr) Then
                  ReDim Preserve REFs_FNRs(j)
                  REFs_FNRs(j) = Array(objCell.Text, objCell.Offset(0, ColumnNbr + 2).Text, _
                      IIf(CBool(objCell.Offset(0, ColumnNbr + 2 + 1).Text = "TRANSMIS"), "OUI", "NON"), objCell.Row)
                  j = j + 1
              End If
          Next
          FNRs.Add Cells(i, ColumnNbr).Text, REFs_FNRs()
      End If
  Next
 
  ListFnrs = FNRs.Keys
  ListSort ListFnrs
  ListSort ListFnrs ' oui, 2 fois : j'ai pas trouvé l'erreur... ?!
  Me.ComboBox_choix_FNR.List = ListFnrs

  ListBox1.ColumnCount = 3
   
  REF_Selected_FNR = Array()

  choix_FNR

End Sub
 

mutzik

XLDnaute Barbatruc
bonjour

UserForm1.wbkBase.Sheets(typeECH).Activate
tu lances un USForm avec cette commande ?
si c'est le cas, il vaudrait mieux le lancer une fois toutes les instructions de ta macro executées (je pense qu'elles ne le sont que quand ton USF est fermé
 

bérylion

XLDnaute Occasionnel
bonjour

UserForm1.wbkBase.Sheets(typeECH).Activate
tu lances un USForm avec cette commande ?
si c'est le cas, il vaudrait mieux le lancer une fois toutes les instructions de ta macro executées (je pense qu'elles ne le sont que quand ton USF est fermé

bonjour et merci de ton intéret ;)

non, UserForm1.wbkBase.Sheets(typeECH).Activate est une variable objet (un workbook) déclaré et ouvert depuis userform1 .

ce qui est surprenant c'est que le code ne produit aucune erreur, c'est juste qu'il marque une pause comme si il y avait un breakpoint ?! (alors que non, y en a pas...)

je l'ai exécuté en pas a pas et tout fonctionne sans pb...

quand je lance le programme, tout fonctionne aussi, sauf qu'il s'arrete sur le End Sub et il m'affiche le VBE : alors je frappe sur la touche [F5] et ça repart comme en '14 ?!

c'est d'autant plus surprenant qu'il ne fait ça qu'a l'exécution automatique à l'ouverture : si je stoppe tout (commande End dans la fenetre exécution en mode pause) et que je relance userform1, yaplu de problème... ???!



du coup j'ai modifé un peu la structure de mon projet et le problème n'apparait plus :
usf2 était appelé depuis un commandbutton sur usf1 et maintenant il l'est depuis une toobar toujours sur usf1

mais je ne sais toujours pas d'ou vient cet arret non programmé !

si ça vous chante, je vous mets une version allégée en PJ, sinon je classe l'affaire sans suite...
 

Discussions similaires

Réponses
0
Affichages
206

Membres actuellement en ligne

Statistiques des forums

Discussions
312 913
Messages
2 093 535
Membres
105 752
dernier inscrit
fred13340