Garder une valeur en mémoire

morinn

XLDnaute Nouveau
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.
 

Robert

XLDnaute Barbatruc
Repose en paix
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...
 

morinn

XLDnaute Nouveau
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

  • Student Calendar_Mon Start11.xlsx
    81.3 KB · Affichages: 90
  • Student Calendar_Mon Start11.xlsx
    81.3 KB · Affichages: 105
  • Student Calendar_Mon Start11.xlsx
    81.3 KB · Affichages: 105

Robert

XLDnaute Barbatruc
Repose en paix
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...
 

Misange

XLDnaute Barbatruc
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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...
 

ROGER2327

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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

  • Student Calendar_Mon Start11(1).xls
    230.5 KB · Affichages: 65

job75

XLDnaute Barbatruc
Re : Garder une valeur en mémoire

Re,

Pour la TextBox c'est mieux avec les propriétés MultiLine à True et ScrollBars à 2...

Fichier (2).

A+
 

Pièces jointes

  • Student Calendar_Mon Start11(2).xls
    227 KB · Affichages: 48

job75

XLDnaute Barbatruc
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

  • Student Calendar_Mon Start11(3).xls
    228.5 KB · Affichages: 44

job75

XLDnaute Barbatruc
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

  • Student Calendar_Mon Start11(4).xls
    243.5 KB · Affichages: 51

job75

XLDnaute Barbatruc
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

  • Student Calendar_Mon Start11(5).xls
    233.5 KB · Affichages: 59
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 822
dernier inscrit
kader55