Joyeuses P=E2ques =E0 tou(te)s ! Les cloches soient avec vous :-))
Ma question du jour !!
si je fais ceci :
On Error Resume Next
If IsEmpty(.Range("On_Stock").Find(ActiveCell.Value, , , xlPart))
Then
je ne rentre pas dans la partie "Then", m=EAme si la valeur de
l'activecell n'est pas trouv=E9e dans le range
Par contre, si je fais ceci :
test =3D .Range("On_Stock").Find(ActiveCell.Value, , , xlPart)
If IsEmpty(test) Then
je passe bien par la partie "Then"
Si quelqu'un a une explication........ Merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
A ) tu gagnerais à expliquer ce que tu tentes de faire...
B ) Si la cellule active est vide et que dans la plage "On_Stock", tu as au moins une cellule vide, tu entreras dans le Then , une façon de dire que la cellule que la méthode Find a trouvée est vide...
C ) Si la cellule active contient une valeur qui ne se retrouve pas dans la plage "On_Stock" cela devrait générer une erreur 91. Cependant comme tu as mis en début de procédure "On Error Resume Next, le message d'erreur n'apparaît pas, mais comme la méthode n'a rien trouvé, elle ne retourne "rien" et la variable "test" est vide
Ce type de code est plus efficace, '-------------------------------------- Sub Test1() Dim Trouve As Range
With Sheets("sheet1")'Nom Feuille à adapter Set Trouve = .Range("On_Stock").Find(ActiveCell.Value, , , xlPart) If Trouve Is Nothing Then 'Si la méthode n'a rien trouvée, MsgBox "Aucune valeur trouvée correspondante." Else MsgBox "La cellule trouvée : " & Trouve.Address _ & vbCrLf & "La valeur de la cellule : " & Trouve.Value End If End With End Sub '--------------------------------------
A ) tu gagnerais à expliquer ce que tu tentes de faire...
B ) Si la cellule active est vide et que dans la plage "On_Stock", tu as au moins
une cellule vide, tu entreras dans le Then , une façon de dire que la cellule que
la méthode Find a trouvée est vide...
C ) Si la cellule active contient une valeur qui ne se retrouve pas dans la plage "On_Stock"
cela devrait générer une erreur 91. Cependant comme tu as mis en début de
procédure "On Error Resume Next, le message d'erreur n'apparaît pas, mais
comme la méthode n'a rien trouvé, elle ne retourne "rien" et la variable "test" est vide
Ce type de code est plus efficace,
'--------------------------------------
Sub Test1()
Dim Trouve As Range
With Sheets("sheet1")'Nom Feuille à adapter
Set Trouve = .Range("On_Stock").Find(ActiveCell.Value, , , xlPart)
If Trouve Is Nothing Then
'Si la méthode n'a rien trouvée,
MsgBox "Aucune valeur trouvée correspondante."
Else
MsgBox "La cellule trouvée : " & Trouve.Address _
& vbCrLf & "La valeur de la cellule : " & Trouve.Value
End If
End With
End Sub
'--------------------------------------
A ) tu gagnerais à expliquer ce que tu tentes de faire...
B ) Si la cellule active est vide et que dans la plage "On_Stock", tu as au moins une cellule vide, tu entreras dans le Then , une façon de dire que la cellule que la méthode Find a trouvée est vide...
C ) Si la cellule active contient une valeur qui ne se retrouve pas dans la plage "On_Stock" cela devrait générer une erreur 91. Cependant comme tu as mis en début de procédure "On Error Resume Next, le message d'erreur n'apparaît pas, mais comme la méthode n'a rien trouvé, elle ne retourne "rien" et la variable "test" est vide
Ce type de code est plus efficace, '-------------------------------------- Sub Test1() Dim Trouve As Range
With Sheets("sheet1")'Nom Feuille à adapter Set Trouve = .Range("On_Stock").Find(ActiveCell.Value, , , xlPart) If Trouve Is Nothing Then 'Si la méthode n'a rien trouvée, MsgBox "Aucune valeur trouvée correspondante." Else MsgBox "La cellule trouvée : " & Trouve.Address _ & vbCrLf & "La valeur de la cellule : " & Trouve.Value End If End With End Sub '--------------------------------------
Toujours fidèle au poste !! A) Disons que j'avais plus besoin de pédagogie que de solution......! Dans ce cas précis, pour une petite appli interne de gestion de stock, depuis une commande d'achat, je teste si ma référence (activecell) est en stock; si oui, j'ajoute sur la ligne de la feuille stock le N° de commande et la qté commandée, sinon j'ajoute la ligne à ma feuille stock. Voili voilà ! B) Mon activecell ne peut être vide (testé dans la boucle qui parcourt ma commande d'achat). C) C'est que j'avais constaté ! D) Comme d'hab, ton code est efficace :-))
Merci pour la leçon :-))))))))
ThierryP
On 24 avr, 16:10, "MichD" wrote:
Bonjour,
A ) tu gagnerais à expliquer ce que tu tentes de faire...
B ) Si la cellule active est vide et que dans la plage "On_Stock", tu as au moins une cellule vide, tu entreras dans le Then , une façon de dire que la c ellule que la méthode Find a trouvée est vide...
C ) Si la cellule active contient une valeur qui ne se retrouve pas dans la plage "On_Stock" cela devrait générer une erreur 91. Cependant comme tu as mis en dé but de procédure "On Error Resume Next, le message d'erreur n'apparaît pas, mais comme la méthode n'a rien trouvé, elle ne retourne "rien" et la varia ble "test" est vide
Ce type de code est plus efficace, '-------------------------------------- Sub Test1() Dim Trouve As Range
With Sheets("sheet1")'Nom Feuille à adapter Set Trouve = .Range("On_Stock").Find(ActiveCell.Value, , , xlPa rt) If Trouve Is Nothing Then 'Si la méthode n'a rien trouvée, MsgBox "Aucune valeur trouvée correspondante." Else MsgBox "La cellule trouvée : " & Trouve.Address _ & vbCrLf & "La valeur de la cellule : " & Trouve.Value End If End With End Sub '--------------------------------------
Toujours fidèle au poste !!
A) Disons que j'avais plus besoin de pédagogie que de solution......!
Dans ce cas précis, pour une petite appli interne de gestion de stock,
depuis une commande d'achat, je teste si ma référence (activecell) est
en stock; si oui, j'ajoute sur la ligne de la feuille stock le N° de
commande et la qté commandée, sinon j'ajoute la ligne à ma feuille
stock. Voili voilà !
B) Mon activecell ne peut être vide (testé dans la boucle qui parcourt
ma commande d'achat).
C) C'est que j'avais constaté !
D) Comme d'hab, ton code est efficace :-))
Merci pour la leçon :-))))))))
ThierryP
On 24 avr, 16:10, "MichD" <michde...@hotmail.com> wrote:
Bonjour,
A ) tu gagnerais à expliquer ce que tu tentes de faire...
B ) Si la cellule active est vide et que dans la plage "On_Stock", tu as au moins
une cellule vide, tu entreras dans le Then , une façon de dire que la c ellule que
la méthode Find a trouvée est vide...
C ) Si la cellule active contient une valeur qui ne se retrouve pas dans la plage "On_Stock"
cela devrait générer une erreur 91. Cependant comme tu as mis en dé but de
procédure "On Error Resume Next, le message d'erreur n'apparaît pas, mais
comme la méthode n'a rien trouvé, elle ne retourne "rien" et la varia ble "test" est vide
Ce type de code est plus efficace,
'--------------------------------------
Sub Test1()
Dim Trouve As Range
With Sheets("sheet1")'Nom Feuille à adapter
Set Trouve = .Range("On_Stock").Find(ActiveCell.Value, , , xlPa rt)
If Trouve Is Nothing Then
'Si la méthode n'a rien trouvée,
MsgBox "Aucune valeur trouvée correspondante."
Else
MsgBox "La cellule trouvée : " & Trouve.Address _
& vbCrLf & "La valeur de la cellule : " & Trouve.Value
End If
End With
End Sub
'--------------------------------------
Toujours fidèle au poste !! A) Disons que j'avais plus besoin de pédagogie que de solution......! Dans ce cas précis, pour une petite appli interne de gestion de stock, depuis une commande d'achat, je teste si ma référence (activecell) est en stock; si oui, j'ajoute sur la ligne de la feuille stock le N° de commande et la qté commandée, sinon j'ajoute la ligne à ma feuille stock. Voili voilà ! B) Mon activecell ne peut être vide (testé dans la boucle qui parcourt ma commande d'achat). C) C'est que j'avais constaté ! D) Comme d'hab, ton code est efficace :-))
Merci pour la leçon :-))))))))
ThierryP
On 24 avr, 16:10, "MichD" wrote:
Bonjour,
A ) tu gagnerais à expliquer ce que tu tentes de faire...
B ) Si la cellule active est vide et que dans la plage "On_Stock", tu as au moins une cellule vide, tu entreras dans le Then , une façon de dire que la c ellule que la méthode Find a trouvée est vide...
C ) Si la cellule active contient une valeur qui ne se retrouve pas dans la plage "On_Stock" cela devrait générer une erreur 91. Cependant comme tu as mis en dé but de procédure "On Error Resume Next, le message d'erreur n'apparaît pas, mais comme la méthode n'a rien trouvé, elle ne retourne "rien" et la varia ble "test" est vide
Ce type de code est plus efficace, '-------------------------------------- Sub Test1() Dim Trouve As Range
With Sheets("sheet1")'Nom Feuille à adapter Set Trouve = .Range("On_Stock").Find(ActiveCell.Value, , , xlPa rt) If Trouve Is Nothing Then 'Si la méthode n'a rien trouvée, MsgBox "Aucune valeur trouvée correspondante." Else MsgBox "La cellule trouvée : " & Trouve.Address _ & vbCrLf & "La valeur de la cellule : " & Trouve.Value End If End With End Sub '--------------------------------------