Créer une macro de recherche avec un bouton et un UserForm

Fermé
Dim_log Messages postés 5 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 29 janvier 2015 - 9 janv. 2015 à 14:26
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 12 janv. 2015 à 17:54
Bonjour,

Étant novice sur Excel, je viens vous demander de l'aide, mon problème est le suivant :
- J'ai un fichier Excel avec dans une colonne des adresses qu'avec des chiffres et dans une autre colonne des numéros de palettes (uniquement des chiffres aussi)
-J'aimerais créer un bouton qui m'ouvre un UserForm ou je rentre un numéro de palette, puis j'appuie sur entrée et la j'aimerais qu'un MsgBox apparait avec l'adresse ou se situe la palette.
-Tout d'abord, j'aimerais savoir si c'est possible.
-Si c'est possible j'aimerais qu'on m'aide pour le code sur VB, car je sais créer le bouton, l'UserForm et le MsgBox mais je ne sais pas coder le tout.

En vous remerciant d'avance pour l'aide et le temps que vous me consacrez.

9 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
9 janv. 2015 à 17:12
Bonjour,

Mettre dans l'userForm 2 boutons et 2 textBox avec ce code:

Option Explicit
Private Sub CommandButton1_Click()
Cherche_adresse
End Sub
Sub Cherche_adresse()
'déclaration des variables :
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String

'********* à adapter ***********
'affectation de valeurs aux variables :
    'on cherche le mot
Valeur_Cherchee = TextBox1.Text
    'dans la première colonne de la feuille active
Set PlageDeRecherche = ActiveSheet.Columns(1) 'colonne A
'*******************************

'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
    'ici, traitement pour le cas où la valeur n'est pas trouvée
    AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
    'ici, traitement pour le cas où la valeur est trouvée
    AdresseTrouvee = Trouve.Address
End If
MsgBox AdresseTrouvee
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub
Private Sub CommandButton2_Click()
Cherche_palette
End Sub
Sub Cherche_palette()
'déclaration des variables :
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String

'********* à adapter ***********
'affectation de valeurs aux variables :
    'on cherche le mot
Valeur_Cherchee = TextBox2.Text
    'dans la première colonne de la feuille active
Set PlageDeRecherche = ActiveSheet.Columns(2) 'colonne B
'*******************************

'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
    'ici, traitement pour le cas où la valeur n'est pas trouvée
    AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
Else
    'ici, traitement pour le cas où la valeur est trouvée
    AdresseTrouvee = Trouve.Address
End If
MsgBox AdresseTrouvee
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub


adapter les colonnes
1