etoumat
Messages postés54Date d'inscriptionvendredi 2 février 2007StatutMembreDernière intervention 5 juillet 2007
-
9 mars 2007 à 10:45
etoumat
Messages postés54Date d'inscriptionvendredi 2 février 2007StatutMembreDernière intervention 5 juillet 2007
-
9 mars 2007 à 14:01
Bonjour a tous . J'ai un problème avec une gestion d'erreur. A la première erreur tous se passe bien mais à la deuxième erreur j'ai un message du type : "Erreur d'exécution '91': Variable Objet ou variable de bloc with non définie".
Voila mon code :
Public Function intr()
On Error GoTo erreur1
Dim a, b, c, d, i As Integer
Dim aa As String
a = 3
b = Sheets("72").Cells(1, 2)
c = 1
d = 8
i = 2
aa = Sheets("feuil1").Cells(i, 1)
Do Until Sheets("feuil1").Cells(i, 1) = ""
aa = Sheets("feuil1").Cells(i, 1)
Do Until Sheets("72").Cells(a, 1) = ""
Sheets("72").Select
Cells(c, d).Activate
Cells.Find(what:=aa, after:=ActiveCell, LookIn:=xlValues, lookat:= _ -> l'erreur se produit ici
xlPart, searchorder:=xlByColumns, searchdirection:=xlDown).Activate
c = ActiveCell.Row
d = ActiveCell.Column
erreur1:
If Err.Number <> 0 Then
i = i + 1
End If
Err.Clear
Loop
Sheets("72").Select
Cells(1, 8).Select
End Function
La première fois où la propriété find ne trouve pu "what:=aa" Le code va a erreur1: et tous se passe pour le mieu mais la deuxième fois ou la propriété find ne trouve pu "what:=aa" ,qui bien évidemment n'est plus le meme que la première fois, j'ai le message d'erreur cité ci-dessu qui s'affiche. Est -ce que quelqu'un a une idée du problème ? et comment faire pour l'éviter?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 9 mars 2007 à 11:57
Pourquoi un Loop dans la gestion d'erreur ?
Je pense que tu pourrais mettre Resume qui ramènerait à la ligne en erreur (qui ne le serait plus)
Il faudrait peut-être aussi que tu regardes la valeur de la cellule visée dans Sheets("72") lorsque ça plante. Ça pourrait peut-être te donner un début d'explication (?)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 9 mars 2007 à 11:59
Sans absolument rien connaître à VBA (que je n'ai même pas) , je dirais qu'en supprimant (Selection.Delete shift:=xlUp) de haut en bas, tu te fais forcément des "croche-pieds" !
Je te conseille de commencer par la dernière ligne et de remonter, si tu ne veux pas t'en faire, de ces corche-pieds là ...