calcul du ou exclusif

  • Initiateur de la discussion Initiateur de la discussion stef9
  • Date de début Date de début

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 !

S

stef9

Guest
Salut tous le monde
Je cherche comment realiser la fonction de calcul ou exclusif (xor) soit en decimal soit en hexdecimal, d'une serie de nombre
Si quelqu'un peu m'aider
merci
@+
Stéphane
 
Salut Léa

Je suis au boulot: je t'envoie une p'tite démo dès que je suis rentré at home

Il s'agit de donner un mot de passe suivant le nom d'un utilisateur; c'est utilisé notament pour les sharewares

ad'taleur

Michel
 
Salut à tous,

On peut aussi traiter la question avec une fonction personnalisée, telle que :
Code:
Function XLXOR(NB1, NB2)
XLXOR = NB1 Xor NB2
End Function
Placée dans un module de code, cette fonction XLXOR s'utilise comme une formule d'Excel, par exemple :
=XLXOR(A1;A2)

Et pour le même prix, on pourra extrapoler avec les fonctions soeurs XLOR et XLAND (cf fichier joint).

A+
Horatio [file name=XOR_OR_AND.zip size=7935]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XOR_OR_AND.zip[/file]
 

Pièces jointes

Re Léa, Horatio

Ouf! la semaine est finie...

Ci joint un exemple d'utilisation de la fonction xor

Dans le classeur administrateur, tu saisis l'identifiant, par exemple Léa, je t'attribues un mot de passe

Dans le classeur utilisateur tu saisis Léa, le mot de passe dans le textbox (c'est une démo, donc je n'ai pas construit un USF) 'gagné' si le mdp est bon sinon 'perdu'

l'identifiant 'string' est converti en 'entier' par la somme des valeurs Ascii de chaque lettre de l'identifiant ce qui donne le nombre A

En fait le nombre 'B' de A xor B est une clé que tu choisis et qui te donne le mdp C
après tu compliques car l'expression est réversible
si C=A xor B
on a B= A xor C

comme les codes ont la même clé le mdp doit être le même

à noter que si tu tapes aLé au luieu de Léa ca passe.... donc....


bon WE

Michel [file name=xor_demo.zip size=50251]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/xor_demo.zip[/file]
 

Pièces jointes

Salut Lord Nelson

Ton idée de fonction est super.
Mais est ce que tu crois que l'on peut au lieu de se bloquer a 2 nombres on peut la mettre sur 'n' nombre (comme quand on calcule une somme) H3 =xlxor(A3:G3)

A+
stef
 
Bonjour Léa,

Je suis nouveau ici et je trouve votre forum super intéressant. Je pratique beaucoup le VBA Excel (et aussi Access, voire Word et les trois ensemble), mais il y a toujours quelque chose à apprendre dans ce domaine.

Les fonctions booléennes sont utilisées pour les calculs binaires (électronique des circuits intégrés, informatique pour l'assembleur), mais elles peuvent être également très utiles pour autre chose, de façon parfois surprenante.
Par exemple, pour programmer un jeu de Marienbad (ou jeu de Nim, ou jeu des allumettes), de façon à le rendre invincible. On pose le problème suivant :

l'adversaire choisit le nombre de tas et le nombre d'allumettes dans chaque tas et chacun à son tour choisit un tas et un nombre d'allumettes à ôter dans ce dernier. Celui qui prend la dernière allumette a perdu (ou bien l'inverse).
Or, si l'on exécute les calculs en binaire, cela permet de gagner à 100% si l'on commence le premier, ou bien à coup sûr dès que l'adversaire commet la première erreur, si c'est lui qui a commencé.
J'avais commencé à développer un programme Excel pour ce jeu, il y a quelque temps, mais je ne l'avais pas terminé. Votre conversation me donne envie de poursuivre dans cette voie.

P.S. : j'en profite pour dire modestement bravo à myDearFriend! pour sa macro complémentaire de calendrier, un modèle du genre.
 
Salut tout le monde,

Stef,

Le principe d'une fonction est de retourner une valeur. Donc je ne crois pas qu'une fonction puisse traiter les XOR, AND ou OR d'une plage de cellules. Une macro serait mieux indiquée pour le faire, il faudrait lui indiquer les plages de cellules à comparer et une autre plage où inscrire les résultats.
Mais, plus simplement, tu peux recopier la fonction XLXOR sur toute une colonne en regard des chiffres à comparer. Excel fera la recopie exactement comme avec une formule SOMME ou autre.

A+
Horatio
 
Bonjour Stef
Moi j'utilise ce xor pour le cryptage: si onapplique le xor caractere par caractere à un message et une cle (simplifions! de meme longueur) on obtient une chaine un peu bizarre. mais si on applique le xor à cette chaine et la meme cle on obtient le message initial.
A+
 
Bonjour,

Exemple de fonction XOR qui utilise une plage de cellules en VBA
Code:
Function JPXOR(Plage As Range) As Integer
  Dim c As Range
  Dim r As Integer
  For Each c In Plage
    If IsNumeric(c) Then
      r = r Xor c.Value
    End If
  Next
  JPXOR = r
End Function
mais comme je ne suis pas doué en algèbre booléenne, je ne garantis rien.

Jean-Pierre
 
Salut JPM

j'ai essayer d'implenter la fonction que tu m'as donné mais ca marche pas
Je sais pas si d'autre y sont arrivé ?

je te met mon fichier exel pour que vois ou j'ai 'fais du trompage'

merci @+
 
Bonjour le fil, le Forum

Une solution sans VBA

Elle utilise pas mal de cellules mais calcule Xor sur plusieurs nombres

Il faut absolument activer l'utilitaire d'analyse :

Outils, macro complémentaire, et cocher utilitaire analyse

Bon dimanche à tous

PhiBou


[file name=XorSteph9.zip size=9565]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XorSteph9.zip[/file]
 

Pièces jointes

Salut stef9,

Tu as iinséré un blanc dans l'appel de ta fonction, en C4, entre son nom et la première parenthèse.

De plus, tu aurais intérêt à placer ta fonction dans un module en la déclarant publique, pour qu'elle soit accessible de partout.
Et si tu avais ajouté l'instruction 'Stop', pour le déboguage (ensuite tu mets une apostrophe devant pour l'inhiber), tu te serais rendu compte que ta fonction n'était jamais appelée.
Enfin, dans un module tu avais une procédure Sub de même nom (vide).

Voici une suggestion, qui marche :

Public Function JPXOR(Plage As Range) As Integer
Dim c As Range
Dim r As Integer

'Stop

For Each c In Plage
If IsNumeric(c) Then
r = r Xor c.Value
End If
Next c

JPXOR = r
End Function
 
Salut JJM,
Je n'arrive pas a faire fonctionner la routine que tu m'as donnée peu tu me faire un fichier excel stp.
merci.


PhiBou:
Je te remercie , mais si le calcul pourrai se faire comme l'appele d'une fonction se serai moins lourd a gerer, surtout quand le nombre de case à calculer varie.
A+
 
Re-salut stef9,

Voici ton fichier rectifié, indiquant '2' dans la cellule.

Si tu fais [F11] tu verras le code dans le module 1.

Bonne soirée.

[file name=JPXOR_20050306191153.zip size=7467]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/JPXOR_20050306191153.zip[/file]
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
233
Réponses
23
Affichages
676
Réponses
4
Affichages
266
  • Question Question
Réponses
1
Affichages
255
Réponses
4
Affichages
281
Réponses
5
Affichages
181
Retour