Trouver le n° d'une ligne en fonction de la valeur d'une Inputbox [Résolu]

Signaler
Messages postés
241
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
26 novembre 2020
-
Messages postés
13315
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
-
Bonjour,
j'ai encore un petit problème :
j'ai des n° de bons de commandes dans la colonne A et j'ai bcp d'indications sur ces bons de commande dans les colonnes adjacentes.
Il y a certaines fois où l'on doit soit rectifier des données, soit annuler un Bon de commande.
Je voudrais, à l'aide d'une InputBox entrer le N° du Bon de commande recherché, trouver sur quelle ligne il se trouve afin que je puisse aller faire des rectifications sur cette ligne ou plutot lui imputer certains calculs .

Exemple :
j'ai un bon de commande qui porte le n° 57, il se trouve sur la ligne 120 (mais ça je ne le sais pas encore)
je voudrais que VBA me dise : il se trouve ligne 120 et que en donnant les références cells(x,120) je puisse effectuer une opération dans les différentes colonnes toujours en ligne 120

Me suis je bien fait comprendre ?
J'ai cherché tout cet après midi sur différents forums, j'ai vu beaucoup de propositions, mais aucune ne traitant MON cas, alors je m'en remets à vous.
D'avance Merci



Configuration: Windows / Chrome 86.0.4240.183

4 réponses

Messages postés
13315
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
748
bonjour,
peux-tu partager ton fichier?
si c'est une recherche à faire dans une zone où il n'y a que des N° de Bons de commande, tu peux utiliser find.
sinon, il faut faire le tour des cellules, un peu comme le code fait pour trouver de la place libre pour enregistrer une commande dans PLANNING.
Messages postés
13315
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
748
un exemple, pour chercher le bon de commande 43:
Dim chercherou As Range, trouve As Range, nlig As Long
Set chercherou = Intersect(ThisWorkbook.Sheets("Historique_facture").UsedRange,  _
       ThisWorkbook.Sheets("Historique_facture").Columns("a"))
Set trouve = chercherou.Find(43)
If Not trouve Is Nothing Then
    nlig = trouve.Row
End If
Messages postés
1423
Date d'inscription
lundi 13 juillet 2009
Statut
Membre
Dernière intervention
10 novembre 2020
445
Bonsoir,
Je pense qu'une copie du classeur épuré de ses données sensibles serait la bienvenue afin de pouvoir faire une application au plus proche de la réalité.

https://www.cjoint.com/

Merci
Messages postés
241
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
26 novembre 2020
23
Bonjour,
voici une copie de mon fichier épuré :
https://www.cjoint.com/c/JKlkVztCYyg

entre les colonnes H et I, je voudrais intercaler une colonne.
en entrant par un inputbox le n° du bon de commande que je veux annuler, je voudrais me retrouver sur la ligne correspondante. Il me suffirait alors d'inverser le signe du montant dans ma nouvelle colonne et j'aurais ainsi un solde nul pour cette commande annulée, mais elle resterait toujours visible.
Merci de votre aide
Messages postés
13315
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
748
as-tu regardé ma suggestion d'hier à 20h49?
Messages postés
241
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
26 novembre 2020
23 >
Messages postés
13315
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020

Oui, je l'avais regardée, mais pas essayée, j'avais 'abord préféré répondre à la demande d'envoyer mon fichier.
Maintenant, je vais l'essayer d'ici une heure.
Merci de ton aide.
je reviens te dire comment ça va quand je l'aurai testée.
Messages postés
241
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
26 novembre 2020
23
Bonjour,
et voilà ! j'ai essayé ton code et cela fonctionne à merveille.
je viens d'y ajouter un msgbox juste pour voir le n° de ma ligne.
Je vais maintenant essayer de mettre un Inputbox pour entrer le n° de BC que je désire et voir si je peux remplacer le "FIND(43)" par find( référence de mon inputbox)

encore une fois, merci beaucoup.
Messages postés
13315
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
748
pourras-tu marquer cette discussion comme résolue?