Saut automatique de ligne à l'autre & insertion d'une valeur
Bonjour,
Je veux faire de la saisie et je veux sauter d'une cellule a l'autre et la condition est que si j'ai saisi une valeur positive "1" dans une cellule donnée je veux que la cellule ou les cellules de la ligne suivante donne "0" automatiquement.
Et de manière aléatoire quelque soit l'endroit où je saisirai la valeur "1" que les (la) ligne(s) me donnent "0" automatiquement.
EX: On ne peut pas avoir 2 ou 3 statut matrimoniaux à la fois!
Quand on répond par "1" à un statut matrimonial sur une colonne donnée, le reste doit être automatiquement "0"
Ainsi de suite jusque à la dernière colonne (Col 19)
Les macros sont bienvenus bien que Je suis un débutant, Est-il possible de passer par une formule ?
Merci d'avance pour les conseils de(s) spécialistes de ce forum le plus efficace du web
Je joins un fichier pour bien expliquer ma demande
Salut Frangy
Je suis très très très content
Je ne sais pas comment te remercier.
T Supeerrrr!!!!!!!!
Thanks a lot
Salut Frangy
Le macro fonctionne très très bien cependant j'ai petit souci sur un point;
La question est : Elle est allée à l'école OUI/NON? Quand la personne répond: "0" =NON
Y aurait-il pas moyen que sur la suite des niveaux ( Niveau de scolarité de la mère) que nous ayons tjrs "0"=NON ?
Pour qu'à la fin nous totalisions un nombre de 19 dans la colonne de "Total échant.". Cela pour permettre une bonne analyse par la suite.
Merci
P.S: Sinon c mortel ta réponse g suis tjrs dans l'extase!!!
Merci pour ta réponse Frangy,
C SUPEEEEER!!!! je trouve que t un Génie!!! C nikel ce que vous avez fait!!
Encore un leger malaise, J'ai commenté dans le fichier joint.
Merci Frangy pour la suite, je sais que c'est du gateau pour toi!!!
Version 3. Faites vos jeux ! On va sûrement y arriver.
Si tu veux bien arrêter de me traiter de génie, ça me fera du bien car j'ai la tête et les chevilles qui enflent et je ne ressemble plus à rien
A+
Salut FRANGY,
Euh , Excuse de te traité de génie comprenez mon émotion !!!!
Seulement, Je suis stupéfait par ce que tu as accompli comme exploits !
Mon gros souci c’est ce fichier joint où tu verras (tu verras pourquoi je m’éclate) le commentaire ou les endroits colorer pour t guider.
Encore Merci Frangy, Please permet moi de m’éclater un peu surtout quand je tombe pil poil sur ce que tu as accomplie comme exploit!!!!
Encore grand merci Frangy!!!!
Bonjour,
S’il s’agit de compléter le programme pour traiter toutes les zones du formulaire, il suffit d’appliquer la même logique.
Je veux bien t’aider et te donner des explications si tu as des difficultés à le réaliser mais je ne ferai pas le travail à ta place.
J’attends que tu m’exposes ton problème.
A+
Bonjour Frangy,
Tu as raison, j'ai des lacunes sur ce fichier ce que je souhaiterai avoir de l'aide et de l'explication. J'ai compris la logique tu as fait sur le fichier Aire 3, comment procéder à l'élargissement de cette logique (Aire 3) dans tout le fichier?
L'en tête commence par: Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage1 As Range, Plage2 As Range, Plage3 As Range, Plage4 As Range, PlageGlobale As Range, Cel As Range.
Il faut que j'ajoute le nombre de plage?
Ensuite: Set PlageGlobale = Application.Union(Range("E11:W20"), Range("E23:W24")) Dois-je ajouter le Range des autres plages cette paranthèse?
D'où je ne sais par où commencer? Comment évoluer pas à pas!!. Si tu peux être mon guide je serai ravi de commencer!
Merci pour ta remarque Frangy
A+
L'en tête commence par: Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage1 As Range, Plage2 As Range, Plage3 As Range, Plage4 As Range, PlageGlobale As Range, Cel As Range.
Il faut que j'ajoute le nombre de plage?
Ensuite: Set PlageGlobale = Application.Union(Range("E11:W20"), Range("E23:W24")) Dois-je ajouter le Range des autres plages cette parenthèse?
Quelques explications :
On utilise l’évènement Worksheet.Change qui détecte un changement de valeur d’une cellule de la feuille (cellule identifiée "Target"). Dès qu’un changement de valeur est détecté, la procédure Worksheet_Change() est lancée.
Tout d’abord, il faut pouvoir distinguer les cellules concernées par la procédure. Pour cela, il faut avoir défini toutes les plages sur lesquelles on souhaite agir, cette définition de plages étant dépendante des thèmes abordés (Profil de la mère, Niveau de scolarité, etc.).
En groupant toutes ces plages, on obtient la plage de cellules à prendre en compte (PlageGlobale). On écrit donc que la plage globale est constituée de l’union des plages à prendre en compte.
Set PlageGlobale = Application.Union(Range("E11:W20"), etc.Ensuite, on définit le sous-ensemble qui est à l’intersection du thème et de l’identifiant de la personne concernée. L’identifiant correspond à la colonne donnée par Target.column.
Exemple1 : si je modifie la cellule E11, la plage1 sera définie par l’intersection de la plage E11 :W11 (thème " profil de la mère") et de la colonne de l’identifiant (colonne E). Ce qui se traduit par :
Set Plage1 = Cells(11, Target.Column)Exemple2 : si je modifie la cellule F16, la plage3 sera définie par l’intersection de la plage F16 :F20 (thème " Statut matrimonial") et de la colonne de l’identifiant (colonne F). Ce qui se traduit par :
Set Plage3 = Range(Cells(16, Target.Column), Cells(20, Target.Column))Il te reste ensuite à définir le traitement à appliquer lorsque qu’une cellule de la plage(x) est modifiée.
Exemple pour la plage2.
'Si la cellule modifiée appartient à la plage2
If Not Application.Intersect(Plage2, Target) Is Nothing Then
'Si la mère est allée à l'école
If Cells(11, Target.Column) = 1 Then
'Pour chaque cellule de la Plage2
For Each Cel In Plage2
'Si la cellule n’est pas la cellule modifiée, alors on inscrit 0.
If Cel.Address <> Target.Address Then Cel.Value = 0
Next Cel
'De plus, si la cellule modifiée est vide, alors on efface toute la Plage2
If Target.Value = "" Then Plage2.ClearContents
'Sinon, (si la mère n’est pas allée à l'école)
Else
'alors on efface toute la Plage2
Plage2.Value = 0
End If
End IfDonc, pour résumer tu dois
1) Redéfinir la PlageGlobale,
2) Définir les différentes plages part thème (Plage1, Plage2,...., Plage136),
3) Définir le traitement à appliquer pour chacune des plages.
A+