Verification VBa à partir d'une liste
Résolu
mcou
-
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 :
Merci de votre aide.
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.
A voir également:
- Verification VBa à partir d'une liste
- Liste déroulante excel - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
3 réponses
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
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
Salut Michel,
Apparemment, le fichier est dispo ici : https://www.cjoint.com/?0GxoszCAUzV
Besoin d'un p'tit café ce matin?
Bonne journée.
Apparemment, le fichier est dispo ici : https://www.cjoint.com/?0GxoszCAUzV
Besoin d'un p'tit café ce matin?
Bonne journée.
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:
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
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.
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.
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
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