VBA - Saisie dans cellule après recherche ligne concernée

Bonjour à toutes et à tous,

Je souhaiterais saisir le montant d'une cellule se situant dans une ligne précise d'un tableau.

N'ayant pas les capacités d'importer un fichier, vous pouvez consulter ce lien (drive) pour vous donner une idée du contexte :

https://docs.google.com/spreadsheets/d/1gbM3nc8Eb4H3INMLfD_8mPwNoOLdvM-go_DZDz_3uE0/edit?usp=sharing

(Vous constaterez la présence de plusieurs feuilles)

J'ai donc plusieurs tableaux (un tableau par feuille) assez dense composé de données basiques (Fournisseur, N° de commande, Objet, Date de livraison, Montant engagé, Montant à facturer,...), tous structurés de la même manière.

J'aimerais, depuis une feuille "Menu", que l'utilisateur puisse saisir :

1 - Le nom de la feuille (pour sélectionner la feuille)

2 - Le n° de la commande (pour sélectionner la ligne)

3 - Le montant à facturer (et ainsi le saisir dans la bonne cellule de la colonne "Montant à facturer" et à la ligne correspondante)

J'ai déjà quelques codes fonctionnels mais je bloque au niveau de la recherche de la ligne correspondante : je ne sais pas comment procéder...

Voici un échantillon de mon code pour vous éclairez :

"

Sub ReceptionMontant()

' Déclaration des variables

Dim Feuille As String

Dim NumCmde As Variant

Dim MntnFacture As Variant

Dim Ligne As Variant

'Initialisation de la variable Ligne (les données de mon tableau initient en ligne 6)

Ligne = 6

'Selection de la feuille exemple

Sheets("Menu").Select

Feuille = Range("D48").Value

NumCmde= Range("J48").Value

MntnFacture = Range("J53").Value

If Range("D48").Value = "Feuille1" Then

Sheets("Feuille1").Select

If Range("D48").Value = "Feuille2" Then

Sheets("Feuille2").Select

If Range("D48").Value = "Feuille3" Then

Sheets("Feuille3").Select

"

J'espère avoir été assez compréhensible, je vous remercie pour votre aide !

Salut,

Qu'elle est le critère de recherche :

- la première cellule vide ?

ou

- le n° de facture ?

Cdlt,

Le critère de recherche est le n° de commande (pour trouver la ligne et ainsi se situer au niveau de la colonne Montant à Facturer)

Re,

D'accord donc voici un code pour rechercher et incrémenter :

Dim i as integer

While Sheets(Feuille).RANGE("B" & i) <> NumCmde
i = i + 1
Wend

Sheets(Feuille).RANGE("F" & i) = MntnFacture

Pas besoin de sélectionner la feuille pour incrémenter, surtout que tu récupère le nom de celle-ci.

Cdlt,

Re,

Je ne cherche pourtant pas à incrémenter, je cherche à pouvoir saisir le montant dans la bonne ligne.

Ouai bon c'est une erreur de vocabulaire mais ma macro doit fonctionner parfaitement !

Je ne comprends pas le "i = i + 1" => typique de l'incrémentation non ?

Beh regarde un peu la macro c'est une boucle ...

Tant que la valeur de la cellule (B & i) ne correspond pas au n° de facture beh i augmente ..

Comme cela la macro va lire les n° de facture dans l'ordre ...

Test du n° : i = 1 -> B1 x NON --> donc i = i + 1 soit i = 1 + 1 = 2 pour vérifier B2 puis B3 B4 B5

Et une fois que le n° de facture correspond beh i n'est plus incrémenté. LOGIQUE ! car le numéro de ligne à été trouvé.

Cdlt,

Super, tout fonctionne je te remercie !

Bonne journée

Rechercher des sujets similaires à "vba saisie recherche ligne concernee"