VBA Contrôler la saisie

sonskriverez

XLDnaute Occasionnel
Bonsoir le Forum

Encore un casse tête (pour moi en tout cas), je voudrais pouvoir contrôler avant l'enregistrement si la saisie dans les cellules est bonne.
Si oui pas de pbl, si non ce positionner dans la cellule concernée la coloriser et indiquer la règle de saisie.

Je sais pas si c'est possible ! mais je vous joint un exemple avec les règles de saisie

Merci de votre aide
 

Pièces jointes

  • exemple.xlsx
    13.1 KB · Affichages: 69
  • exemple.xlsx
    13.1 KB · Affichages: 91
  • exemple.xlsx
    13.1 KB · Affichages: 89

st007

XLDnaute Barbatruc
Re : VBA Contrôler la saisie

Bonsoir, tu pourrais imposer cela lors de la saisie genre
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Count = 1 And Not Intersect(Target, Range("M4:M17", "P4:P17")) Is Nothing Then
  If Target <> UCase(Target) Then Target = UCase(Target.Value)
End If
Application.ScreenUpdating = True
End Sub
 

Modeste

XLDnaute Barbatruc
Re : VBA Contrôler la saisie

Bonsoir sonskriverez, st007,

sonskriverez à dit:
mais ca ne teste pas si la cellule est vide
... sur 1.048.576 lignes ... il s'en trouvera bien l'une ou l'autre qui pourrait le rester, non!?
Il faudrait donc préciser quelles cellules ne pourraient pas être vides: on se limite à une plage? Une cellule doit être complétée si une autre cellule de la même ligne n'est pas vide? etc...

Avec quelques précisions supplémentaires, on verra si une "Validation de données" pourrait être utilisée ou si une solution par VBA est incontournable :confused:
 
Dernière édition:

sonskriverez

XLDnaute Occasionnel
Re : VBA Contrôler la saisie

Bsr Modeste,

Dans l'exemple joint, j'ai noté ce qu'il faut respecter pour chaque colonne. En sachant que le nombre de lignes est aléatoire. il y a 3 colonnes ou la saisie est obligatoire, donc pas de cellules vides. Le truc aussi est d'indiquer à la personne qui va remplir cette feuille qu'elle c'est trompé, petit message et positionnement sur la cellule en erreur pour correction.
enfin si c'est possible
 

Modeste

XLDnaute Barbatruc
Re : VBA Contrôler la saisie

Re-bonsoir,

On ne s'est pas compris: j'ai vu les commentaires dans ton fichier. Ma question est: si on considère la colonne A (où tu mentionnes "pas de cellules vides"), comment sait-on à quelle ligne il faut arrêter cette vérification? On ne s'occupe que de la plage A4:A17 ou tu auras encore des données plus bas? Si la seconde hypothèse est correcte, quel sera le repère qui fera qu'on ne "scannera" pas toutes les cellules jusqu'à A1048756?
 

Zdz16

XLDnaute Occasionnel
Re : VBA Contrôler la saisie

Bonjour;

En espérant que ce n'est pas trop tard, ci-joint une proposition de solution. Toutefois, je n'ai pas trouvé le moyen, s'il existe, l'évennement saisie/change dans une cellule.

Cordialement
 

Pièces jointes

  • exemple_1.xlsm
    23 KB · Affichages: 49
  • exemple_1.xlsm
    23 KB · Affichages: 64
  • exemple_1.xlsm
    23 KB · Affichages: 67

sonskriverez

XLDnaute Occasionnel
Re : VBA Contrôler la saisie

bjr

Non c'est pas trop tard je suis toujours dessus... j'ai testé xxx-1234567 en colonne M et j'ai une erreur de saisie, je pense que c'est la touche entrée qui active la cellule suivante qui est vide...
Je pense que le contrôle a la sortie de la cellule est compliqué, car nous sommes pas à l'abri d'un copier/coller d'une serie de code dans une colonne. par exemple 100 cellule collées d'une seul coup...
Est-ce qu'il serait possible de scanner une colonne entière quelque soit le nombre de lignes et d'editer un popup avec les erreurs ?
 

Zdz16

XLDnaute Occasionnel
Re : VBA Contrôler la saisie

Bonsoir à tous;

Voici une autre solution.
Voir la feuille Test avec un 'E". Il suffit de se positionner sur une colonne et cliquer sur le bouton. J'ai fait cela à la rapide, et il y a plusieurs améliorations possibles. Mais, je pense que cela te mettra sur le chemin que tu voulais, j'espère.
Par contre attention aux cellules vides en fin des colonnes.
Tu peux appliquer cela à n'importe colonne.

Cordialement
 

Pièces jointes

  • exemple_2.xlsm
    27.2 KB · Affichages: 57
  • exemple_2.xlsm
    27.2 KB · Affichages: 49

Zdz16

XLDnaute Occasionnel
Re : VBA Contrôler la saisie

Bonjour à tous;

Pour étendre cela au contrôle global de toutes les colonnes, le principe est le même. Il suffit d'imbriquer la boucle de contrôle des cellules d'une colonne dans une boucle sur les colonnes.
Pour d'autres conditions, il suffit également de créer la procédure de la règle de contrôle et d'appliquer le même principe.

Quelques précautions :
Le temps de réponse dependera de l'étendue des contrôles
Probablement quelques soucis sur les cellules vides (mais surmentable)
Autre solution, au lieu de saisir directement sur une feuille, utiliser une USF pour la saisie et les contrôles

Cordialement
 

Discussions similaires

Réponses
13
Affichages
681

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote