XL 2013 Recherche avec fenetre

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

  • TEST.xlsx
    10 KB · Affichages: 21
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+

Moreno076

XLDnaute Impliqué
Bonsoir à tous.

Je souhaite améliorer le fichier.

J'aurais besoin que la fenetre de recherche reste visible tout le temps. Est ce possible???.
J'aurais besoin aussi que lors de la recherche si le resultat est positif que l'on se rende directement sur la ligne trouvée car il y a dans le fichier d 'origine des milliers de références.

Merci pour votre grande aide.
 

Pièces jointes

  • BAISSE DES STOCKS.xlsm
    16 KB · Affichages: 2

job75

XLDnaute Barbatruc
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+
 

Pièces jointes

  • BAISSE DES STOCKS(1).xlsm
    21.4 KB · Affichages: 4

Moreno076

XLDnaute Impliqué
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+
Merci c'est impeccable ca marche super.
 

Discussions similaires

Réponses
5
Affichages
301