XL 2016 Recherche une lettre dans une ligne de 10 cases puis affectation d'un autre lettre aux autres cases

  • Initiateur de la discussion Initiateur de la discussion Astyanax
  • 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 !

Astyanax

XLDnaute Occasionnel
Bonjour,
j'ai presque tout dit dans le titre.
Voici mon problème :
j'ai une ligne de 10 cases A1 à J1 et sur cette ligne je ne peux placer une lettre spécifique qu'une seule fois.
Par ex : O
Si le O est détecté sur une des 10 cases, je dois affecter une autre lettre aux 9 cases restantes.
Par ex : X
Je ne vois pas trop comment trouver la bonne formule.
Si quelqu'un a une idée, merci
 
Bonjour à tous,
Il serait bon de savoir quel sont les 10 lettres spécifiques que tu veux mettre parmi beaucoup d'autre peut-être !
Peut-être que ces lettres se trouvent dans un tableau !
Un fichier serait le bienvenu dans ce cas !
Sinon il serait facile de mettre par exemple les 10 premières lettres de l'alphabet !
Bonne journée
 
Re,
comme ça :
Lettres.jpg
 
C'est bien sûr une formule qui m'intéresse.
Le faire manuellement n'a aucun intérêt pour une demande sur ce forum.
Mais une formule à un objectif !
Si c'est pour positionner ton O à un endroit précis définitif, je n'en vois pas l’intérêt !
A moins de faire en sorte que ton O se promène dans un endroit quelconque (aléatoire) de A à J en appuyant sur une touche ( ça je ne sais pas faire mais il y a surment un bénévole pour le faire)
Bonjour mapomme !
 
Euh ! elle est où ta formule ?
Il n'y a pas de formule. C'est une procédure évènementielle qui se déclenche quand une cellule est modifiée.
On a accès au code avec les touches ALT+F11.
Le code de cette procédure est dans le module de code de la feuille "Feuil1". Le code de la procédure événementielle est: :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xrg, s$
  If Intersect(Range("a1:j1"), Target) Is Nothing Then Exit Sub
  Set xrg = Intersect(Range("a1:j1"), Target)(1, 1)
  s = LCase(xrg)
  Application.EnableEvents = False
  Range("a1:j1") = "X"
  If s = "o" Then Cells(1, xrg.Column) = "O"
  Application.EnableEvents = True
End Sub

Si tu le demandes, je peux commenter la procédure...
 
- 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

Retour