Problème de formule excel

luciano777 -  
Raymond PENTIER Messages postés 71864 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'aimerais savoir comment empêcher la saisie des cellules d'une plage à remplir de nombre entier en fonction de la saisie d'une autre. par exemple j'ai la plage C3 à E7 à remplir de nombre entier uniquement. et je voudrais que l'utilisateur puisse tout d'abord fournir la date à la cellule B2 avant le remplissage de cette plage au cas contraire qu'un message lui soit adresser pour avertissement.
Merci d'avance pour votre aide qui me serait très capitale !!!

6 réponses

Nyctaclope Messages postés 5500 Statut Membre 1 253
 
Bonjour

Pas très indiqué ici de poster en doublon ...
http://www.commentcamarche.net/forum/affich-27369064-probleme-de-formule-excel#p27369064

Une solution, parmi d'autres : masquer tes colonnes de saisie tant que B2 est vide ..
Un exemple de macro, à adapter :
http://www.libellules.ch/phpBB2/excel-masquer-colonnes-selon-valeurs-d-une-cellule-t36138.html

Ou encore :
Un message d'erreur bien visible quelque part, selon que B2 est vide ou non, mais cela n'empêchera pas de tenter la saisie ..

Mais attend d'autres réponses ..

A+
Nyctaclope

Le plus joli des poèmes de la mathématique : e^(i.PI)=i^2
trois nombres "sacrés" d'horizons différents qui se donnent la main ...
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Bonjour,

J'utiliserai une macro événementielle.

Pour cela, clic droit sur l'onglet de la feuille concernée / visualiser le code,

Copier-coller ce code dans la fenêtre qui vient de s'ouvrir :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage As Range

Set plage = Range("C3:E7")
If Intersect(plage, Target) Is Nothing Then Exit Sub
If Range("B2") = "" Then
    Application.EnableEvents = False
    MsgBox "La saisie de la date en B2 est obligatoire.", vbCritical
    Target = ""
    Range("B2").Select
    Application.EnableEvents = True
End If
End Sub

fermer la fenêtre visual basic editor et tester....
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Bonjour

Selectionner la plage C3: E7
Accueil Validation de données Personnalisé et entrer la formule
=$D$5>0
Dans Alerte d'erreur mettre un message du style" D5 doit d'abord être renseigné"

Cdlmnt
0
Raymond PENTIER Messages postés 71864 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
La procédure "Validation des données" ne permet de fixer qu'UNE SEULE contrainte pour une cellule donnée.
Je te propose donc de l'utiliser pour limiter la saisie à des nombres entiers, en choisissant le critère Autoriser/Nombre entier.
Et tu utiliseras la "Mise en forme conditionnelle" pour vérifier si B2 est renseignée.

https://www.cjoint.com/c/CCppPD1Rno1

Cordialement.
C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Bonjour Raymond

Tu as parfaitement raison, j'avais completement zappé la condition d'avoir des nombres entiers seulement

Cdlmnt
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Par contre je ne suis pas d'accord avec UNE SEULE CONTRAINTE !

On peut parfaitement mettre plusieurs conditions à Validation de données

A partir de ton exemple la formule
=ET($B$2<>"";C3>0;C3<10000)
dans Validation Personnalisé empêche bien de rentrer une valeur si B2 est vide ou si la valeur entrée n'est pas comprise entre 1 et 9999

Cdlmnt
0
Raymond PENTIER Messages postés 71864 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Oui, via55, tu as peut-être raison sur le principe ; encore que je ne connaisse cette technique que pour la Mise en forme conditionnelle !
En essayant ta formule (et en enlevant la MFC), cela ce fonctionne pas chez moi ... as-tu testé ?
https://www.cjoint.com/c/CCqaxtQw66G

Salut.
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Oui Raymond j'ai testé et ça marche
j'ai simplement oublié de préciser qu'il fallait décocher Ignorer si vide; mea culpa !
https://www.cjoint.com/?3CqaMhwWxWt

Salutations, @+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 71864 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Merci beaucoup, via55, de ce rappel au paramètre "Ignorer si vide", que je n'ai guère eu l'occasion d'utiliser dans les pourtant nombreux classeurs que j'ai montés.
La formule de ventilation à utiliser est donc finalement
=ET($B$2<>"";C3=ENT(C3))
et il n'y a plus besoin de Mise en forme conditionnelle ...

J'espère que luciano777 aura maintenant pleine satisfaction ?
... d'autant que j'ai inclus des messages de saisie et d'erreur explicites.
https://www.cjoint.com/c/CCqbHdXwiuF

Très cordialement.

C'est bien, la retraite ! Surtout aux Antilles ... :-)
☻ Raymond ♂
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Je pense aussi !

Ta formule avec ENT est meilleure que la mienne puisqu'elle accepte tous les entiers

Dans un autre contexte on pourrait même imaginer une validation restreinte à des valeurs bien précises en combinant des OU et ET , pour n'accepter par exemple à la fois que des nombres entre 1 et 20 ou du texte limité à "O" ou "N" etc .. mais là je n'ai pas encore testé !

Bien cordialement
0
luciano777
 
salut, j'étais absent, merci de votre aide cela marche parfaitement sur une cellule. j'aimerais savoir si ceci peut être possible sur plusieurs cellules d'une plage de données car la recopie sur les autres cellules m'est un peu trop. merci de cette solution elle m'a été d'une grande opportunité

belle soirée à vous deux Raymond & via55
0
Raymond PENTIER Messages postés 71864 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Je n'ai pas compris ta nouvelle question :
qu'est-ce qui devrait "être possible sur plusieurs cellules" ?
0
luciano777
 
salut Raymond
si à partir du contenu d'une cellule hors d'une plage je peux appliquer la même condition à l'ensemble des cellules qui constituent cette plage sans toutefois procéder cellule par cellule?
0
Raymond PENTIER Messages postés 71864 Date d'inscription   Statut Contributeur Dernière intervention   17 397
 
Je ne comprends pas davantage ...
Voudrais-tu tout simplement reprendre ton exposé initial du 15 mars à 15:05 en intégrant tes nouveaux besoins ?
0