Verification VBa à partir d'une liste

Résolu
mcou -  
 mcou -
Bonjour,

Je souhaite vérifier la saisie des codes budgets (sans utiliser la validation des données) à partir de VBA. Ma liste est contenue dans une feuille appelée Listing Code et se trouve sur l'ensemble de la colonne A de cette feuille. Par ailleurs, j'ai défini ma colonne A comme étant "CodeBudget".
Ma feuille de suivi, "FOLLOW-UP" est l'endroit où mes commandes sont saisies et où les codes budgets sont renseignés selon la commande dans la colonnne F.

Aussi, j'ai commencé à écrire un code, mais mes connaissances sont limitées.
Quelqu'un aurait-il une piste à me suggérer ?
Je vous joins mon document :
http://cjoint.com/?0GxoszCAUzV
Mon code :
Option Explicit

Sub verif_code_budget()


Sheets("FOLLOW-UP").Range(Range("F4"), Range("F65000").End(xlUp)).Select
For Each cell In Selection


Do While cell.Value <> Sheets("Listing code").Range("A37").Value
'ici en fait je souhaiterais que la cell.value correspondant au moins à une valeur de ma liste "CodeBudget" du Listing code (colonne A)
' si ce n'est pas le cas, je veux proposer à l'utilisateur de rechanger cela à partir d'une liste déroulante proposant tous les codes budget (colonne A)

MsgBox "Erreur de saisie", vbCritical, "VERIFICATION SAISIE"

Loop
Next

End Sub




Merci de votre aide.




3 réponses

mcou
 
Bonjour,

Je sollicite de nouveau votre aide. Avez-vous des idées de solutions ?
Merci
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
ca vient, ca vient...

en fin de matinée, j'espère
mais ce serait + pratique avec un extrait de ton classeur
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse

Dans l'attente
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut Michel,

Apparemment, le fichier est dispo ici : https://www.cjoint.com/?0GxoszCAUzV

Besoin d'un p'tit café ce matin?

Bonne journée.
0
mcou
 
J'avais pensé à la pièce jointe, c'est plus facile d'expliquer avec l'exemple concret ;)
Merci à vous.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bon j'ai bu mon caoua! :o)

j'avoue ne pas comprebdre le coup de la liste de validation . pour ma part j'opterai plut^t pour un formulaire où on taperait le numéro de code... tu dis

en attendant:
Option Explicit

Sub verif_code_budget()
Dim Derlig As Integer, T_code
Dim Liste As Range, cptr As Integer

Application.ScreenUpdating = False

With Sheets("FOLLOW-UP")
     Derlig = .Range("F65000").End(xlUp).Row
     T_code = Application.Transpose(.Range(.Cells(4, "F"), .Cells(Derlig, "F")).Value)
End With
With Sheets("Listing code")
     Derlig = .Range("A65000").End(xlUp).Row
     Set Liste = .Range(.Cells(2, "A"), .Cells(Derlig, "A"))
     For cptr = 1 To UBound(T_code)
          If Application.CountIf(Liste, T_code(cptr)) = 0 Then
               MsgBox "Erreur de saisie: " & T_code(cptr) & " inconnu !", vbCritical, "VERIFICATION SAISIE"
               Sheets("FOLLOW-UP").Cells(cptr + 3, "F").Select
               'EN ATTENTE DECISION FORMULAIRE
               Exit Sub
          End If
     Next
End With

End Sub


0
mcou
 
Votre code fonctionne parfaitement bien.
Merci !
Je n'ai jamais fait usage de formulaire dans mes macros. Comment cela fonctionne-t-il ?
J'aimerais bien en effet proposer une liste déroulante via un formulaire pour la modification du code une fois que l'erreur est repérée.
Un ptit coup de pouce supplémentaire ?
Je vais faire des recherches par moi même aussi. Merci.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
OK, je te fais ça dans l'après-midi
0
mcou
 
merci beaucoup.
je commence à comprendre le fonctionnement des userform... faut que je m'y mette ! ^^
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
excuse le retard , les Canadairs qui passent sans arrêt depuis hier apres-midi perturbent tout le monde dans le coin -(sud 07)

proposition:
https://www.cjoint.com/?3Gyra6OyHIV

Il serait peut-^tre + confortable pour l'utilisateur et + simple que la correction se fasse immédiatement à la fin d'une saisie dans la colonne F:il faudrait employer une procédure événementielle worksheet_change qui réagirait en cas d'erreur et ouvrirait l'userform
ou encore mieux:
avec un worksheet_selection_change, sur une cellule vide, l'userform serait automatiquement ouvert: choix +sûr et plus rapide que de saisir toute la désignation

A toi de voir
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
ajouter à la dernière ligne de la macro module1 un msgbox "vérification terminée"
0