MilkaQuercy
XLDnaute Nouveau
Bonjour,
Cette erreur m'empêche d'avancer.
Je suis novice en VBA, jusqu'à aujourd'hui, je me suis débrouillé avec des formules Excel pour arriver à mes fins. Cependant c'est devenu inévitable.
Je m'y suis donc mis, je recherche tout ce dont j'ai besoin sur des forums et donc je fais pas mal de copier/coller.
Le code ci-dessous me permet d'identifier une ligne grâce à une valeur unique dans la première colonne puis de supprimer cette ligne.
J'ai utilisé ce code via un formulaire pour renseigner un tableau simple (2 colonnes).
J'ai ensuite fabriqué un formulaire sur un onglet pour renseigner un tableau plus complexe.
Cette erreur m'identifie la ligne "find". Ce qui me rend le diagnostic compliqué c'est que l'erreur s'est déjà affichée, j'ai ajouté en amont de la ligne MsgBox "Sheets("Machine").Activate", ça a résolu le problème temporairement. Puis ça a réapparu sans que je sache pourquoi. J'ai tenté de le remettre puis l'enlever, sans succés.
J'ai le même problème avec une autre fonction (Modifier au lieu de supprimer)
C'est toujours la ligne Find qui me pose problème.
J'ai essayé en déclarant une variable As Range. Comme cette formule (ci-dessous) que j'utilise pour supprimer toutes les lignes contenant la valeur que je souhaite supprimer avec le premier code ci-dessus. Sans succés nons plus.
Je vous joint le fichier. Aucune données confidentielles
Il s'agit d'une base de données pour répertorier des machines, machines constituées de modules, sur lesquels nous appliquons des variantes...
Je rencontre le problème sur le premier formulaire sur le premier onglet. La fonction "Add" a toujours fonctionné, la fonction "Modify" & "Delete" ont fonctionné mais ne fonctionnent plus.
Si vous réussissez à m'aider, merci par avance.
Cette erreur m'empêche d'avancer.
Je suis novice en VBA, jusqu'à aujourd'hui, je me suis débrouillé avec des formules Excel pour arriver à mes fins. Cependant c'est devenu inévitable.
Je m'y suis donc mis, je recherche tout ce dont j'ai besoin sur des forums et donc je fais pas mal de copier/coller.
Le code ci-dessous me permet d'identifier une ligne grâce à une valeur unique dans la première colonne puis de supprimer cette ligne.
J'ai utilisé ce code via un formulaire pour renseigner un tableau simple (2 colonnes).
J'ai ensuite fabriqué un formulaire sur un onglet pour renseigner un tableau plus complexe.
VB:
Sub Delete_Machine()
Set Ws = Worksheets("Home")
Set WsMachine = Worksheets("Machine")
ExistingMachine = Ws.Cells(7, 7)
If ExistingMachine = "" Then
Exit Sub
End If
WsMachine.Activate
If MsgBox("Do you confirm the removal?", vbYesNo, "Confirmation Request") = vbYes Then
[COLOR=rgb(250, 197, 28)] Rows([A2:A1048576].Find(ExistingMachine).Row).EntireRow.Delete[/COLOR]
End If
'Search Existing Machine in Machine WorkSheet then delete the line
End Sub
J'ai le même problème avec une autre fonction (Modifier au lieu de supprimer)
Code:
Sheets("Machine").Activate
If MsgBox("Do you confirm the modification?", vbYesNo, "Confirmation Request") = vbYes Then
L = Cells.Find(ExistingMachine, , , , xlByRows, xlPrevious).Row
WsMachine.Range("K" & L) = NewInd
End If
J'ai essayé en déclarant une variable As Range. Comme cette formule (ci-dessous) que j'utilise pour supprimer toutes les lignes contenant la valeur que je souhaite supprimer avec le premier code ci-dessus. Sans succés nons plus.
Code:
Do
Set rng = WsMacMod.Range("C:C").Find(ExistingMachine)
If rng Is Nothing Then
Exit Do
Else
WsMacMod.Rows(rng.Row).Delete
End If
Loop
'Search all lines with Existing Machine in Machine_Module WorkSheet then delete lines
Il s'agit d'une base de données pour répertorier des machines, machines constituées de modules, sur lesquels nous appliquons des variantes...
Je rencontre le problème sur le premier formulaire sur le premier onglet. La fonction "Add" a toujours fonctionné, la fonction "Modify" & "Delete" ont fonctionné mais ne fonctionnent plus.
Si vous réussissez à m'aider, merci par avance.