Question de nul : Coller variable dans n'importe qu'elle cel

Bonjour,

J'ai un question de novice. J'ai cherché longtemps sans éléments de réponses.

Ci-joint un fichier en pj pour exemple.

Je souhaite cliquer sur un bouton (j'en ai fait deux: Bouton A et bouton B).

Lors du clic sur le bouton, la variable doit s'enregistrer en mémoire (j'ai fait une procédure dans un module)

Ensuite je souhaite coller cette variable dans n'importe qu'elle cellule que je sélectionne sur le tableur.

La méthode pour coller m'importe peu (par un clic (je croix que ce n'est pas possible), un double clic ou un CTRL+V).

Pouvez vous m'aiguiller car pour l'instant j'arrive juste a coller toute la procédure.

Merci d'avance.

Bonjour ABRICOT

benpour votre demande, je vous quide sur

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

dans this workbook

mais je pense que tu n'a pas choisi de variable!!!!

a vous relire

J'ai mis ça dans un module

Sub Affect_A()
   'Déclaration de la variable
   Dim Affect_A As String
   'Attribution d'une valeur à la variable
  Affect_A = "A"
   'Affichage de la valeur de ma_variable dans une MsgBox
   MsgBox "Vous venez de selectionner la touche A. Cliquez dans la cellule de votre choix pour coller cette valeur"
End Sub

re

ben.... si

Affect_A = "A"

ça veut dire "A" et non pas une variable

si je comprend bien , une variable est une valeur différente a chaque click sur un des bouton

qu'en pense tu

bonjour,

je te propose de faire l'inverse, d'abord sélectionner la cellule puis cliquer sur le bouton. Le code de ton bouton serait alors :

Sub code_b()
Selection = "A"
End Sub

Salut Abricot, Illiyes,

affecter une valeur à une variable dans une procédure n'est pas suffisante pour la 'garder en mémoire'...

La variable ne 'vit' alors que le temps de la procédure puis disparaît. En quittant ta MsgBox qui t'invite à cliquer une cellule, Affect_A s'évanouit dans l'éther!

Dans ton cas, il faut déclarer tes variables Affect_A comme variables GLOBAL en première ligne d'un Module général.

Autre chose : ne donne pas le même nom aux variables et aux procédures : conflit assuré!

Voici ton fichier avec les corrections. Bonne lecture!

A+

Merci pour vos réponses.

J'ai pris celle de curulis 57 qui correspond a ce que je souhaite. merci merci. En plus quand je selectionne plusieurs cellule elles se collent également.

Si je veux que la macro s'arrête je fais comment? je rajoute un bouton pour vider la mémoire ?

Arf,

Maintenant que j'ai cette macro qui fonctionne je me dis qu'il y a toujours moyen d'optimiser du temps.

Je voudrais sur la base du même principe cliquer sur le bouton et qu'il m'affiche la variable demandé par le clic "ex : la valeur A" et qu'elle puisse s'incrémenter d'un nombre du style 1 puis le deuxième clic 2 ... etc.

Il faut que je déclare deux variables ?

Salut Abricot,

rien n'est vraiment compliqué mais tu dois commencer par mettre tout le plan de ton programme au clair.

A partir de là, tu peux décider de la logique de tes procédures et distribuer les rôles à tes contrôles ou cellules en fonction du résultat attendu.

Ici, tu veux incrémenter la valeur de A, donc, au 1er clic, dans la même procédure, t uaffiches A puis tu incrémentes et places la nouvelle valeur dans ta variable globale.

Tu peux aussi te passer de cette variable globale : une feuille Excel comporte maintenant 16.000 colonnes et plus de 1.000.000 de lignes, largement assez de place pour aller 'cacher' des valeurs que tu retrouveras quand tu en auras besoin.

Ou alors, tu peux te servir de la propriété 'Caption' de ton bouton pour afficher (et donc 'garder en mémoire' sans frais) la prochaine valeur qui sera affichée.

Dans ce fichier joint, j'ai utilisé des contrôles ActiveX avec lesquels je suis beaucoup plus à l'aise!

Le bouton affiche une suite de lettres en incrémentant leur valeur... à toi de découvrir et de décortiquer!

A+

Merci curulis57.

Bon je viens de voir ton code et là j'ai pleuré tellement que je ne comprends rien. ça m'agace. j'ai l'impression d'être un papy qui découvre windows 95 et qui cherche a faire comment "enregistrer sous un fichier"

Bon, pour l'incrémentation je me suis débrouillé. j'ai créer un compteur clic dans une case "c'est pratique parceque je peux même le modifier à la demande" et du coup lorsque je clic sur le bouton A par exemple, j'ai A1; si je continue j'ai encore A1 (génial c'est ce que je veux" et si je veux A2, j'ai juste besoin de recliquer et vas y mon kiki ça fait des A2 et des B3 et ainsi de suite.

Je suis content d'avoir sorti ça en 5 h alors qu'il vous faut moins de 10 secondes .

Maintenant le problème c'est que je souhaite arrêter cette procédure à tout moment une sorte de "mise en pause". Mais pour cela j'ai réalisé un nouveau post car j'ai considéré que celui là était finalement résolu (et je te remercie pour cette résolution).

le nouveau post : https://forum.excel-pratique.com/excel/mettre-en-pause-une-procedure-t89403.html

Rechercher des sujets similaires à "question nul coller variable importe cel"