Réalisation d'une macro de recherche
Résolu
Kecek149
-
Kecek149 -
Kecek149 -
Bonjour,
Je suis en train de réaliser un fichier excel de gestion de stock et j'aurai besoin d'aide pour construire une macro (je suis débutant).
Voilà comment fonctionne le fichier :
Les palettes sont stockées dans des racks, j'ai créé un adressage pour que chaque position ait une adresse et corresponde à une case de mon fichier excel.
Lorsque le logisticien rentre une palette, il indique dans la position correspondante le code ERP du produit et le numéro de lot.
Le problème que l'on rencontre est que les lots sont fragmentés dans les racks. Il me faut donc une macro de recherche simple à utiliser pour pouvoir retrouver tous les emplacements d'un lot et les rendre visibles.
Le but : l'opérateur clique sur un bouton "rechercher" à laquelle je veux affecter une macro. J'aimerai qu'une MsgBox s'affiche où il puisse rentrer le numéro de lot, clique sur ok et cela va modifier les bordures (gras et croisés) de chaque cellule comportant ce lot. Il pourra ensuite imprimer la feuille excel pour avoir un plan des racks avec la visualisation des cellules qu'il doit prendre (la macro d'impression est faite). Je ne veux pas que ça change la couleur des cellules car j'ai une conditionnelle qui colore chaque case en fonction de la référence produit.
Je crois qu'il faut que j'utilise la fonction cells.find mais je n'arrive pas à faire fonctionner la boucle if qui suit.
Voilà où j'en suis (pas très loin) :
Dim mot As Variant
mot = InputBox("Entrez le texte", "Recherche du code SAP")
Set c = Sheets(1).Range("C3:Q36").Find(mot, LookAt:=xlParts)
If c Is Nothing Then
MsgBox("Aucune palette trouvée", vbCritical, "Résultat")
Else:
Range("c.Adress").Select
(ensuite le code pour faire les bordures mais le code est un peu long)
Ca ne marche pas et je ne sais pas pourquoi.
Est ce que quelqu'un aurait une solution ?
Merci beaucoup
Je suis en train de réaliser un fichier excel de gestion de stock et j'aurai besoin d'aide pour construire une macro (je suis débutant).
Voilà comment fonctionne le fichier :
Les palettes sont stockées dans des racks, j'ai créé un adressage pour que chaque position ait une adresse et corresponde à une case de mon fichier excel.
Lorsque le logisticien rentre une palette, il indique dans la position correspondante le code ERP du produit et le numéro de lot.
Le problème que l'on rencontre est que les lots sont fragmentés dans les racks. Il me faut donc une macro de recherche simple à utiliser pour pouvoir retrouver tous les emplacements d'un lot et les rendre visibles.
Le but : l'opérateur clique sur un bouton "rechercher" à laquelle je veux affecter une macro. J'aimerai qu'une MsgBox s'affiche où il puisse rentrer le numéro de lot, clique sur ok et cela va modifier les bordures (gras et croisés) de chaque cellule comportant ce lot. Il pourra ensuite imprimer la feuille excel pour avoir un plan des racks avec la visualisation des cellules qu'il doit prendre (la macro d'impression est faite). Je ne veux pas que ça change la couleur des cellules car j'ai une conditionnelle qui colore chaque case en fonction de la référence produit.
Je crois qu'il faut que j'utilise la fonction cells.find mais je n'arrive pas à faire fonctionner la boucle if qui suit.
Voilà où j'en suis (pas très loin) :
Dim mot As Variant
mot = InputBox("Entrez le texte", "Recherche du code SAP")
Set c = Sheets(1).Range("C3:Q36").Find(mot, LookAt:=xlParts)
If c Is Nothing Then
MsgBox("Aucune palette trouvée", vbCritical, "Résultat")
Else:
Range("c.Adress").Select
(ensuite le code pour faire les bordures mais le code est un peu long)
Ca ne marche pas et je ne sais pas pourquoi.
Est ce que quelqu'un aurait une solution ?
Merci beaucoup
A voir également:
- Réalisation d'une macro de recherche
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Je recherche une chanson - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
3 réponses
Bonjour,
Essaie cette macro
A+
Essaie cette macro
Sub Test()
Dim Mot As String, firstAddress As String
Dim C As Range
Mot = InputBox("Entrez le texte", "Recherche du code SAP")
Set C = Sheets(1).Range("C3:Q36").Find(Mot, , xlValues, xlPart)
If C Is Nothing Then
MsgBox "Aucune palette trouvée", vbCritical, "Résultat"
Else
firstAddress = C.Address
Do
C.Interior.ColorIndex = 6
Set C = Sheets(1).Range("C3:Q36").FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
End If
End Sub
A+