Macro Ecrire dans une cellule.

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 !

Lemimelo

XLDnaute Nouveau
Bonjour.
Je cherche désespérément du code pour me permettre d'avoir simplement ma macro qui :
- attende que je saisisse qqc dans une cellule (pas de Textbox ou autre)
- une fois avoir tapé sur entrée, enclenche la suite du code qui agira sur ce qui a été saisi dans la cellule.


Ca doit etre simple mais je ne le trouve nulle part...
Merci d'avance pour vos retours.
Lemimelo
 
Re : Macro Ecrire dans une cellule.

Bonjour Lemimelo, mon bon vieux cher Robert, le Fil, le Forum

Ci-joint tu trouveras une version extrapolée de la version de Robert avec les deux colonnes...

Par contre c'est un peu plus compliqué car je passe pas un tableau en mémoire (TabDico) et plus par une plage de cellules, c'est beaucoup plus rapide sur 8000 lignes.

Il faut comprendre aussi que la liste box est en BASE ZERO, alors que ce TABLEAU est en BASE UN... pour les novices c'est un vrai casse tête si on ne comprends pas ca dès le début. (Base Zero signifie que la première entrée aura l'index 0, idem sur la deuxième dimension ... Comprendre que la Première Colonne aura l'index 0)

En prime le Tableau est dans le format TabDico(Num Ligne, Num Colonne) alors qu'une ListBox est opposée
ListBox1.column(Num Colonne, Num Ligne)...

Bonne découverte... J'ai ajouté aussi des Options...

@+Thierry
 

Pièces jointes

Dernière édition:
Re : Macro Ecrire dans une cellule.

Bonsoir le fil,

Je m'immisce (pour la bonne cause) pour faire coucou à Thierry...

Je t'ai même fait coucou sur un fil spécial tout à l'heure, suivie par jmps... tu nous manques... alors on lance des sos...

Bisous

Ta secrétaire préférée
 
Re : Macro Ecrire dans une cellule.

Coucou Brigitte,

Merci pour ce petit mot aussi, désolé pour l'aparté Lemimelo, ca fait plaisir de te retrouver ma chère MSPP (Ma Secrétaire Particulière Préférée) j'espère que tu te portes bien depuis le temps.

Moi tout va très bien, je n'ai plus trop l'occasion de "jouer" avec Excel (je suis MS NAV et SQL Server maintenant), mais comme ca je me fais une séance de rattrapage sur ce Fil pour voir si je n'ai pas tout oublié lol

Bien à toi, à tous ceux/celles que je connais (et que je ne connais pas ;-)

Grosse Bise à Toi (quel Fil avec José je vais chercher ?)
@+Thierry
 
Re : Macro Ecrire dans une cellule.

Merci à Thierry, je ne touche plus terre...
En revanche ton code ne marche pas chez moi. Il a déjà fallu que je rajoute 1 à UserForm dans Private Sub UserForm1_Initialize().
Par la suite, la macro bloque dans TheSearher (ca a une signification particulière ?) au niveau
For i = 1 To UBound(TabDico, 1)

A cette occasion j'ai appris à utiliser les espions, ils m'ont dit que TabDico était vide. Cela te donne une indication ?
 
Re : Macro Ecrire dans une cellule.

Après toute ces brillantes propositions, ma réflexion a évolué. Finalement, le Graal pour moi serait vraiment de saisir directement dans une cellule et d'avoir une saisie semi-automatique à la manière d'excel = comme lorsqu'on écrit qqc à la suite d'une liste déjà écrite, et où excel met en surbrillance les caractères manquants. Sauf qu'ici, la liste serait prédéfinie et dans une autre feuille.

Quelqu'un a une idée ?
 
Re : Macro Ecrire dans une cellule.

Re Bonsoir

ERRATUM ++++ JE SUIS TOTALEMENT FAUX désolé Robert

En effet il manque bien le 1........... Cà c'est un coup à Robert!!! c'est dans sa version 03 !! lol,
le plus marrant c'est que mon Excel 2010 ne vois même pas ce bug...

Private Sub UserForm_Initialize() 'a l'initialisation de l'UserForm


Pour le plantage de Ubound(TabloDiico,1) il faut être sûr qu'il s'initialise bien dans le UserForm1_Initialize()
Par cette ligne :
TabDico = .Range("A2:B" & dl)
Pour le reste, j'ai bien peur que malgrè qu'Excel et VBA fassent des miracles, tu ne pourras pas arriver à programmer une Liste semie-automatique (comme Excel le fait) car là c'est dans le coeur même d'Excel et plus par VBA,

Non si tu parviens à faire fonctioner le UserForm c'est une solution... J'aii laissé comme Robert avait préparé, le UserForm ne se déclenche que sur la Colonne "A" -( la colonne 1) car dans le Private Module de Feuille il y a ceci :
If Target.Column = 1 Then

Si tu enlèves cette instruction il se déclencera partout... Au début de ce Fil Robert a pris le temps de faire un Tuto pour les évenements ...

Bonne Programmation

@+Thierry
 
Dernière édition:
Re : Macro Ecrire dans une cellule.

..Par la suite, la macro bloque dans TheSearher (ca a une signification particulière ?)...

Je n'ai pas répondu à cette question, non pas de signification particulière, c'est une simple Sub (Private puisque propre au UserForm, j'aurai pu la nommer LeRechercheur() lol

En fait c'est parcequ'elle est appelée de trois évènements différents :
TextBox1_Change()
OptionButton1_Click()
OptionButton2_Click()

Et comme ca elle est "mutualisée" ....

Bonne soirée

@+Thierry
 
Re : Macro Ecrire dans une cellule.

Pour le TabDico, je n'arrive pas bien à voir comment il pourrait ne pas s'initialiser. D'autant plus que je ne maitrise pas bien le pas-à-pas quand on passe comme ça d'une procédure à l'autre...

Pour le TargetColumn = 1, oui je l'enlève aussi, mais je garde l'idée !

Enfin pour la saisie semi-automatique, c'est quand même bien dommage que cela ne soit pas possible !
 
Re : Macro Ecrire dans une cellule.

Bonsoir le fil, bonsoir le forum,

Ha bon ! Et depuis quand il faut mettre le
1 à UserForm1_Initialize() ? Au contraire, si l'on met le 1 l'initialisation ne se fait pas. En tous cas avec Excel 2003...
Sinon Thierry :
Code:
If Me.ListBox1.ListCount = 1 Then 'condition : si la ListBox1 ne contient qu'un seul élément
'place dans la cellule active le resultat de la recherche dans la plage pl du contenu de la ListBox1 décalé d'une colonne à droite
ActiveCell.Value = pl.Find(Me.ListBox1.List(0), , xlValues, xlWhole).Offset(0, 1)
Unload Me 'vide et ferme l'UserForm
ActiveCell.Offset(1, 0).Select
avait l'avantage de placer le nom entier dès que l'utilisateur avait tapé les premiers lettres uniques du code raccourci, sans avoir à cliquer qur un quelconque bouton.
Je trouve que ça ressemble assez à la dernière demande de Lemimelo car je ne sais pas si ce qu'il demande est réalisable avant de valider la cellule...?
 
Re : Macro Ecrire dans une cellule.

Re bonsoir
Je reviens sur ce que j'ai dit ...

NON c'est bien

Private Sub UserForm_Initialize() IL N'Y A JAMAIS DE NUMERO dans Userform_Initialize

Pardon Robert !

Je n'ai plus l'habitude du VBA lol

Donc NON tu ne dois pas changer ma version telle quelle est et elle doit fonctionner ...

Cordialement
@+Thierry
 

Pièces jointes

  • point arret.jpg
    point arret.jpg
    36.4 KB · Affichages: 67
Re : Macro Ecrire dans une cellule.

Bonjour Cher Robert

C'était pour le coup des Beatles que je voulais que tu mettes 1 dans UserForm Initialize lol

Bon oui dans ta solution si donc en tapant le nom de code suffisamment loin on finissait par n'avoir qu'un seul résultat dans la ListeBox elle était inscrite automatiquement, OK capito...


Moi c'est avec un simple clique sur la ListBox qu'on inscrit le Code et la Description Complète dans le Cellule Target et celle d'à coté ... c'est une autre approche on tape moins de lettre du Code et on voit aussi la description et on choisit ... Niveau Manip c'est pareil je pense... Je pourrais évidement fermer aussi le Userform après le Click sur la ListBox... Niveau Tableau au lieu de Range sur 8000 lignes il n’y a pas photo…

Par contre donc je pense que nous sommes d'accord sur l'impossibilité de reproduire le saisie semi-automatique d'Excel par VBA ... Ou alors une vraie usine à gaz qui aura tellement d'effets de bord que cela sera ingérable... Un USF est bien plus simple et fiable.


Bien à toi cher ami

@+Thierry
 
Re : Macro Ecrire dans une cellule.

Bonsoir le fil, bonsoir le forum,

Arf... Je savais que les Beatles allaient t'énerver...
Comme tu avais commenté que tu ne comprenais pas l'intérêt j'ai juste voulu expliquer le pourquoi du comment de ma proposition...
Tu sais, ça fait du bien de te revoir par ici, de retrouver ton esprit (dans tes codes et dans tes déconnades...).
 
- 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