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

Test qui va pas

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,

Je poste a nouveau car je ne veux pas embeter toujours les memes personnes
j'ai un souci de test, mais voyez le fichier ou j'ai essayer d'etre simple enfin j'espere mais mon fichier avance bien.

Merci de jeter un oeil en attendant je vous souhaite une belle apres midi

Raymond
 

Pièces jointes

Re : Test qui va pas

Re Eliot,

Si ce que nous t'avons proposé ne te convennait pas, il fallait le dire ou tenter d'expliquer plus clairement ta demande, ce n'est pas embêtant.

Avec ce que je comprends, à savoir que tu ne veux que des numériques dans les cellules correspondantes et seulement des entiers en colonne C:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("$C$2:$D$13,$H$2:$I$13")) Is Nothing Then
        'Si colonne C et virgule
        If Target.Column = 3 And InStr(1, Target.Value, ",") > 0 Then
            'Transformer en entier
            'L'évènement change sera rappelé et vérifiera ensuite
            'Si c'est une valeur numérique
            Target = CDbl(Left(Target.Value, InStr(1, Target.Value, ",") - 1))
        End If
        'Si ce n'est pas un nombre on vide sans rappeler l'évènement Change
        If Not IsNumeric(Target) Then
            Application.EnableEvents = False
            Target.ClearContents
            Application.EnableEvents = True
        End If
    End If
End Sub
A+
 
Re : Test qui va pas

Bonjour eliot raymond, hasco,

Tu n'embêtes personne sauf si tu changes de fil en permanence, personne n'y comprend plus rien ou risque de te proposer toujours la même chose.

Reste sur ton fil origine tant que la chose n'est pas bouclée, comme cela on voit les réponses précédentes et on peut adapter... Ici, NON.

Une question jusqu'à complète solution = un fil, un seul. Merci.

Bon après-midi tout de même.

Jean-Pierre
 
Re : Test qui va pas

Bonjour Hasco forum bonjour

Merci pour le petit code c'est presque bon, a te dire qu'il n'ai pas facile quand on debute de demander tout le temps alors voila et je n'ai pas envie de me faire virer du forum si j'abuse j'y ai appris deja enormenent de choses

Sinon

(1) La ligne 1 de la cellule A1 à I1 il faudrai autoriser que les MAJUSCULES et L'ESPACE et rien d'autres

(2) Colonne C a partir de C2 autoriser QUE les chiffres et une longueur de 7 chiffres apres ca deborde de la cellule et pas tres joli, pour l'instant l'euro passe et la virgule me renvoie erreur 13

(3) Pour le reste c'est bon je vais reverifier tout de meme

Hé bien merci pour tout et te dit a plus tard
Raymond
 
Re : Test qui va pas

RE,

Ultime test pour moi:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("$C$2:$D$13,$H$2:$I$13")) Is Nothing Then
        If Not IsNumeric(Target) Then
            Application.EnableEvents = False
            Target.ClearContents
            Application.EnableEvents = True
            Exit Sub
        End If
        'Si colonne C et virgule
        If Target.Column = 3 Then
            If InStr(1, Target.Value, ",") > 0 Then
                'Transformer en entier
                'L'évènement change sera rappelé et vérifiera ensuite
                'Si c'est une valeur numérique
                Target = CDbl(Left(Target.Value, InStr(1, Target.Value, ",") - 1))
            End If
            If Len(Target.Text) > 7 Then
                Application.EnableEvents = False
                Target.ClearContents
                Application.EnableEvents = True
            End If
        End If
    ElseIf Not Intersect(Target, Range("$A$1:$I$1")) Is Nothing Then
        Dim i As Integer
        Dim car As String
        'Vérifie tous les caractères de la cellule
        For i = 1 To Len(Target.Text)
            car = Mid(Target.Text, i, 1)
            If (Not car Like "[A-Z]") And (Not car = " ") Then
                Target.ClearContents
                Exit For
            End If
        Next i
    End If
End Sub

A+
 
Re : Test qui va pas

Re Hasco

Voila c'est bon pour moi, c'est comme ca que je le souhaitais, je vais éplucher ca de près,on peut cloturer ce fil, non sans que je te remercie auparavant pour le mal que tu t'ai donner pour aboutir a ma requete.
Je remercie egalement tout le monde et te souhaite et vous souhaitent a tous un excellent Wend end

Bonne soirée Hasco merci

Raymond
 
Re : Test qui va pas

Re bonsoir Hasco forum

Tout est en bonne place et cela fonctionne tres bien, une petite option toute fois si possible
Sinon juste dans la colonne C comment puis-je y placer AVANT d'entrer mes 7 chiffres afficher N° et un espace puis apres j'entrerai les chiffres mais si erreur effacer seulement l'erreur Pas N° et l'espace, en fait se repositionner pour nouvelle entrée. juste colonne C

Apres on cloture désoler fait un peu vite pour le message precedent (trop content)

Encore merci je suis bien content, la bonne soirée

Raymond
 
Dernière édition:
Re : Test qui va pas

Bonsoir Eliot,

Avec un format de nombre personnalisé: "N° "#######0;;"N° "

Et dans le code, là où il y a :
Code:
Target.ClearContents
tu remplaces pas
Code:
Target=0

cela devrait le faire

A bientôt
 
Re : Test qui va pas

Bonsoir Hasco, bonsoir forum,

Merci pour ta réponse, mais j'ai peur de ne pas bien comprendre, le FORMAT personnaliser je sais faire, doit-je formater toute ma colonne C ou si on peut bidouiller ca autrement en VBA et inserer au bon endroit hum, la je ne vois pas trop.

J'ai essayer mais ca marche pas terrible, d'abord N° se melange et si longueur pas OK la cellule se remplie de ###### et puis N° ne s'affiche qu'après avoir entrer les chiffres donc aucun interet pour l'option que je souhaiterai mettre en place ca fait quand meme mieux N° et puis tes chiffres.

mais c'est bon pour apprendre le VBA

Prends ton temps, c'est une option ca urge pas, le reste marche nickel.

Te dit a plus tard Hé puis merci

Raymond
 
Dernière édition:
Re : Test qui va pas

Bonsoir le fil, Raymond, Hasco

En VBA pour la plage C1:C10 (à adapter)
Code:
[C1:C10].NumberFormat = [COLOR=RoyalBlue][B]"[/B][/COLOR][COLOR=Red][B]"[/B][/COLOR]"N° "[COLOR=Red][B]"[/B][/COLOR]#######0;;[COLOR=Red][B]"[/B][/COLOR]"N° "[COLOR=Red][B]"[/B][/COLOR][COLOR=RoyalBlue][B]"[/B][/COLOR]
[C1:C10] = 0
A plus
 
Re : Test qui va pas

Bonjour Soenda, forum bonjour

Merci pour l'astuce mais ca ne marche pas comme il faut j'explique.

(1) quand j'entre des lettres , pas bon et affiche sur toute la colonne N°_ et n'efface pas
(2) quand plus de 7 chiffres ca n'efface pas et affiche ####### qui reste afficher
(3) et puis N°_ apparait APRES avoir entrer les chiffres et valider
(4) [C2:C25] =0 ca veut dire ?
(5) peut etre mal placer mais j'ai essayer sinon je ne sais pas

Le code est de Mr Hasco juste au dessus "ultime test pour moi"

Merci Soenda c'est gentil bon Dimanche PS: ca avance mon programme

Raymond
 
Dernière édition:
Re : Test qui va pas

Bonjour le fil, raymond

...ou si on peut bidouiller ca autrement en VBA...
Ma réponse précédente est la traduction en VBA de la solution de Hasco

(3) et puis N°_ apparait APRES avoir entrer les chiffres et valider
(4) [C2:C25] =0 ca veut dire ?
[C2:C25] = 0 ' met à 0 toutes les cellule de la plage.
Avec le format personnalisé proposé, cela affiche des "N°" à la place des 0 (voir post de Hasco, plus haut)

Tu demandais :
...comment puis-je afficher N° et un espace AVANT d'entrer mes 7 chiffres...
Et maintenant tu nous dis :
(1) quand j'entre des lettres...
Pour le reste, voir la PJ 😉

A plus 🙂
 

Pièces jointes

  • CaptureTest.PNG
    3.5 KB · Affichages: 67
Dernière édition:
Re : Test qui va pas

Bonjour Soenda, forum

Ok bien compris, mais merci avant toute chose, j'ai du mal m'exprimer pour la demande encore du mal sur le forum. mais je l'aurai bon,

l'image c'est bien ca

je resume
Dans la colonne et la ligne C j'affiche a gauche de la cellule N°_ AVANT d'entrer mes 7 chiffres, on test la longueur 7 chiffres pas plus, on test si pas de lettres ou autres, si OK on passe a la colonne D sinon, on efface et on se repositionne colonne C et on recommence

voila j'espere que c'est plus clair pour toi

te dit a plus tard et merci bien

Raymond
 
Re : Test qui va pas

Bonjour Raymond

Vois le code suivant
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    With Target
        If IsNumeric(.Value) Then
            .Value = Left(.Value, 7)
            .Offset(0, 1).Select
        Else
            .Value = 0
            .Offset.Select
        End If
    End With
    
End Sub

Effets éventuellement indésirables:
Ce code valide un nombre de moins de 7 chiffres,
mais ne valide pas un 0 au début du nombre.

De plus, n'oublies pas de spécifier la plage concernée, [C1:C10] ?

A plus
 
- 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

Réponses
2
Affichages
536
Réponses
8
Affichages
1 K
Réponses
0
Affichages
830
P
Réponses
4
Affichages
6 K
PalmBox
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…