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

Saisie petit code marche pas bien v2

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eliot raymond

XLDnaute Occasionnel
Bonjour a tous et toutes forum bonjour,

J'ai tester le code si joint ca ne fonctionne pas comme il faut, peut'on voir si on ne pas faire plus simple et modifiable, je vais y re-bucher.
j'ai vu qu'on utilisait souvent ce style de test saisie dans les box mais en dehors ca marche pas.explication dans fichier ci-joint

pourquoi faire compliquer si on peut faire simple, je sais pas toujours facile

alors bonne journée a tous et merci beaucoup

XL 2007 - vista Raymond
 

Pièces jointes

Re : Saisie petit code marche pas bien v2

Bonjour tous

eliot raymond
Le code était pour l'exemple,avec comme plage de référence A1:A10

Si tu n'as pas touché au code, c'est normal que cela ne fonctionne pas.

Tu as des questions sur le code ? (qui utilise RegExp)
 
Re : Saisie petit code marche pas bien v2

bonjour vbacrumble

j'avais pas piger comme ca, je ne connait pas RegExp, je suis sur le VBA depuis 2 mois j'ai d'abord fait beaucoup de recherche pour mes infos perso et puis me voila vacciner par le VBA
j'apprends seul alors pitié encore un peu de temps svp

que doit -je faire, suis un peu a l'ouest la, pierrot93 regarde aussi tu as vu, vous etes sympas merci

Bon a plus tard
RAYmond
 
Re : Saisie petit code marche pas bien v2

RE

Je vais commenter le code que j'ai mis dans la feuille 1 du classeur

Code:
Option Explicit
Code:
Private Sub Worksheet_Activate()
'Définit la zone de cellules accessibles
Me.ScrollArea = Me.UsedRange.Address
End Sub

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Si la sélection est multple, sortie de la procédure
If Target.Count > 1 Then Exit Sub
'Définition de la plage de cellules actives
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
If EstNumerique(Target.Text) And Len(Target) > 1 Then' vérif si chiffres et plus d'1 caractères, puis affichage d'un message d'avertissement
MsgBox "Caractères interdits : (A-Z, a-z), les espaces." & Chr(13) & "Le séparateur décimal est la virgule. " & _
Chr(13) & "(Le nombre saisi doit contenir 8 chiffres au maximum.)" & Chr(13) & _
Chr(13) & " Votre saisie actuelle est : " & Target & " , et contient " & Len(Target) & " caractère(s)." & Chr(13) & _
Chr(13) & " Veuillez recommencer votre saisie avec des données valides. Merci.", _
vbCritical + vbOKOnly, "ERREUR DE SAISIE"
End If
End If
End Sub
Code:
Function EstNumerique(r As String) As Boolean
'fonction vba personnaliée utilisant regexp
'regexp = Regular Expression
'autorise seulement la saisie de chiffres (8 au maximum)
With CreateObject("vbscript.regexp")
    .Pattern = "^[0-9,]{1,8}$"' veut dire que des chiffres décimaux,  8 caractères maxi
    EstNumerique = Not (.test(r))
End With
End Function
 
Re : Saisie petit code marche pas bien v2

re vbacrumble,
bien eu le petit code, je regarde ca de pres te tient au courant, pas de soucis,

comment pourrait'on aussi adapter un INPUT dans une colonne Ex: D2: a D maximum , le but en fait étant d'entrer des chiffres ligne par ligne l'input sera toujours dans la meme colonne. Je fixerai moi meme la longueur a autoriser
que la cellule s'efface si pas OK pour le test dont c'est le sujet

Ex:INPUT N°-5874585 que N°- s'affiche a chaque fois, tout sera lier avec le code saisie.

Bonne app et a plus tard et merci encore pour les commentaires

Raymond
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…