Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

KyFranRD

XLDnaute Occasionnel
bonjour

quelqu'un pourrait il m'indiquer le code basé à partir de Find permettant permettant de trouver et d'activer une cellule décalé de la cellule active.

La valeur par ex se situe dans la plage ("G6:G14")

Cells.Find(What:=textbox2, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) _
.Activate




J'ai testé avec :

Range("G6:G14").Find(What:=temp, After:=Range("G" & ActiveCell.Row), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate


ça fonctionne mais est-ce correct? Juste pour vérifier avant de l'adapter à mon fichier et éviter les futurs erreurs.

Merci
 
Re : Fonction Find.

Bonjour,

IL faudrait nous dire ce qu'il y dans ton textbox et dans ta plage de cellules.

Je ne serais pas surpris si le contenu du textbox était une date...

Sois plus explicite, dis-nous ce que tu cherches (valeur du textbox) et
ce qu'il y a dans la plage de cellules incluant le format au besoin.
 
Re : Fonction Find.

Bonsoir le fil, bonsoir le forum,

En plus de la remarque de MichD, j'ajoute que ce genre de code ne doit être employé que si tu es sûr à 100% de trouver au moins une une occurrence de temp dans la plage G6:G14 sinon c'est le plantage. De plus si la cellule active ne se trouve pas dans les lignes 6 à 14, c'est aussi le plantage...
Pour éviter'cela tu porrais faire :
Code:
Dim r As Range
Set r = Range("G6:G14").Find(temp, ,xlFormulas, xlPart) 'ou xlValues à la place de xlFormulas
If Not r Is Nothing Then 
   r.Activate
Else
  MsgBox "Donnés inexistante !"
End If
 
Dernière édition:
Re : Fonction Find.

Bonjour MichD, Robert

Il y a des nombres entiers dans textbox2 et dans la plage ("G6:G14").

Avant de tester la solution de Robert, pourriez-vous m'indiquer pourquoi lorsque la valeur a rechercher est par ex 2 (textbox2), et que dans la plage G6:G14 se trouve les valeurs 2 et 952. A ce moment là ce n'est pas la cellule valeur 2 qui s’active, mais la cellule valeur 952.


J'ai constaté que la recherche se fait de haut en bas dans la plage G6:G14. Si 952 se place avant 2, la cellule valeur 952 s'active. Si je place manuellement le 2 dans la plage G6:G14 avant 952, alors là c'est bien la cellule valeur 2 qui s'active. Comment faire pour que la recherche se fasse non pas de haut en bas, mais sur l'ensemble de la plage? Pourquoi la recherche ne se fait pas sur la valeur totale? Cela prend en compte le 2 de 952 ????

voilà la partie de code >>>> Range("G6:G14").Find(Temp, , xlValues, xlPart) _

.Activate

J’espère avoir été clair. Ce n'est pas mon fort en général. lol

En attendant je teste votre solution Robert. Merci
 
Dernière édition:
Re : Fonction Find.


merci Robert

J'ai testé votre solution, mais je me retrouve avec le même soucis. Si je recherche 2, la première cellule où se trouve un 2 s'active. Même si la valeur est par ex 952 ????

Cordialement
 
Re : Fonction Find.

merci Robert

J'ai testé votre solution, mais je me retrouve avec le même soucis. Si je recherche 2, la première cellule où se trouve un 2 s'active. Même si la valeur est par ex 952 ????

Cordialement

Je viens de chercher sur le net et j'ai trouvé LookAt:= xlWhole >>>> ça a l'air de fonctionner. Je teste sur mon fichier d'origine sur une plage plus importante.
 
Re : Fonction Find.

Bonjour,


VB:
Dim X As Variant, Trouve As Range

If isnumeric(Me.textbox2) Then
   X = Me.textbox2.Value  
           With Worksheets("Feuil1") 'Nom de la feuille à adapter
        With Range("A1:A10") 'Plage de cellules à adapter
            Set Trouve = .Find(What:=x, LookIn:=xlFormulas, _
                LookAt:=xlWhole, SearchOrder:=xlByColumns, _
                SearchDirection:=xlNext, MatchCase:=False)
            If Not Trouve Is Nothing Then
                Trouve.Select
            Else
                MsgBox "La valeur n'a pas été trouvée."
            End If
        End With
    End With
End If
 
Dernière édition:
Re : Fonction Find.


Bonjour MichD

Merci bien pour ce code.

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
547
Réponses
3
Affichages
568
Réponses
12
Affichages
906
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…