Utilisation de la fonction SI ???
Bonjour, et merci pour l'aide que vous voudrez bien m'apporter.
Voila mon problème:
J'ai:
Colonne A le nom des adhérents
Colonne B paiment par CH
Colonne C paiment en espèces.
J'aimerai qu'en colonne D en face du nom de chaque adhérents s'affiche la somme de x euros, (x étant invariable) que je coche par X (x majuscule) la colonne B ou la colonne C.
Autrement dit, qu'un adhérent me paye le repas par chèque ou par espèces, le chiffre 15 s'affiche en face de son nom, afin de pouvoir totaliser la colonne D.
J'espère avoir été assez clair.
Est ce que je dois utiliser la fonction SI ( Si X en B ou en C = 15 en D) en surtout comment dois-je l'utiliser ?
Est ce que je dois faire ça pour chaque ligne d'adhérent, ou une fois la formule attribuée à une cellule, je peux la recopier pour les autres ?
Merci encore pour le coup de main
Salut et bienvenue sur le Forum,
Un exemple ci-joint. Que tu écrives des x majuscule ou non ne change rien.
Voudrais-tu que les X s'inscrivent (ou s'effacent) simplement en cliquant dans la cellule ?
Cordialement.
Bonjour,
Et "x" dans chaque colonne?
Si doit comptabiliser les totaux chèques & espèces, cela peut être génant
J'ai modifié la formule en conséquence et mis une mise en forme conditionnelle (cellule fond rouge) pour alerter
Cordialement
=SI(ET(B3="x";C3="x");0;SI(OU(B3="x";C3="x");15;0))
Bonjour Jean Eric, et Yvouille.
Tout d'abord, merci pour le coup demain.
Ensuite, j'ai analyser vos formules, (je n'aime pas faire du copier/coller tout con sans essayer de comprendre.
Ca m'a permis de comprendre et d'adapter.
En fait, j'ai rajoutter en colonnes, le compte bancaire et la caisse, et en fonction de là où se trouve le "X", la colonne adéquate est provisionnée.
Ca, ça marche , encore merci.
Cependant, pourquoi vos formules à tous les deux ne se terminent pa s de la même façon ?
Celle de Yvouille se termine par: ;15;"")
Celle de Jean Eric par: ;15;0))
Par contre Yvouille, si je peux avoir le X qui s'inscrit automatiquement en cliquant dans la cellule ou se supprime, je prend. Pourquoi faire avec une Porsche si je peux faire avec une Ferrari.
En attendant, encore merci à tous les deux.
Voici donc cette possibilité de simplement cliquer dans une cellule afin d'écrire ou effacer les X.
J'ai également placé en parallèle nos deux solutions à Jean-Eric et à moi. Je n'avais bien entendu pas traité la possibilité qu'il y ait un X dans les deux colonnes.
Cordialement.
Si je comprend bien, tu as utilisé une macro pour activer la saisie du X par clic ?
Mais comment je peux la reproduire sur une autre feuille de calcul ?
Normalement, sauf erreur, il ne doit pas y avoir 2 X sur la même ligne.
Merci
Je viens de me rappeler que je pouvais faire un clic droit sur l'onglet Tabelle1 pour voir le code de la feuille de calcul.
Mais le visualbasic, pour moi c'est comme du chinois qui parlerai hébreux.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
temp = Array("X", "")
If Not Application.Intersect(Target, Range("B2:C9")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
With Target
p = Application.Match(Target, temp, 0)
If Not IsError(p) Then
If p = UBound(temp) + 1 Then p = 0
Else
p = 0
End If
Target = temp(p)
End With
End If
End Sub
Tu peux traduire ?
Bonsoir
J'avais compris la même chose qu'yvouille puisque tu parles d'adhérents et les 15 euros doivent être la cotisation. D'ailleurs tu confirme en disant :
natutarn a écrit :Normalement, sauf erreur, il ne doit pas y avoir 2 X sur la même ligne.
Merci
Partant de cela, place ce code dans la feuille concernée (ALT+F11 et tu fais un double click sur le nom de la feuille dans la partie gauche)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B2:C9")) Is Nothing Then 'plage concernée B2:C9
With Target
If .Column = 2 Then ' si la colonne est la B
.Value = "X" 'on écrit un X
.Offset(0, 1) = "" 'la cellule à droite est vide
End If
If .Column = 3 Then ' si la colonne est la C
.Value = "X" 'on écrit un X
.Offset(0, -1) = "" 'la cellule à gauche est vide
End If
End With
End If
End SubAmicalement
Nad
Bonjour Nad,
merci beaucoup pour la traduction, comprendre un peu comment ça marche m'a permi de mettre en application sur ma feuille de calcul et ça marchel.
Je n'ose pas dire que j'ai eu des problèmes parce que au lieu de corriger If .Column = 2 Then , j'ai corrigé :si la colonne est la B
Désolé, mais j'apprend.
Par contre, dans (comment appelle t'on ce que tu m'as envoyé ? Un script ? Une formule ? Donc, dans ce que tu m'as envoyé, les 2 colonnes sont l'une à côté de l'autre. Est il possible de faire la même chose avec des colones séparées (ex. 1 et 6, ou 1,2,et 6) et comment ?
Encore une fois, je voudrai remercier tous ceux et celles qui participent à ces forums, parce que sans eux, on avancerait pas beaucoup.
[quote="natutarn"]Bonjour Nad,
Par contre, dans (comment appelle t'on ce que tu m'as envoyé ? Un script ? Une formule ? Donc, dans ce que tu m'as envoyé, les 2 colonnes sont l'une à côté de l'autre. Est il possible de faire la même chose avec des colones séparées (ex. 1 et 6, ou 1,2,et 6) et comment ?
C'est bon, j'ai trouvé, j'ai étendu la plage à la colonne concernée, et ça marche en rajoutant la commande pour la dite colonne.
Une dernière chose,
j'ai donc, en G, H mes "X" qui s'inscrivent automatiquement en cliquant.
En I et J, mon chiffre 15 qui s' affiche en fonction de G ou H.
Comment est ce que je peux faire pour qu' en E, si je tape par exemple le chiffre 3, cela m'augmente la valeur de la cellule située en H de 3.
Je ne suis peut être plus sur le bon sujet là ? Je me rend compte que je déborde, mais ça m'intéresse au plus au point tout ça.
Merci
Bonjour
natutarn a écrit :(comment appelle t'on ce que tu m'as envoyé ? Un script ? Une formule ?
Un code ou une macro
natutarn a écrit :Est il possible de faire la même chose avec des colones séparées (ex. 1 et 6)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2:A10,F2:F10")) Is Nothing Then 'plages concernées
With Target
If .Column = 1 Then ' si la colonne est la A
.Value = "X" 'on écrit un X
.Offset(0, 5) = "" 'on décale de 5 colonnes vers la droite (soit colonne F)
End If
If .Column = 6 Then ' si la colonne est la F
.Value = "X" 'on écrit un X
.Offset(0, -5) = "" 'on décale de 5 colonnes vers la gauche (soit colonne A)
End If
End With
End If
End Subnatutarn a écrit :Est il possible de faire la même chose avec des colones séparées (ex. 1,2,et 6)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2:B10,F2:F10")) Is Nothing Then 'plages concernées
With Target
If .Column = 1 Then ' si la colonne est la A
.Value = "X" 'on écrit un X
.Offset(0, 1) = "" 'on décale de 1 colonne vers la droite (soit colonne B)
.Offset(0, 5) = "" 'on décale de 5 colonnes vers la droite (soit colonne F)
End If
If .Column = 2 Then ' si la colonne est la B
.Value = "X" 'on écrit un X
.Offset(0, -1) = "" 'on décale de 1 colonnes vers la gauche (soit colonne A)
.Offset(0, 4) = "" 'on décale de 4 colonnes vers la droite (soit colonne F)
End If
If .Column = 6 Then ' si la colonne est la F
.Value = "X" 'on écrit un X
.Offset(0, -5) = "" 'on décale de 5 colonnes vers la gauche (soit colonne A)
.Offset(0, -4) = "" 'on décale de 4 colonnes vers la gauche (soit colonne B)
End If
End With
End If
End SubAmicalement
Nad
natutarn a écrit :Une dernière chose,
j'ai donc, en G, H mes "X" qui s'inscrivent automatiquement en cliquant.
En I et J, mon chiffre 15 qui s' affiche en fonction de G ou H.
Comment est ce que je peux faire pour qu' en E, si je tape par exemple le chiffre 3, cela m'augmente la valeur de la cellule située en H de 3.
Je ne comprends pas - En H tu as des X - Comment veux-tu augmenter X de 3 ?
Un nouveau fichier me semble nécessaire.
Nad
Bonjour Nad,
en suivant et en décortiquant les exemples que tu m'as envoyés, j'ai compris beaucoup de choses. J'ai eu un peu de mal avec la commande OFFSET .
Elle sert à décaler au niveau des colonnes, mais dans mon cas, elle sert aussi de protection contre l'erreur d'écriture,
Offset(0, 1) = "" 'la cellule à droite est vide
.Offset(0, -1) = "" 'la cellule à gauche est vide
Si je clique en G je ne peux pas cliquer en H et inversement.
Ca m'a un peu mélanger les crayons dans la trousse !!!!
Maintenant ma feuille de calcul fonctionne comme je veux.
Est-il possible, si je clique par erreur dans une cellule, d'éffacer la saisie en recliquant dessus ?
Je sais, je suis pénible, mais je crois que je deviens accro à ce truc.
Merci
Bonjour
Une macro n'est pas nécessaire ; il te suffit d'appuyer sur la touche Suppr de ton clavier.
Amicalement
Nad
Nad a écrit :Bonjour
Une macro n'est pas nécessaire ; il te suffit d'appuyer sur la touche Suppr de ton clavier.
Amicalement
Nad
C'était juste pour m'amuser un peu plus
Merci
Où est ce que je dois signaler que mon problème est résolu ? Je ne voit pas la fonction affichée ?
natutarn a écrit :C'était juste pour m'amuser un peu plus
Alors pour t'amuser, tu peux mettre ce code
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ActiveCell = ""
End SubClick droit dans la cellule efface sa valeur
Pour passer ton fil en RESOLU, tu cliques sur le V
Amicalement
Nad
Bonjour Nad, est désolé pour le retard de ma réponse... quelques soucis de santé.
Merci pour l'aide apportée et pour la dernière macro (pour m'amuser).
J'ai d'autre soucis, mais je vais créer un nouveau fil.
A bientôt