Forum Clubic

Dans Excel - macro recherche

Bonjour,

Je dois faire une espèce de recherche dans un fichier Excel (ctrl+F ok mais jc’est un peu plus subtil… :frowning: )

bon donc j’ai une colonne codebarre A et une colonne quantité B, je voudrais qu’au début de mon fichier excel j’ai 2 champs vides, un champs codebarre X, un champs quantité Y et un bouton MettreAJour.

Je scanne mon article (des livres) avec la douchette au niveau du champs X, j’indique la quantité dans mon champs Y, je clique sur mon bouton et là le fichier excel met à jour la quantité de la colonne B en fonction du codebarre trouvé dans la colonne A.

Je ne sais pas du tout comment faire, j’y connais rien en VB et j’ai 3 jours avant le salon du livre :bounce: :bounce: :bounce:

Merci si qqn peut m’aider

ça ressemble drolement à une base de donnée! Pourquoi pas access???

Sinon en vb sous excel ça doit être possible, mais pour trouver les bonnes fonctions c’est dur…

Bon j’arrive à peu près à faire ce que je veux…grâce à la fonction recherchev
J’entre un code barre (par ex. 5656565656565), et je trouve la valeur du stock correspondante (ici 17).

codebarre : 5656565656565 (en A56)
>>> résultat retourné == qté : 17 (en B56)

Premier point résolu.

Le second, j’entre une quantité, par ex. 2 (correspondant aux exemplaires vendus) et il faudra aller mettre à jour la quantité précédemment trouvée.

qté vendue : 2

Il faudra donc aller mettre -2 dans la cellule B56.
Recherchev retourne la valeur de la cellule, quelle fonction donne les coordonnées de la cellule ?

merci.

Y’a surement mieux et plus simple et je suis pas sur que ça fonctionne mais voilà mon idée tordue.

  • Tu utilises la recherche (ctrl+f) donc tu auras la cellule contenant ce résultat sélectionné.
  • Tu récupères l’identifiant de la ligne séléctionné (A56) donc 56
  • Tu concatène la lettre "b" avec ton 56 et tu as b56
    Tu demande de remplacer le contenu de la cellule b56 par celui de b56-(ton nombre)

Ouais je sais c’est bien comme je l’ai dit tordu doit y’avoir plus simple mais a mon avis ça peut fonctionner. Et je crois même que j’avais déjà fait un truc du genre.

Tiens ou même pire (mais dangereux si la structure est modifié)

  • Tu utilises la recherche (ctrl+f) donc tu auras la cellule contenant ce résultat sélectionné.
  • Tu demande de sélectionner la cellule de droite
    Tu demande de remplacer le contenu de la cellule sélectionné par le même -(ton nombre)

merci de ton aide…
J’attends néanmoins une alternative car c’est un peu lourd :wink:

J’ai fait un fichier Excel avec une macro avec un bouton pour ce que tu voulais,
tu m’envoi un message avec une adresse mail et tu l’as

merci Cloch_hard !
bon en fait je suis passé au VB aussi…


Private Sub Saved()
'initialisation des différentes variables
mot_recherche = Range("B1").Value
ligne = 8
' lancement de la recherche
While (Sheets("Feuil1").Range("A" & ligne).Value <> "")
' teste sur la recherche
If (Sheets("Feuil1").Range("A" & ligne).Value = mot_recherche) Then
'copie de la cellule souhaite dans la feuille de resultat
 Range("B4").Value = Sheets("Feuil1").Range("B" & ligne).Value
 Range("B" & ligne).Value = Range("B" & ligne).Value - Sheets("Feuil1").Range("B2").Value
 Range("B5").Value = Sheets("Feuil1").Range("B" & ligne).Value
' incrémentation de la ligne de résultat
End If
'incrémentation de la ligne de teste
ligne = ligne + 1
Wend

ActiveWorkbook.SaveAs Filename:="C:\Stany\Stany_" & _
Evaluate("=TEXT(TODAY(),""DDMMYYYY"")") & ".xls"
End Sub

c’était pas bien compliqué.lol Il me reste juste à enregistrer mon fichier avec la date +heures, minutes, secondes (ce qui me reste à faire et d’ailleurs si qqn a une idée, je suis preneur) et j’aurais fini. :slight_smile:

De rien mais je n’ai rien fait :neutre:

  'sauvegarde du fichier

newhour = Hour(Now())
newminute = Minute(Now())
newsecond = Second(Now())

test = newhour & "-" & newminute & "-" & newsecond

    ActiveWorkbook.SaveAs Filename:="C:\Stany_" & _
Evaluate("=TEXT(TODAY(),""DDMMYYYY"")") & "_" & test & ".xls"

voilà