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

XL 2013 Recherche avec fenetre

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 !

Moreno076

XLDnaute Impliqué
Bonjour à tous.

Dans le fichier ci-joint, je souhaite que lorsqu'il s'ouvre il propose une fenetre de recherche demandant un code article et faire OK.
Si le code article se trouve dans la colonne A, alors il met "Fiche retirée en semaine "puis recopie la colonne I ce qui ferait Fiche retirée en S46 par exemple.
Si le code ne se trouve pas dans la colonne A alors "Fiche non présente".
Et si possible avoir la possibilité de fermer la boite de dialogue pour pouvoir rajouter des lignes dans le fichier.

Merci pour votre aide.
 

Pièces jointes

Solution
Bonsoir Moreno076,

Pour faire cela il faut remplacer l'InputBox par un UserForm, voyez son code dans le fichier joint :
VB:
Dim c As Range 'mémorise la variable

Private Sub CommandButton1_Click()
Set c = [A:A].Find(TextBox1, IIf(c Is Nothing, [A1], c), xlValues, xlWhole)
If c Is Nothing Then
    [A1].Select
    MsgBox "Fiche produit '" & TextBox1 & "' non présente", vbCritical
Else
    c.EntireRow.Select 'sélectionne la ligne entière
End If
End Sub

Private Sub TextBox1_Change()
Set c = Nothing 'RAZ
End Sub
A+
Bonjour Moreno076, salut vgendron,

2 remarques :

- vous ne dites rien de la colonne H je vais donc l'ignorer

- il n'est pas très judicieux de mélanger suppression et ajout mais si vous y tenez exécutez ce code :
VB:
Sub Macro()
Dim x$, i As Variant
x = InputBox("Code article :")
If x = "" Then Exit Sub
i = Application.Match(x, [A:A], 0)
If IsNumeric(i) Then
    MsgBox "Fiche retirée de la semaine " & Cells(i, "I")
    Rows(i).Delete
Else
    If MsgBox("Fiche non présente, voulez-vous ajouter l'article ?", 4) = 7 Then Exit Sub
    With [A:A].Find("", , xlValues)
        .Value = x
        .Resize(, 9).Borders.Weight = xlThin 'bordures
    End With
End If
End Sub
A+
 
Cette nouvelle version te permet d'ajouter directement une nouvelle ligne...
quelques précisions quand meme
1) lorsque tu cliques sur le bouton lancer, un userform s'ouvre
2) le Combobox est automatiquement alimenté par la liste des items existants
3) si tu sélectionnes un de ces items, le bouton "Retirer" s'affiche
4) tu peux saisir directement dans le CB un nouveau numéro ==> quand tu valides, le bouton nouveau s'affiche et permet d'ajouter la nouvelle ref en bas du tableau, et le Combobox est mis à jour avec cette nouvelle référence.

Hello @job75 je n'avais jamais pensé à ta solution pour ajouter un element en bas de tableau..
je note pour une prochaine
 

Pièces jointes

Bonjour vgendron, bonjour job75

je me suis probablement mal exprimé.

En fait pour la boite de dialogue, après avoir rentré le code, j'ai simplement besoin d'avoir la réponse si le code est présent dans la liste :

Si oui ca m'indique la semaine où la fiche a été retirée
Si non fiche non présente.

Mais en aucun cas ajout ou suppression de lignes

Merci 🙂
 
Dernière édition:
Mais en aucun cas ajout ou suppression de lignes
Vous avez raison, alors c'est bien simple :
VB:
Sub Macro()
Dim x$, i As Variant
x = InputBox("Code article :")
If x = "" Then Exit Sub
i = Application.Match(x, [A:A], 0)
If IsNumeric(i) Then
    MsgBox "Fiche de la semaine " & Cells(i, "I") & " " & Cells(i, "H")
Else
    MsgBox "Fiche non présente..."
End If
End Sub
 
Merci Job75, j'ai réajusté comme suit :

Sub Macro()
Dim x$, i As Variant
x = InputBox("Code article :")
If x = "" Then Exit Sub
i = Application.Match(x, [A:A], 0)
If IsNumeric(i) Then
MsgBox "Fiche retirée en semaine " & Cells(i, "I")
Else
MsgBox "Fiche non présente"
End If
End Sub

J'aimerais si possible que lors de l'affiche du résultat ca rappelle le code article rentré plus tôt.

Fiche "code article" retirée....

Après cela je rajouterais cette macro au démarrage du fichier je ne sais plus comment on fait mais je vais chercher.

Merci
 
Merci bien. J'ai réussi pour le démarrage. Je voulais rajouter vbCritical lorsque le code n existe pas. Et puis pour les deux cas, je voudrais rajouter la possibilité de faire une nouvelle recherche. Il faudrait donc que dans la boite de dialogue de resultat j'ai un bouton "effectuer une nouvelle recherche" et un autre "fin de recherche" je ne sais pas si on peut personnaliser.

Voici la dernière version :

Private Sub Workbook_Open()
Dim x$, i As Variant
x = InputBox("Rentrer le code article :", "Recherche code article")
If x = "" Then Exit Sub
i = Application.Match(x, [A:A], 0)
If IsNumeric(i) Then
MsgBox "Fiche produit '" & x & "' retirée en semaine " & Cells(i, "I")
Else
MsgBox "Fiche produit '" & x & "' non présente "
End If
End Sub


Merci à tous.
 
VB:
Private Sub Workbook_Open()
Dim x$, i As Variant
x = InputBox("Rentrer le code article :", "Recherche code article")
If x = "" Then Exit Sub
i = Application.Match(x, [A:A], 0)
If IsNumeric(i) Then
    MsgBox "Fiche produit '" & x & "' retirée en semaine " & Cells(i, "I")
Else
    MsgBox "Fiche produit '" & x & "' non présente !", vbCritical
End If
If MsgBox("Nouvelle recherche ?", 4) = vbYes Then Workbook_Open
End Sub
 
- 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
5
Affichages
595
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…