Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
145
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…