Garder une valeur en mémoire

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

M

morinn

Guest
Bonjour,
j'ai eu beaucoup de mal à trouver un titre pour ce post et il n'est peut être pas adapté. Je m'en vois d'avance désolé.

Je vous explique mon problème :

J'ai un classeur excel, composé de 12 feuilles correspondant au mois de l'année basé sur le modèle Office.com/calendrier/calendrier2012/calendrier de planning hebdomadaire pour étudiants.
Dans ce dernier, pour n'importe quel mois, il est noté de C4 à I9. Donc une semaine en C4:I4, C5:I5, [...], C9:I9.
A droite du mois, il y a une possibilité de prendre des notes par jour (Range K2:M32).

Est-il possible que si je clic sur un jour d'une semaine, par exemple la cellule D5 qui serait donc dans C5:I5, je puisse prendre des notes dans la case L10:M14 qui correspond aux affectations du mardi mais tout en ayant d'autres notes si je choisis une autre semaine.

Concrètement, je choisis le mardi 11 janvier qui est dans la semaine du 10 au 16, je note "prendre le tournevis" dans la cellule M10. Ensuite je choisis le mercredi 19 janvier. Au mardi je n'ai plus rien puisque ce n'est plus la même semaine et je note "Acheter un moule à tarte". Si je reclic sur le 11 janvier, le mercredi n'apparait plus mais le "prendre le tournevis" lui réapparait parce qu'il serait resté "en mémoire".

Si ce n'est pas clair, je peux répondre à vos questions.


Par avance merci.
 
Re : Garder une valeur en mémoire

Bonjour Morinn, bonjour le forum,

Sans fichier exemple ce n'est absolument pas clair. Envoie-nous au moins un onglet qu'on puisse "voir" tes explications.

Ha autre chose très importante... Il faut jamais prendre un tournevis le mardi. D'une part, ça porte malheur. Si tu n'es pas superstitieux c'est pas grave, moi non plus. Dieu merci ! Et d'aute part, on ne démoule pas une tarte avec un tournevis... Ô sacrilège...
 
Re : Garder une valeur en mémoire

Merci de votre réponse.
Je joins donc le fichier où j'ai juste rajouté une zone de texte avec l'explication de ce à quoi je voudrai arriver.

Merci encore
 

Pièces jointes

Re : Garder une valeur en mémoire

Bonjour Morinn, bonjour le forum,

Désolé mais avec ma version Excel 2003 ton fichier ne fonctionne pas bien, malgré le convertisseur. Pourrais-tu rajouter en pièce jointe une version 2003 pour les retardés comme moi...
 
Re : Garder une valeur en mémoire

Bonjour

déjà ceci est impossible :
"Je clique sur le 4 janvier(cellule D5 du range("C5:I5"), et je note à mardi (cellule M10) "tournevis"."
Tu ne peux pas démouler une tarte avec un tournevis (quoique si c'est une tatin qui a attaché on pêut se poser la question, j'ai bien récupéré un faitout avec une brosse métallique montée sur la perceuse...) mais tu ne peux pas plus dire à excel ce que j'écris dans la cellule M10 concerne la cellule D5 et qu'il s'en souvienne.

Mais pour le reste, je n'ai RIEN compris à ce que tu souhaites faire. Désolée
 
Re : Garder une valeur en mémoire

Bonjour Morinn, bonjour le forum,

Désolé Morinn, je suis vraiment attardé car rien de ce que tu décris :
Je clique sur le 4 janvier(cellule D5 du range("C5:I5"), et je note à mardi (cellule M10) "tournevis".
Puis je clique sur la cellule E6 du range ("C6:I6"). En M10, il n' y a plus rien puisque tournevis est affecté à la semaine d'avant et non à la semaine sélectionnée. En M16, je note "moule à tarte".
Si je clique de nouveau sur une des cellules du range ("C5:I5"), il n' y a plus rien en M16 mais le tournevis de M10 réapparait et vice versa
ne se passe chez moi... Du coup, je vois pas comment t'aider...
 
Re : Garder une valeur en mémoire

Bonjour à tous


À morinn : Ce que vous souhaitez faire me semble possible mais pas simple. Accepteriez-vous une solution utilisant VisualBasic ?​


ROGER2327
#5746


Vendredi 13 Clinamen 139 (Nativité de Maldoror, corsaire aux cheveux d’or - fête Suprême Quarte)
15 Germinal An CCXX, 4,3601h - abeille
2012-W14-3T10:27:51Z
 
Re : Garder une valeur en mémoire

Bonjour morinn, salut Robert, Roger, Misange,

Les AFFECTATIONS en colonnes K:N me paraissent une solution trop compliquée.

Voir le fichier joint qui utilise :

- un UserForm avec une TextBox qui s'ouvre par double-clic sur une date

- un nom défini sur la date pour mémoriser le texte.

Macro dans ThisWorkbook :

Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, _
        ByVal Target As Range, cancel As Boolean)
If Not Intersect(Target, Sh.[C4:I9]) Is Nothing Then _
  cancel = True: UserForm1.Show
End Sub
Macros dans le code de l'USF :

Code:
Private Sub UserForm_Initialize()
Me.Caption = UCase(Format(ActiveCell, "mmmm_yyyy_dd"))
On Error Resume Next 'si le nom n'a pas été défini
TextBox1 = Evaluate(Me.Caption)
End Sub

Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
ThisWorkbook.Names.Add Me.Caption, TextBox1.Value
End Sub
A+
 

Pièces jointes

Re : Garder une valeur en mémoire

Re,

Petit inconvénient : le nom défini n'accepte pas plus de 255 caractères.

Il faut donc limiter :

Code:
Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
ThisWorkbook.Names.Add Me.Caption, Left(TextBox1, 255)
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : Garder une valeur en mémoire

Re,

Voici une solution pour éviter la limitation du texte à 255 caractères.

Le nom défini est un tableau (vecteur vertical) dont chaque élément a (au plus) 255 caractères.

Le code de l'USF :

Code:
Private Sub UserForm_Initialize()
Dim t
Me.Caption = UCase(Format(ActiveCell, "mmmm_yyyy_dd"))
On Error Resume Next 'si le nom n'a pas été défini
For Each t In Evaluate(Me.Caption) 'analyse du tableau mémorisé
  TextBox1 = TextBox1 & t 'concatène les éléments du tableau
Next
End Sub

Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
Dim tablo$(), i&
ReDim tablo(Int(Len(TextBox1) / 255), 0)
For i = 0 To UBound(tablo)
  tablo(i, 0) = Mid(TextBox1, 255 * i + 1, 255)
Next
ThisWorkbook.Names.Add Me.Caption, tablo
End Sub
J'ai testé avec plus de 255 caractères sur Excel 2003 et Excel 2010 : le texte est restitué parfaitement.

Fichier (4).

A+
 

Pièces jointes

Re : Garder une valeur en mémoire

Re,

Encore une propriété de la TextBox à modifier : EnterKeyBehavior à True.

Cela permet le saut de ligne avec la touche <Entrée>.

Edit : j'ai mis aussi le curseur en début de texte avec le code :

Code:
TextBox1.SelStart = 0 'curseur en début de texte
Fichier (5).

A+
 

Pièces jointes

Dernière édition:
- 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

K
Réponses
6
Affichages
3 K
K
Réponses
4
Affichages
875
kangourou01
K
L
Réponses
1
Affichages
1 K
Lucien31
L
N
Réponses
6
Affichages
2 K
Neonours
N
P
Réponses
4
Affichages
1 K
N
Réponses
2
Affichages
11 K
N
R
Réponses
6
Affichages
1 K
RantanFred
R
A
Réponses
1
Affichages
1 K
@+Thierry
@
Retour