XL 2019 Données en mèmoire

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

Bokilo54

XLDnaute Nouveau
Bonjour à tous,

Mon planning étant terminé, je voudrais introduire des données qui restent en mémoire. En effet, si j'inscris par exemple en Janvier pour Machin AAAPPP et que je passe à Février pour inscrire d'autres infos, j'aimerais retrouver mes donnée de Janvier. VBA ou Formule, là est la question ??????
Merci ….
Luc .....
 

Pièces jointes

Bonjour Bokilo54, chris,

Voyez cette macro dans le code de la feuille "Calendrier" (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B10:AH24]) Is Nothing Then _
    ThisWorkbook.Names.Add [C3] & "_" & [C2], [B10:AH24].Formula
If Not Intersect(Target, [C2:C3]) Is Nothing Then _
    [B10:AH24] = IIf(IsArray(Evaluate([C3] & "_" & [C2])), Evaluate([C3] & "_" & [C2]), "")
End Sub
Elle permet de mémoriser le tableau B10:AH24 dans un nom défini pour chaque mois/année.

A+
 

Pièces jointes

Bonjour Bokilo54, chris,

Voyez cette macro dans le code de la feuille "Calendrier" (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B10:AH24]) Is Nothing Then _
    ThisWorkbook.Names.Add [C3] & "_" & [C2], [B10:AH24].Formula
If Not Intersect(Target, [C2:C3]) Is Nothing Then _
    [B10:AH24] = IIf(IsArray(Evaluate([C3] & "_" & [C2])), Evaluate([C3] & "_" & [C2]), "")
End Sub
Elle permet de mémoriser le tableau B10:AH24 dans un nom défini pour chaque mois/année.

A+
Déjà merci …., je vais tester l'affaire et surtout, d'abord essayer de comprendre ...
Un tout grand merci encore
Luc ....
 
Bonjour Bokilo54, chris,

Voyez cette macro dans le code de la feuille "Calendrier" (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B10:AH24]) Is Nothing Then _
    ThisWorkbook.Names.Add [C3] & "_" & [C2], [B10:AH24].Formula
If Not Intersect(Target, [C2:C3]) Is Nothing Then _
    [B10:AH24] = IIf(IsArray(Evaluate([C3] & "_" & [C2])), Evaluate([C3] & "_" & [C2]), "")
End Sub
Elle permet de mémoriser le tableau B10:AH24 dans un nom défini pour chaque mois/année.

A+
Je n'ai pas encore tout bien compris, et je dois avouer que j'utilise ton " travail ", car j'ai fait un essai et je n'arrive pas à activer la Macro ......comme je suis un sacré manche en VBA, ma question va te paraitre un peu "stupide " …….
 
Déjà merci …., je vais tester l'affaire et surtout, d'abord essayer de comprendre ...
Un tout grand merci encore
Luc ....
J'ai besoin de 50 lignes et j'ai cru de manière simpliste et selon ma logique qu'il suffisait de faire passer les cellules sélectionnées pour la Macro de AH24 vers AH50 et naturellement ça ne marche pas ...….aurais-tu la gentillesse de m'expliquer pourquoi ?
Merci …..
Hourra !!!!!! J'ai trouvé, j'ai rien compris mais j'ai trouvé la solution …...
 
Dernière édition:
Dans ce fichier (2) aller jusqu'à la ligne 50 ne pose pas de problème, utilisez ce code :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With [B10:AH50]
    If Not Intersect(Target, .Cells) Is Nothing Then _
        ThisWorkbook.Names.Add [C3] & "_" & [C2], .Formula
    If Not Intersect(Target, [C2:C3]) Is Nothing Then _
        .Formula = IIf(IsArray(Evaluate([C3] & "_" & [C2])), Evaluate([C3] & "_" & [C2]), "")
End With
End Sub

Sub LongueurFormule()
MsgBox Len(ThisWorkbook.Names("Janvier_2020").RefersTo) & " caractères"
End Sub
La formule du nom "Janvier_2020" n'a que 5530 caractères, il y a encore de la marge.
 

Pièces jointes

Dans ce fichier (2) aller jusqu'à la ligne 50 ne pose pas de problème, utilisez ce code :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With [B10:AH50]
    If Not Intersect(Target, .Cells) Is Nothing Then _
        ThisWorkbook.Names.Add [C3] & "_" & [C2], .Formula
    If Not Intersect(Target, [C2:C3]) Is Nothing Then _
        .Formula = IIf(IsArray(Evaluate([C3] & "_" & [C2])), Evaluate([C3] & "_" & [C2]), "")
End With
End Sub

Sub LongueurFormule()
MsgBox Len(ThisWorkbook.Names("Janvier_2020").RefersTo) & " caractères"
End Sub
La formule du nom "Janvier_2020" n'a que 5530 caractères, il y a encore de la marge.
Merci à toi pour ces précieuses recherches que je vais m'atteler à mettre en oeuvre, bien que le problème soit résolu. Mais je vais surtout essayer de comprendre tout cela ....
Excellente journée
Luc.....
 
- 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

Réponses
9
Affichages
832
Réponses
28
Affichages
6 K
Retour