Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1617 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Forcer un Debug incohérent

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Forcer un Debug incohérent

n°2018911
saiboht
Posté le 25-08-2010 à 12:38:52  profilanswer
 

Bonjour à tous, ma question concerne un problème sous VBA :  
 
En créant un TCD, il me sort une erreur 1004 : "Référence non valide". Seulement, cette erreur n'est pas bloquante. Je reclique sur éxécuter, et il éxecute le code correctement (et je suppose qu'il repasse sur la portion "bugguée", cette fois avec succès).  
Le truc, c'est que des programmes avec des TCD, j'en ai des centaines, et tous construits pareils. Et j'ai ce bug nul par ailleurs, juste ici.  
Ci-dessous : un code qui ne bug pas, et celui qui bug.
 
Pas de bug :  
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Feuil1!R1C1:R" & nbline & "C" & nbcol).CreatePivotTable TableDestination:= _
        "'tableau age'!R1C1", TableName:= _
        "Tableau croisé dynamique", DefaultVersion:=xlPivotTableVersion10
 
Bug :  
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Feuil1!R1C1:R" & nbline & "C" & nbcol).CreatePivotTable TableDestination:= _
        "'tableau anc'!R1C1", TableName:= _
        "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
 
 
Ma question est donc : y a t-il un moyen de forcer le debug ? J'ai essayé avec toutes les variantes de "On error...", ça ne marche pas. Ou y a t-il une correction à apporter à mon code pour qu'il fonctionne à tous les coups, et non pas seulement quand il veut.  
 
Merci d'avance !

mood
Publicité
Posté le 25-08-2010 à 12:38:52  profilanswer
 

n°2018927
Arwon
Posté le 25-08-2010 à 13:54:03  profilanswer
 

Hello,
 
l'erreur peut provenir des variables nbline et nbcol si elles sont égales à 0.
 
sinon pour ignorer toute erreur qui peut rsurvenir : "On Error Resume Next" avant la procédure qui bug.
 
si tu traiter l'erreur : "On Error Goto ..." mais la faudra penser a finir par un "Resume" pour que si le code plante plus tard, qu'il repasse par le traitement de l'erreur.

n°2018945
saiboht
Posté le 25-08-2010 à 14:21:04  profilanswer
 

Nbline et nbcol ne sont pas égales à 0. Grosso modo, c'est un copié collé d'un programme précédent, que j'ai adapté : le premier sort des graphiques d'âge (pas de bug) et le deuxième d'ancienneté (bug). Mais nbline et nbcol sont les mêmes dans les deux programmes. Qui plus est, si elles étaient égales à 0, l'erreur serait "bloquante".  
 
On error resume next ne marche pas, car le code "buggé" ne s'execute pas, alors qu'il doit l'être (si il ne s'execute pas, le TCD ne se créé pas).  
On error goto ... resume next, ne marche pas non plus, ça me fait exactement la même chose que si je ne l'avais pas mis.  
 
Ce qui est vraiment bizarre dans mon problème, c'est que sur "100" TCD construits pareils, il y en a que 1 qui bug. Et qui ne bug pas vraiment en fait, psk l'erreur n'est pas bloquante.

n°2019063
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 26-08-2010 à 10:09:03  profilanswer
 

Salut,
 
  Pour forcer le debug, tu peux coller un point d'arret (en cliquant dans la marge, juste avant la ligne suspecte, puis faire du pas à pas par F8.
 
  Tu peux aussi afficher le contenu de tes variables par la methode debug.print. Le résultat s'affiche dans la fenetre execution (CTRL-G).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Forcer un Debug incohérent

 

Sujets relatifs
Erreur 1004 VBA[VBA] Test de chaine de caractère sur une collection
Tableau croisé dynamique VBAConversion de type c pour une utilisation de dll VBA
VBA - Userform - Pb de superposition des images et des labels[VBA/Excel] - Envoyer une selection variable dans une sous fonction ?
VBA Sélection aléatoire dans listeVBA pour copier une cellule a une date determine chaque mois
VBA pour sauvegarde nom cellule sur excel 
Plus de sujets relatifs à : [VBA] Forcer un Debug incohérent


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR