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

Pb Sur La Recuperation D'une Valeur

  • Initiateur de la discussion Initiateur de la discussion callou
  • Date de début Date de début

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 !

C

callou

Guest
Bonjour,

Je débute en vba et je rencontre un problème dans une macro pour récupérer une valeur sur la recherche afin de repartir de celle-ci et de continuer la recherche.

Comme le fait le Ctrl F de Excel. (Ex:Citron -->avec Suivant on passe à toutes les valeurs pouvant contenir Citron)

Voilà ma Macro (Attention Indulgence c'est pas du Pro...)

Merci d'avance.

Le code est placer dans Sub Button_Rechercher de mon UserForm

' Recherche de la donnée puis selection de la ligne si donnée trouvée

Dim x As Long
ActiveSheet.Activate

' On recherche dans la Ligne 1 colonne A, si la case contient la même valeur que notre champ de recherche
For x = 4 To Range("A65535").End(xlUp).Row
If UCase(Range("A" & x)) Like "*" & UCase(UserForm2.Désignation.Value) & "*" Then
' Si on a trouvé on va à "Trouve"
GoTo Trouve
Exit For
End If

' Si rien dans le champ de saisie

If UserForm2.Désignation.Text = "" Then
MsgBox "Vous devez saisir une Recherche", vbCritical
End If

' Sinon on passe à la ligne suivante
Next x

' Si on ne trouve rien, on va à "Erreur"
GoTo Erreur
Exit Sub
' Recherche trouvée, on retrouve notre programme pour charger le formulaire

Trouve: LigneActive = x

UserForm2.Désignation.Value = ActiveSheet.Cells(LigneActive, "A").Value
UserForm2.Entrée.Value = ActiveSheet.Cells(LigneActive, "D").Value
UserForm2.Puht.Value = ActiveSheet.Cells(LigneActive, "E").Value
UserForm2.Pvte.Value = ActiveSheet.Cells(LigneActive, "G").Value
UserForm2.Dlc.Value = ActiveSheet.Cells(LigneActive, "J").Value
UserForm2.TextBox_Stock.Value = ActiveSheet.Cells(LigneActive, "F").Value
UserForm2.TextBox_Etat.Value = ActiveSheet.Cells(LigneActive, "I").Value
UserForm2.TextBox_Sortie.Value = ActiveSheet.Cells(LigneActive, "H").Value

Exit Sub

' Message d'erreur

Erreur: MsgBox ("Requête non trouvée !"), vbRetryCancel + vbExclamation

'Décharge nouvelle recherche'
If Response = Retry Then

Désignation.Text = ""
Entrée.Text = ""
Puht.Text = ""
Pvte.Text = ""
Dlc.Text = ""
TextBox_Stock = ""
TextBox_Etat = ""
TextBox_Sortie = ""

Désignation.SetFocus

End If

End Sub
 
Re : Pb Sur La Recuperation D'une Valeur

Bonjour à tous,

callou à dit:
Comme le fait le Ctrl F de Excel. (Ex:Citron -->avec Suivant on passe à toutes les valeurs pouvant contenir Citron)

Je ne comprends pas bien ta question car tes positions sont bien présentes pour repartir.

Tu nous dis débuter et si je puis me permettre, les goto étaient de régle en cobol mais si tu débutes en langage actuel, essaies d'éviter de les utiliser.

Tu auras plus d'ennuis avec, que de facilités et ce serait dommage de commencer avec de vieilles habitudes obsolètes, même si elles sont autorisées.

En espérant avoir compris et sans beaucoup changer :

Code:
Sub Button_Rechercher()
' Recherche de la donnée puis selection de la ligne si donnée trouvée
Dim x As Long
ActiveSheet.Activate
' Si rien dans le champ de saisie

If UserForm2.Désignation.Text = "" Then
            MsgBox "Vous devez saisir une Recherche", vbCritical
            Exit Sub
End If
' On recherche dans la Ligne 1 colonne A, si la case contient la même valeur que notre champ de recherche
For x = 4 To Range("A65535").End(xlUp).Row
    If UCase(Range("A" & x)) Like "*" & UCase(UserForm2.Désignation.Value) & "*" Then
' Si on a trouvé on va à "Trouve"
' Recherche trouvée, on retrouve notre programme pour charger le formulaire
'Trouve: LigneActive = x
        UserForm2.Désignation.Value = ActiveSheet.Cells(LigneActive, "A").Value
        UserForm2.Entrée.Value = ActiveSheet.Cells(LigneActive, "D").Value
        UserForm2.Puht.Value = ActiveSheet.Cells(LigneActive, "E").Value
        UserForm2.Pvte.Value = ActiveSheet.Cells(LigneActive, "G").Value
        UserForm2.Dlc.Value = ActiveSheet.Cells(LigneActive, "J").Value
        UserForm2.TextBox_Stock.Value = ActiveSheet.Cells(LigneActive, "F").Value
        UserForm2.TextBox_Etat.Value = ActiveSheet.Cells(LigneActive, "I").Value
        UserForm2.TextBox_Sortie.Value = ActiveSheet.Cells(LigneActive, "H").Value
        Exit Sub
    End If
' Sinon on passe à la ligne suivante
Next x

' Si on ne trouve rien, on va à "Erreur"
' Message d'erreur
'Erreur:
MsgBox ("Requête non trouvée !"), vbRetryCancel + vbExclamation
'Décharge nouvelle recherche'
If Response = Retry Then
    Désignation.Text = ""
    Entrée.Text = ""
    Puht.Text = ""
    Pvte.Text = ""
    Dlc.Text = ""
    TextBox_Stock = ""
    TextBox_Etat = ""
    TextBox_Sortie = ""
    Désignation.SetFocus
End If
End Sub

Tous les goto en commentaire et cela devrait faire de même...

Précise un peu ton problème pour t'aider.
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Pb avec Windows
Réponses
47
Affichages
3 K
A
Réponses
1
Affichages
1 K
V
Réponses
17
Affichages
3 K
VBgalère
V
M
Réponses
11
Affichages
2 K
Melidan2006
M
A
Réponses
0
Affichages
881
Ana30255
A
C
Réponses
2
Affichages
2 K
C
K
Réponses
2
Affichages
2 K
kwameviagbo
K
M
Réponses
2
Affichages
1 K
M
Réponses
9
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…