Erreur d'execution 91 sous Excel/VBA

Fermé
Teas - 24 mars 2022 à 14:37
 Teas - 24 mars 2022 à 16:21
Bonjour,
voila j'ai un soucis lors de l'utilisation d'une commande sous vba.
lors que je clique sur le bouton celle si ne fonctionne pas.
Mais si je l’exécute manuellement le bouton fonctionne normalement juste après.

Private Sub CommandButton1_Click()

Dim c As Object

Set c = Sheets("histo cpl D").Range("A1").Find(Sheets("Devis").Range("R17").Value)

If (c.Value = "") Then
MsgBox ("Aucun numéro de devis séléctionner en case R17")
Exit Sub
End If

Dim therow As Integer

therow = c.Row

Sheets("Devis").Range("E5").Value = Sheets("histo cpl D").Cells(therow, 1).Value
Sheets("Devis").Range("E6").Value = Sheets("histo cpl D").Cells(therow, 2).Value
Sheets("Devis").Range("L6").Value = Sheets("histo cpl D").Cells(therow, 3).Value

End sub

J'ai lus que cela venais du fait que ma variable c étais égale a Nothing et qu'il fallait donc testé après le find, mais je ne vois pas comment faire fonctionner cela dès le 1er appuis sur le bouton de commande. Voila si quelqu'un a une soluce Merci.


Configuration: Windows / Firefox 98.0
A voir également:

1 réponse

yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 Ambassadeur 1 556
24 mars 2022 à 16:13
bonjour,
tu ne donnes ni le message d'erreur, ni la ligne sur laquelle l'erreur se produit.

pourquoi ne testes-tu pas le contenu de R17 avant de faire le Find()?

Après le Find(), tu peux tester:
if c is nothing then
0
effectivement mon message manque de précision, excusé moi.
L'erreur interviens directement après la déclaration de Dim therow As Integer
à la ligne therow = c.Row.
Merci pour l'idée de vérifier le contenu de R17 avant de déclaré mes objet cela me permettra peut être de crée moins d'erreur.
0