Microsoft 365 insérer une note avec enregistrement des données

sebastien176

XLDnaute Junior
Bonjour à tous,

Dans le fichier ci-joint, j'aimerais pour voir insérer une note que je puisse retrouver en changeant la date du calendrier

Exemple : Feuille "Calendrier"
J’insère une note Sur la date du 1er février dans la cellule "D7"
Si je sélectionne le mois de Mars --> la note disparait
Si je reviens sur le mois de février --> je vois de nouveau la note

Je vous remercie par avance de votre aide

Bonne soirée

Seb
 

Pièces jointes

  • Historique Ligne Emballage.xlsm
    107.6 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Sebastien, Sousou,
Je pense que "Inserer commentaire" et "Inserer notes" c'est la même chose, l'appellation a changé sous 365 :
Et d'accord avec Sousou, traitez ça comme un nouveau champ dans votre base de données.

@Sebastien,
Rien à voir avec le topic, mais je trouve sous XL2007 qu'un changement de mois rame.....
En particulier car tous les flags restent actif, surtout ScreenUpdating.
Si vous voulez accélérer le processus, il suffit de commencer la sub par une inhibition des flags, et terminer par une remise en état, avec :
VB:
Sub Inhibition_Flag()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
    Application.DisplayAlerts = False
End Sub
Sub Dé_inhibition_Flag()
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.DisplayAlerts = True
End Sub
Ce qui conduit à :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Inhibition_Flag
  
    ... patati, patata
  
    Dé_inhibition_Flag
End Sub
Sur mon PC et XL2007 changer Mars pour Février 2024 , je passe de 21.5s à 1.55s. C'est appréciable, presque 14 fois plus rapide.
 
Dernière édition:

sebastien176

XLDnaute Junior
Bonjour Sousou, Sylvanu,

Merci à tous les deux pour vos conseils et effectivement ça va bien plus vite avec les inhibition des flags
J'arrive à enregistrer les commentaires dans ma feuille "Data" :

Private Sub Worksheet_Change(ByVal Target As Range)

'Inhibition_Flag

Dim Ligne As Long
Dim Nb_Colonne As Long

'On sort si on n'est pas dans la plage active
If Intersect(Target, Range("D7:AH7,D10:AH10,D13:AH16,D18:AH19,D21:AH30,D33:AH34,D46:AH54")) Is Nothing Then Exit Sub
If ctrl = True Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub

Ligne = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row + 1

Sheets("Data").Range("A" & Ligne).Value = Cells(6, Target.Column).Value
Sheets("Data").Range("B" & Ligne).Value = Target.Value
Sheets("Data").Range("C" & Ligne).Value = Target.Row
Sheets("Data").Range("D" & Ligne).Value = Target.Column
Sheets("Data").Range("E" & Ligne).Value = Target.Comment.Text


'Dé_inhibition_Flag

End Sub

Par contre je n'arrive pas à faire le sens inverse :

Sub MonMois()

Dim i As Long, dl As Long

Range("D7:AH7").ClearContents 'efface les cellules
Range("D7:AH7").ClearComments 'efface les commentaires
Range("D10:AH10").ClearContents 'efface les cellules
Range("D10:AH10").ClearComments 'efface les commentaires
Range("D13:AH16").ClearContents 'efface les cellules
Range("D13:AH16").ClearComments 'efface les commentaires
Range("D18:AH19").ClearContents 'efface les cellules
Range("D18:AH19").ClearComments 'efface les commentaires
Range("D21:AH30").ClearContents 'efface les cellules
Range("D21:AH30").ClearComments 'efface les commentaires
Range("D33:AH34").ClearContents 'efface les cellules
Range("D33:AH34").ClearComments 'efface les commentaires
Range("D46:AH54").ClearContents 'efface les cellules
Range("D46:AH54").ClearComments 'efface les commentaires

ctrl = True 'pour ne pas lancer la macro Calendrier / change

With Sheets("Data")
dl = .Range("A" & Rows.Count).End(xlUp).Row 'derniere ligne
For i = 2 To dl 'boucle sur toutes les lignes de la feuille Data
If Month(.Range("A" & i).Value) = Sheets("BDD Générale").Range("D2").Value And Year(.Range("A" & i).Value) = Sheets("BDD Générale").Range("E2").Value + 2022 Then
Cells(.Range("C" & i).Value, .Range("D" & i).Value).Value = .Range("B" & i).Value
End If

Next
End With

ctrl = False

End Sub

Merci d'avance pour vos retours et bonne journée ;)

Seb
 

Discussions similaires

Statistiques des forums

Discussions
315 087
Messages
2 116 086
Membres
112 656
dernier inscrit
VNVT