Problème code VBA "FIND"

Bonjour,

Je n'arrive pas à faire fonctionner ce code avez-vous une idée du problème ?

Sub SitioProd()

Dim Trouve As Range
Dim Valeur_Cherchee As String

'Selection de la feuille Bonbar
Worksheets("BonBar").Select

Valeur_Cherchee = "Donnée cherchée 103"

Set Trouve = Cells.Find(what:=Valeur_Cherchee, After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate

'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
    ' Se place en haut pour la visualisation à l'ouverture et ne fait rien
    Range("A1").Select
Else
    'ici, traitement pour le cas où la valeur est trouvée
    'Une fois la recherche effectué décalage des cellules
    ActiveCell.Offset(-3, 0).Select
    ActiveCell.Offset(0, 1).Select
    'Dans la cellule active mettre "ARIAL COULISSANT (101)"
    ActiveCell.FormulaR1C1 = "COULISSANT (101)"
End If

' Se place en haut pour la visualisation à l'ouverture
Range("A1").Select

End Sub

Merci d'avance

17classeur1.xlsm (16.61 Ko)

Oui : il faut supprimer le .Activate

Set Trouve = Cells.Find(what:=Valeur_Cherchee, After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False)[barrer].Activate[/barrer]

et c'était aussi simple...

Merci beaucoup

Et oui, soit on met la cellule dans une variable, soit on active la cellule, mais on ne fait pas les deux

Oui c'est vrai OUPS.

Par contre autre question du coup ça m'amène sur un autre problème.

Si ma cellule trouvée n'est plus active du coup la suite de mon code ne marche pas vu que celle-ci n'est pas sélectionnée, comment puis-je y remédier svp ?

Sub SitioProd()

Dim Trouve As Range
Dim Valeur_Cherchee As String

'Selection de la feuille Bonbar
Worksheets("BonBar").Select

Valeur_Cherchee = "Donnée cherchée 103"

Set Trouve = Cells.Find(what:=Valeur_Cherchee, After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False)

'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
    ' Se place en haut pour la visualisation à l'ouverture et ne fait rien
    Range("A1").Select
Else
    'ici, traitement pour le cas où la valeur est trouvée
    'Une fois la recherche effectué décalage des cellules
[u]    ActiveCell.Offset(-3, 0).Select
    ActiveCell.Offset(0, 1).Select
    'Dans la cellule active mettre "COULISSANT (101)"
    ActiveCell.FormulaR1C1 = "COULISSANT (101)"[/u]
End If

' Se place en haut pour la visualisation à l'ouverture
Range("A1").Select

End Sub

C'est bon j'ai trouvé après j'ai fait un Trouve.Activate du coup !! Débutante à mort...

Merci à tous et bonne journée !

Ca ne marche pas finalement avec mon Trouve.Activate ou Select ça revient au même, auriez-vous d'autres idées pour que je puisse sélectionner la cellule FIND pour que je puisse remplir ma condition SINON ?

Je vous rejoint le fichier.

Merci

15test.xlsm (16.40 Ko)

J'ai testé le fichier et ça marche correctement. La cellule ou se situe "Donnée cherchée 103" est bien sélectionnée.

Essayer avec ce fichier là, quand il n'y a pas de donnée justement, cela ne fonctionne pas.

12test.xlsm (15.79 Ko)
Sub SitioProd()

Dim Trouve As Range
Dim Valeur_Cherchee As String

'Selection de la feuille Bonbar
Worksheets("BonBar").Select

Valeur_Cherchee = "Donnée cherchée 103"

Set Trouve = Cells.Find(what:=Valeur_Cherchee, After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False)

'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
    ' Se place en haut pour la visualisation à l'ouverture et ne fait rien
    Range("A1").Select
Else
    Trouve.Activate
    'ici, traitement pour le cas où la valeur est trouvée
    'Une fois la recherche effectué décalage des cellules
    ActiveCell.Offset(-3, 0).Select
    ActiveCell.Offset(0, 1).Select
    'Dans la cellule active mettre "COULISSANT (101)"
    ActiveCell.FormulaR1C1 = "COULISSANT (101)"
End If

' Se place en haut pour la visualisation à l'ouverture
Range("A1").Select

End Sub
Rechercher des sujets similaires à "probleme code vba find"