Formule .FIND dans une autre feuille

ptityoyo

XLDnaute Nouveau
Bonsoir à tous,

Je me retourne une nouvelle fois vers vous afin de trouver de l'aide.
Je possède actuellement une formule VBA de recherche :

If Not Sheets("Feuil1").Range("O1:O13").Find("2") Is Nothing Then OLEObjects("commandbutton2").Enabled = True Else OLEObjects("commandbutton2").Enabled = False

Cependant lorsque je souhaite modifier le cadre de la recherche dans la feuille 2, cela ne marche plus.
Pour cela je change Feuil1 en Feuil2 et à partir de là, je n'ai plus aucune interaction.
j'imagine que le problème proviens de "sheets("feuil2)".

Ci-joint une copie du fichier.

Merci
Cordialement,
 

Pièces jointes

  • Classeur11.xlsm
    43.3 KB · Affichages: 54
  • Classeur11.xlsm
    43.3 KB · Affichages: 51
  • Classeur11.xlsm
    43.3 KB · Affichages: 57

Papou-net

XLDnaute Barbatruc
Re : Formule .FIND dans une autre feuille

Bonsoir ptiyoyo,

En testant ton code comme ci-dessous modifié, tout fonctionne parfaitement :

Code:
Sub Worksheet_Change(ByVal Target As Range)


If Not Sheets("Feuil2").Range("O1:O13").Find("2") Is Nothing Then OLEObjects("commandbutton2").Enabled = True Else OLEObjects("commandbutton2").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("3") Is Nothing Then OLEObjects("commandbutton3").Enabled = True Else OLEObjects("commandbutton3").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("4") Is Nothing Then OLEObjects("commandbutton4").Enabled = True Else OLEObjects("commandbutton4").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("5") Is Nothing Then OLEObjects("commandbutton5").Enabled = True Else OLEObjects("commandbutton5").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("6") Is Nothing Then OLEObjects("commandbutton6").Enabled = True Else OLEObjects("commandbutton6").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("7") Is Nothing Then OLEObjects("commandbutton7").Enabled = True Else OLEObjects("commandbutton7").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("8") Is Nothing Then OLEObjects("commandbutton8").Enabled = True Else OLEObjects("commandbutton8").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("9") Is Nothing Then OLEObjects("commandbutton9").Enabled = True Else OLEObjects("commandbutton9").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("10") Is Nothing Then OLEObjects("commandbutton10").Enabled = True Else OLEObjects("commandbutton10").Enabled = False
If Not Sheets("Feuil2").Range("O1:O13").Find("11") Is Nothing Then OLEObjects("commandbutton11").Enabled = True Else OLEObjects("commandbutton11").Enabled = False

End Sub
Tu peux tester sur la copie de ton fichier ci-jointe ?

Cordialement.
 

Pièces jointes

  • Copie de Classeur11.xlsm
    44 KB · Affichages: 38
  • Copie de Classeur11.xlsm
    44 KB · Affichages: 38

Gelinotte

XLDnaute Accro
Re : Formule .FIND dans une autre feuille

Bonsoir,

On pourrait aussi voir du côté ...

Code:
Sub Worksheet_Change(ByVal Target As Range)
Dim X As Byte

For X = 2 To 11
   If Not Sheets("Feuil2").Range("O1:O13").Find(X) Is Nothing Then OLEObjects("commandbutton" & X).Enabled = True Else OLEObjects("commandbutton" & X).Enabled = False
Next X

End Sub

G
 

ptityoyo

XLDnaute Nouveau
Re : Formule .FIND dans une autre feuille

Re,

Merci pour vos solutions, elle marche très bien.
Cependant je viens de faire une découverte, si pour moi cela ne marcher pas au départ, c'est que la plage de recherche correspond à des cellules avec formules d'où l'apparition du problème.
Y'a t'il possibilité de mettre dans la formule une composante pour que celui-ci cherche le résultat et non les formules.
Car j'imagine qu'en insérant les formules de calcul dans le code VBA, cela doit marcher mais ne doit pas être chose évidente.


Ci-joint le fichier pour visualiser les formules.

Cordialement,
 

Pièces jointes

  • Classeur12.xlsm
    44.1 KB · Affichages: 41
  • Classeur12.xlsm
    44.1 KB · Affichages: 47
  • Classeur12.xlsm
    44.1 KB · Affichages: 45

Mytå

XLDnaute Occasionnel
Re : Formule .FIND dans une autre feuille

Salut le forum

Il suffit d'ajouter un paramètre à ta fonction FIND
Code:
If Not Sheets("Feuil2").Range("H15:H31").Find("N01", LookIn:=xlValues) Is Nothing Then OLEObjects("DF1N01").Enabled = True Else OLEObjects("DF1N01").Enabled = False
Mytå
 

ptityoyo

XLDnaute Nouveau
Re : Formule .FIND dans une autre feuille

Bonjour à tous,

Merci pour vos réponse aussi tardive.
Un grand merci à vous trois j'ai résolu mon petit problème grâce à vous.
Gelinotte, tes solutions sont impeccable surtout celle où tu procède par étapes : désactivation puis activation.
Cela me fait penser à du Grafcet.

Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 689
Membres
103 640
dernier inscrit
So pizza