Microsoft 365 Vérification de données

balardbalard

XLDnaute Nouveau
Bonjour,

Je souhaiterai vérifier que differentes données sont bien remplies avec des colonnes fixes mais des lignes qui peuvent varier; si ce n'est pas le cas on va dans la cellule manquante. J'ai commencé un bout de code mais je ne bloque et n'arrive pas à ce que je souhaiterai.

Merci de votre aide
 

Pièces jointes

  • test - Copie.xlsm
    20 KB · Affichages: 4
Solution
Bonjour balardbalard, et bienvenu sur XLD,
En PJ un essai avec :
VB:
Sub Verif()

Dim Derl As Long
Derl = Range("A65500").End(xlUp).Row

For Each cell In Range("A2:A" & Derl)
If Not IsNumeric(cell) Or IsEmpty(cell) Then cell.Select: MsgBox "N'est pas un chiffre, ou vide?", , "": Exit Sub
Next

For Each cell In Range("B2:B" & Derl)
If Not Application.IsText(cell) Or IsEmpty(cell) Then cell.Select: MsgBox "N'est pas du texte, ou vide?", , "": Exit Sub
Next

For Each cell In Range("D2:D" & Derl)
If Not IsDate(cell) Or IsEmpty(cell) Then cell.Select: MsgBox "N'est pas une date, ou vide?", , "": Exit Sub
Next

End Sub

NB:
1- range("Aa" & Derl) Erreur de frappe, devrait être "A"
2- range("A" & Derl) désigne une cellule non une plage ...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour balardbalard, et bienvenu sur XLD,
En PJ un essai avec :
VB:
Sub Verif()

Dim Derl As Long
Derl = Range("A65500").End(xlUp).Row

For Each cell In Range("A2:A" & Derl)
If Not IsNumeric(cell) Or IsEmpty(cell) Then cell.Select: MsgBox "N'est pas un chiffre, ou vide?", , "": Exit Sub
Next

For Each cell In Range("B2:B" & Derl)
If Not Application.IsText(cell) Or IsEmpty(cell) Then cell.Select: MsgBox "N'est pas du texte, ou vide?", , "": Exit Sub
Next

For Each cell In Range("D2:D" & Derl)
If Not IsDate(cell) Or IsEmpty(cell) Then cell.Select: MsgBox "N'est pas une date, ou vide?", , "": Exit Sub
Next

End Sub

NB:
1- range("Aa" & Derl) Erreur de frappe, devrait être "A"
2- range("A" & Derl) désigne une cellule non une plage : Range("A2:A" & Derl) soit égal à Range("A2:A6")
3- with n'est pas utile car la cellule est nommée dan each cell
 

Pièces jointes

  • test - Copie.xlsm
    17.2 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re, bonjour Sousou,
Ou encore, avec des MFC, ce qui me semble quand même le plus simple :
VB:
Colonne A :   OU(ESTNUM(A2)=0;A2="")
Colonne B :   OU(ESTNONTEXTE(B2)=0;B2="")
Colonne D :   SI(ESTERREUR(DATEVAL(TEXTE(D2;"jj/mm/aa")));1;0)
L'avantage est que cela se fait en temps réel.
 

Pièces jointes

  • test - Copie (3).xlsx
    9.8 KB · Affichages: 1

Discussions similaires

Réponses
1
Affichages
115
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 179
dernier inscrit
BERSEB50