Controle via un format imposé

abc

XLDnaute Impliqué
Bonsoir,
Je désire contrôler si le format personnaliser de la cellule conprend bien 10 chiffres.
Je sais le faire pour une cellule,mais j'aimerais l'appliquer a une colonne bien précise.Dans l'exemple ci joint ,je choisis la colonne A.
Merci d'avance.
 

Pièces jointes

  • classeur1.zip
    6.6 KB · Affichages: 19
  • classeur1.zip
    6.6 KB · Affichages: 18
  • classeur1.zip
    6.6 KB · Affichages: 19

Kotov

XLDnaute Impliqué
Re : Controle via un format imposé

Bonsoir abc,

Testes la macro suivante

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim r
 Dim c As Byte
 c = 1 'Colonne à contrôler (ici la colonne A)
 n = Cells(65536, c).End(3).Row  '(Sélectionne la dernière cellule utilisée de la colonne à contrôler)

 For r = 1 To n
 If Not IsNumeric(Cells(r, c)) Then
        MsgBox "10 CHIFFRES" & Chr(10) & "RECOMMENCER"
 Else
    If Len(Cells(r, c)) <> 10 Then
        MsgBox "10 CHIFFRES" & Chr(10) & "RECOMMENCER"
        Exit Sub
    End If
 End If
 Next r
End Sub
Je vérifie d'abord si la saisie est numérique et, si c'est le cas, si la saisie comporte bien 10 chiffres.
Je l'ai positionné dans la macro évènementielle Worksheet_SelectionChange plutôt que Worksheet_Change (contrôle à chaque saisie plutôt qu'à chaque changement de feuille)
Bonne soirée

Kotov
 
Dernière édition:

abc

XLDnaute Impliqué
Re : Controle via un format imposé

Bonsoir,
merci pour vos réponses.
Spitnolan08, oui, pourquoi se compliquer la vie, je l'avais oublié ce truc la.
Kotov, ta proposition fonctionne mais elle m'affiche chaque fois le MSGBOX.
J'aimerais avoir le message du style recommecer et tant que la saisie est incorrecte ,je ne sais pas quitter la cellule avec l'erreur.
A +
 

abc

XLDnaute Impliqué
Re : Controle via un format imposé

Bonsoir,
je relance le sujet,la proposition de Kotov réponds partiellement a ma demande.
Je peux sortir de la cellule avec une erreur.
Je cherche,peut être a tors ,du sytle
If no target
Msgbox "Erreur recommencer"
et tant que le format n'est pas correct recommencer
Merci d'avance.
A +
 

Kotov

XLDnaute Impliqué
Re : Controle via un format imposé

Bonsoir ABC,

J'avais réalisé ma proposition à partir de ta macro d'origine qui affichait une msgbox à chaque erreur trouvée.

Maintenant, si outre l'alerte signalant une saisie erronée, tu souhaites corriger les cellules non conformes, je te propose la macro suivante :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Dim r
     Dim c As Byte
     Dim S As Variant
     c = 1 'Colonne à contrôler (ici la colonne A)
     n = Cells(65536, c).End(3).Row  '(Sélectionne la dernière cellule utilisée de la colonne à contrôler)

     For r = 1 To n
     If Not IsNumeric(Cells(r, c)) Then
G1:
          S = InputBox("Cellule : " & Cells(r, c).Address & vbCrLf & "Veuillez saisir un nombre à  10 chiffres", "Saisie non conforme..")
           If Len(S) <> 10 Then
             GoTo G1
           Else
                If Not IsNumeric(Left(S, 5)) Then GoTo G1
                If Not IsNumeric(Right(S, 5)) Then GoTo G1
           End If
            Cells(r, c) = CSng(S)
     Else
         If Len(Cells(r, c)) <> 10 Then
               GoTo G1
         End If
     End If
     Next r
End Sub

Pour info, c'est une impasse que de chercher du côté de : If no target Msgbox "Erreur recommencer"
Bonne soirée
Kotov
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 851
Membres
103 974
dernier inscrit
chmikha