Vba: erreur 91, variable non défini ou variable de bloc with
Résolu
Koj27
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
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.
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.
A voir également:
- Erreur 91 vba
- +33 9 48 20 91 54 ✓ - Forum Mobile
- Erreur 3005 france tv - Forum TV & Vidéo
- Incompatibilité de type vba ✓ - Forum Programmation
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows