Rechercher une cellule dans classeur a parti d'un textbox

plouff

XLDnaute Junior
Bonjour a tous.
J'espère que vous allez bien.

J'ai un soucis sur le développement de mon tableau de bord.

Alors voila, j'ai créée un tableau pour suivre mes boursicotages sur les marchés et j'ai plutôt bien avancé, mais je bloque sur un userform qui me permettrai de mettre a jour mes infos a partir d'un numéro de référence.
J'ai dessiné sur mon userform un textbox1 (Numéro de référence a rechercher) textbox2 (évolution, que je souhaite incrémenter dans une cellule qui ce trouve sur la même ligne que le numéro de référence recherché).

J'ai utiliser le mode enregistrement macro pour connaitre le code qui me permet de rechercher ma ref dans mon classeur mais je n'arrive pas a adapter pour mes besoin et le code s'affiche en jaune.*
il s'agit de ce code:
PHP:
Private Sub Quitte_Click()

 'pour trouver la cellule correspondant a la recherche
 
 Sheets("Devise").Select
    Cells.Find(What:=NumeroOrdre.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    
    Sheets("Actions").Select
    Cells.Find(What:=NumeroOrdre.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    
    Sheets("Matière Première").Select
    Cells.Find(What:=NumeroOrdre.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    
    Sheets("Indices").Select
    Cells.Find(What:=NumeroOrdre.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    
    Sheets("Obligations").Select
    Cells.Find(What:=NumeroOrdre.Text, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate


End Sub

Si quelqu'un a une idée pour me sortir de cette panade je suis preneur.
J'ai également du mal a faire le code pour incrémenter l'évolution du cour dans la cellule correspondant a ligne ou ce trouve le numéro de référence.
si je place ce code:

PHP:
cells(ligne, 10)= Textbox2.value

dans ma zone de recherche je ne pense pas qu'il va m'incrémenter l'info dans la bonne cellule.
Il me manque le: dans la cellule correspondant a la ligne de la référence recherché et j'arrive pas a me faire une idée du code qui correspond a cela.

Il y a surement plus simple mais c l'idée que je me fais de ma construction du code.. Pourquoi faire simple quand on peux faire compliqué!! ;)

En tout cas merci a ce qui pourront éclaircir mon idée.

Passez un bon vendredi et surtout un bon weekend!!
Bye:)
 

Lone-wolf

XLDnaute Barbatruc
Re : Rechercher une cellule dans classeur a parti d'un textbox

Bonjour plouf,

et oui, avec l'enregistreur de macro, tu es tombé dans l'eau. ;) :D . Je le répète encore une fois, ne pas trop se fier à l'enregistreur de macro.

Un essai avec ceci, le nom de la feuille de destination à modifier

Code:
Sub Test()
Dim Ws As Worksheet, lig As Integer

For each Ws in Worksheets
Ws.Cells.Find(UserForm1.NumeroOrdre.Text, , xlValues, xlWhole)
If Ws.Name <> "Feuil1" then
Exit Sub
Else
With Feuil1
lig = .Range("a65536").end(xlup).Row +1
.Cells(lig, 10) = Ws.Cells.Offset(0, 0)
End with 
End if
Next Ws
End Sub

Et n'ayant pas le fichier, je ne peux pas tester.


A+ :cool:
 

plouff

XLDnaute Junior
Re : Rechercher une cellule dans classeur a parti d'un textbox

Bonjour Lone-Wolf.

Merci pour ta réponse.

Comme je m'y attendais je me suis mis les 2 pieds dans le beton avant de plonger.. :cool: lol

Je comprend pas tellement ton code mise a part Cells.Find qui appairait deja dans le code que je t'ai envoyé qui doit certainement dire : cherche une cellule.

J'ai mis ton code et j'ai en rouge la ligne: Ws.Cells.Find(UserForm1.NumeroOrdre.Text, , xlValues, xlWhole) avec mon Private Sub Quitte_Click() qui apparait en jaune comme a chaque fois.. :mad:

Pour oles feuille du classeur je peut les mettre toute entre les guillemet?
Je peux pas te mettre en joind le fichier car il est trop lourd 5.9mo. :(

Un grand merci pour ton aide:D

ps: y a t'il un autre moyen de te faire parvenir le fichier?
 

Lone-wolf

XLDnaute Barbatruc
Re : Rechercher une cellule dans classeur a parti d'un textbox

Re,

For each Ws in WorkSheets = Pour chaque feuille du classeur
If Ws.Name = "Feuil1" Then Exit Sub = Si le nom de la feuille est égale à Feuil1, alors arrête la macro sinon pour chaque feuilles recherche les cellules qui correpondent à la Textbox2.

Pour le fichier essaie de le mettre sur Cijoint, tu copie le lien et tu l'insère ici dans le message en inscrivant d'abord FICHIER par exemple. Tu sélectionne le mot et ensuite tu clique sur l'icône Monde en vert-bleu et tu colle le lien.


A+ :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : Rechercher une cellule dans classeur a parti d'un textbox

Re,

un 2ème essai au cas où, à adapter.


Code:
Dim sh As Worksheet
Dim cel As Range
Dim lig As Long
Dim Mot As String
Dim Adresse

Private Sub CommandButton1_Click()

'N° de ligne suivant la cellule d'entête
lig = Sheets("Resultat").Range("a65536").End(xlUp).Row + 1   

'Mot a chercher
Mot = Me.TextBox1.Value
 
'Boucle sur chaque feuille du classeur
For Each sh In Worksheets

    'Ne cherche pas dans la feuille recevant le résultat
   If sh.Name <> "Resultat" Then
 
        'Recherche le mot dans la feuille
       Set cel = sh.Cells.Find(Mot, , xlValues, xlWhole)
        'Si on trouve le mot
       If Not cel Is Nothing Then
            Adresse = cel.Address
    Do
                'Inscription dans la feuille de destination
               Sheets("Resultat").Cells(lig, 1).Value = cel.Offset(0, 0).Value
                'Recherche suivant
               Set cel = sh.Cells.FindNext
            Loop While Not cel Is Nothing And cel.Address <> Adresse
        End If
        On Error Resume Next
'Si texte est différent de Mot alors Message, on efface le texte et on sort de la boucle
If cel <> Mot Then MsgBox "Veuillez répéter votre demande", , "JE N'AI PAS COMPRIS": Me.TextBox1 = "": Exit For
    End If
    Next sh
End Sub

Private Sub TextBox1_AfterUpdate()
For lig = 2 To Sheets("Resultat").Range("a65536").End(xlUp).Row
'Si texte est égal à Mot, Message, on efface la Textbox et on sort de la boucle
If Sheets("Resultat").Range("a" & lig).Value = Me.TextBox1 Then
MsgBox Mot & "  est déjà inscrit dans la base.", , "C'EST BÊTE"
Me.TextBox1 = ""
       Exit For
       End If
       Next lig
End Sub



A+ :cool:
 
Dernière édition:

plouff

XLDnaute Junior
Re : Rechercher une cellule dans classeur a parti d'un textbox

Bonjour Lone-wolf.
Comment va tu?

Bon j'ai traîner a répondre weekend oblige lol
J’espère que le tien ce passe bien?

Alors je t'envoi le lien comme tu me le disais par le biais de cijoint.
Je vais regarder le code que tu ma envoyé et tester voir si cela fonctionne.

fichier

Je te souhaite un bon dimanche et te remercie encore pour ton aide.
Bye
 

Discussions similaires