Vba: erreur 91, variable non défini ou variable de bloc with

Résolu/Fermé
Koj27 Messages postés 5 Date d'inscription lundi 28 juillet 2014 Statut Membre Dernière intervention 28 juillet 2014 - 28 juil. 2014 à 12:37
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 1 août 2014 à 10:39
Bonjour,

Première apparition pour ma part sur un forum. Je pratique un peu le vba depuis quelques temps et je suis complètement bloqué.

Actuellement, je travaille sur la mise en place d'une gestion de stock par l'intermédiaire de vba. J'ai 2 fichiersexcels , l'un est le stock register (rassemble une page par type de matériel) et l'autre me permet de créer des "voucher" ou "commande" pour ce stock.
Lorsque je créer une commande à partir d'un format type (page excel), je l'enregistre sous un nouveau nom et doit par la suite faire suivre les informations sur le fichier principal.

Mon problème est que lorsque je clique sur le pushbuton, la macro indique l'erreur "91", cependant, si je vais dans la macro et l'exécute pas à pas, cela se passe niquel.. Je bloque depuis plusieurs jour et ne comprends pas le comment du pourquoi ?

Voici mon code :

Sub Search()

Dim numbersheet3 As String
Dim numvoucher2 As String
Dim issued1 As Integer
Dim returned1 As Integer
Dim derlign3 As Integer
Dim quantity4 As String
Dim Vouch As String, nom3 As String
Dim Num As String
Dim Nulig1 As Integer
Dim celluletrouvee As Variant

Vouch = Range("C5").Value
Num = Range("D5").Value
nom3 = ActiveWorkbook.Name
numbersheet3 = Workbooks(nom3).Sheets(1).Range("D8").Value
numvoucher2 = Workbooks(nom3).Sheets(1).Range("D5").Value
issued1 = Workbooks(nom3).Sheets(1).Range("H8").Value
returned1 = Workbooks(nom3).Sheets(1).Range("I8").Value
derlign3 = Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("H" & Rows.Count).End(xlUp).Row + 1
quantity4 = Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("H65000").End(xlUp)

With Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Columns("C:C")
Set celluletrouvee = .Find(Workbooks(nom3).Sheets(1).Range("D5").Value, LookIn:=xlValues, Lookat:=xlWhole)
End With

On Error GoTo saut

Nulig1 = celluletrouvee.Row

Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("C" & Nulig1) = numvoucher2
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("E" & Nulig1) = issued1
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("F" & Nulig1) = returned1
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("A" & Nulig1) = Date
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("H" & Nulig1) = quantity4 - issued1 + returned1

GoTo saut2

saut:

Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("C" & derlign3) = numvoucher2
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("E" & derlign3) = issued1
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("F" & derlign3) = returned1
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("A" & derlign3) = Date
Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Range("H" & derlign3) = quantity4 - issued1 + returned1

saut2:

End Sub

Je pense que c'est une histoire de lien entre les 2 fichiers.. (les deux sont ouverts dans une même instance pourtant.

Je vous remercie par avance pour votre aide.

4 réponses

skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
28 juil. 2014 à 14:00
Bonjour

Pourquoi tu utilises un With ici ?

With Workbooks("Inventory tool.xlsm").Sheets(numbersheet3).Columns("C:C")
Set celluletrouvee = .Find(Workbooks(nom3).Sheets(1).Range("D5").Value, LookIn:=xlValues, Lookat:=xlWhole)
End With
0