Deux conditions à vérifier avant de ranger une valeur

Bonjour,

Dans un tableau déjà partiellement rempli, j'aimerai pouvoir demander deux valeurs à l'utilisateur puis faire une recherche afin de trouver la ligne où ces deux valeurs existent et, une fois cela vérifié, insérer une troisième valeur demandée à l'utilisateur dans une colonne vierge de cette même ligne.

Exemple:

Dans un tableau où trois colonnes sont déjà remplies (peu importe le nombre de lignes) et où plusieurs valeurs peuvent être identiques dans la même colonne, je cherche la ligne où se trouvent la valeur "nom" dans la colonne A et la valeur "indice" dans la colonne C. Sur cette même ligne, je veux rentrer dans la colonne E la valeur "visa" entrée par l'utilisateur.

J'apprécierai beaucoup de l'aide sur ce sujet... Voilà où j'en suis pour l'instant mais je pense que je ne pense pas que "Find" soit la bonne fonction pour y parvenir. Merci d'avance.

Sub Visas()

Dim entreprise, moe, betmoe, controle, rnomplan, rindiceplan, datevisa, avisvisa As Variant

Dim i, ligne1, col1, ligne2, col2 As Integer

Dim celluletrouvee1, celluletrouvee2 As Range

'recherche du nom du plan

message:

message = InputBox("Veuillez saisir le nom du plan recherché", "Recherche du nom du plan", "Nom du plan")

rnomplan = message

If rnomplan = "" Then

GoTo final

Else

Set celluletrouvee1 = Range("A1:A65536").Find(rnomplan, lookat:=xlWhole)

If celluletrouvee1 Is Nothing Then

message2:

message2 = MsgBox("Non trouvé", vbExclamation, "Voulez vous réessayer?")

YN = message2

If YN = 6 Then

GoTo message

ElseIf YN = 7 Then

GoTo final

Else

ligne1 = rnomplan.Row

col1 = rnomplan.Column

'recherche de l'indice du plan

message3:

message3 = InputBox("Veuillez saisir l'indice du plan recherché", "Recherche de l'indice du plan", "Exemple: A, B, etc")

rindice = message3

If rindice = "" Then

GoTo final

Else

While Cells(ligne1, col1).Offset(0, 2) <> rindice

for i=1to20....

message4:

message4 = InputBox("Veuillez saisir la date du visa", "Date du visa du plan", "xx/xx/xx")

datevisa = mesasge4

Range(ligne1, col1).Offset(0, 6) = datevisa

final:

MsgBox "FIN DU PROGRAMME", vbExclamation, "The end"

End Sub

Bonjour

Un fichier avec ce que tu as et ce que tu veux faciliterait grandement l'aide qui pourrait t'être apportée

Voilà ce que j'ai pour l'instant:

Le premier bouton (plans GO) permet de rentrer les données d'un nouveau plan reçu. le deuxième bouton (visas) doit permettre de remplir les colonnes suivantes d'un plan retrouvé au travers de la recherche initiée au début du programme "visas".

Bonjour

StoneKurtain a écrit :

Dans un tableau déjà partiellement rempli

Heu on ne doit pas avoir la même définition du mot "partiellement"

Ton tableau est vide, il y a juste les entêtes

StoneKurtain a écrit :

Dans un tableau où trois colonnes sont déjà remplies (peu importe le nombre de lignes) et où plusieurs valeurs peuvent être identiques dans la même colonne

J'ai sorti ma loupe (grossissement 10 fois) et pas vu

Alors tu fournis un fichier avec des données, et tu indiques exactement ce que tu veux faire.

Je voudrais pouvoir écrire dans le tableau que la date du visa (colonne G) du plan "premier étage" est le 17/06/12 par exemple.

Ensuite, si la différence entre la date de réception du plan (colonne F) et la date de visa (colonne G) est supérieure à 15j, j'aimerai que la cellule date de visa tourne au rouge...

J'espère avoir été assez clair. Merci Banzai64 pour le coup de main!

Bonsoir

Juste la macro Visas

Un grand merci Banzai64!! Impressionnant de part la qualité et la rapidité de la réponse! merci

Rechercher des sujets similaires à "deux conditions verifier ranger valeur"