Peut-on Faire apparître l'année suivant dans commentaires cellule

al87 a écrit :

Merci encore dhany

Bien expliqué

merci pour ton retour !

Re dhany

Mince pas vu

Lorsqu'on passe en 2020 commentaires A2 restent en 2017 et F2 restent en 2018

Toutes mes excuses

A+ peut-être

Cordialement

@al87

autre version (j'ai revu en profondeur la sub NouvelleAnnée) :

13tata.zip (42.49 Ko)

merci de me donner ton avis.

dhany

@dhany

SUPER!!!

Oh! ma macro!!!

Je vais mieux dormir!!!

UN GRAND MERCI

Bonne fin de soirée et de WE

Bien à toi

j'suis vraiment ravi qu'ça te plaise (surtout qu'c'était très long à faire) !

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne fin de soirée, bon weekend à toi aussi, et bon

dhany

@dhany

J'ai conscience du boulot.

Sans fichier IMPOSSIBLE

Çà fait au moins un HEUREUX...et même beaucoup d'autres (nombre de visites). C'est le but d'un forum.

Je ne sais comment te remercier.

Bonne fin de soirée

Cordialement

Bonjour al87,

tu as écrit : « Je ne sais comment te remercier » ; alors voici une petite énigme : son contour est à peine visible, c'est pour ça que beaucoup ne le remarquent pas ; mais si tu penses à l'un des 4 atouts d'un jeu d'cartes et qu'tu regardes le coin bas droit d'un de mes messages, tu sauras le trouver.

d'autre part, as-tu remarqué que sur une nouvelle feuille, y'a plus #REF! en cellule E3 ? et pourtant, ce n'est pas vide !

(déprotège la feuille pour voir la formule)

dhany

Bonjour al87,

tu as écrit : « Je ne sais comment te remercier » ; alors voici une petite énigme : son contour est à peine visible, c'est pour ça que beaucoup ne le remarquent pas ; mais si tu penses à l'un des 4 atouts d'un jeu d'cartes et qu'tu regardes le coin bas droit d'un de mes messages, tu sauras le trouver.

d'autre part, as-tu remarqué que sur une nouvelle feuille, y'a plus #REF! en cellule E3 ? et pourtant, ce n'est pas vide !

(déprotège la feuille pour voir la formule)

dhany

Bonjour dhany

Petite énigme bien "cachée" ...j'aimerais savoir

Eh! oui cellule E2.

Passe un MP si c'est possible pour l'énigme.

Encore merci à toi

Bonne fin de WE

Très cordialement

Bonjour al87,

Tu a écrit :

Eh! oui cellule E2.

cellule E2 ? non, c'est pour la cellule E3 ! la formule (variable) est :

* pour la feuille "Année 2019" : ='Année 2018'!E15

* pour la feuille "Année 2020" : ='Année 2019'!E15

* pour la feuille "Année 2021" : ='Année 2020'!E15

soit tu as fais une erreur de frappe, soit dans ton fichier réel c'est une ligne plus haut.

la formule est mise par le code VBA ; si tu préfères une autre : à toi d'adapter !


j'espère que tu as remarqué aussi ce qui arrive si tu cliques sur le bouton "nouvelle année" alors que le nom de la nouvelle feuille existe déjà ; par exemple, sur la feuille "Année 2018" si tu cliques une 2ème fois sur "nouvelle année", une erreur se produit car l'onglet "Année 2019" existe déjà : une feuille ne peut pas avoir le même nom qu'un autre onglet !

dans le code VBA, l'erreur se produit pour cette instruction : .Name = "Année " & An2

et c'est grâce à On Error GoTo ErrNomFeuille qu'on évite un brutal plantage !

le code se poursuit à cette étiquelle (ou label) : ErrNomFeuille:

et ça affiche le message : "La feuille Année 2019 existe déjà", mais attention : la nouvelle feuille a quand même été déjà créée par l'instruction ActiveSheet.Copy ; simplement, sont nom est resté inchangé : "Année 2018 (2)" ; au choix : soit tu la renomme avec un nom d'onglet inutilisé, soit tu supprimes cette nouvelle feuille (pour annuler l'action précédente si t'avais cliqué par mégarde sur le bouton "nouvelle année").

pour info, tout le mécanisme du On Error Goto label est appelé : mise en place d'une "Gestion d'erreur".


pour l'énigme, je t'ai répondu en MP.

dhany

@al87

tout c'qui va suivre est uniquement pour la cellule A2 :

pour l'année en bleu : mets la sub ci-dessous dans un module à part, puis exécute-la sur la bonne feuille :

Sub Essai()
  ActiveSheet.Unprotect
  With [A2].Comment
    With .Shape.TextFrame
      .Characters.Font.ColorIndex = 3 'tout le commentaire : en rouge
      .Characters(1, 6).Font.ColorIndex = 5 '"Rappel" : en bleu
      .Characters(22, 8).Font.ColorIndex = 5 '"Décembre" : en bleu
    End With
  End With
  ActiveSheet.Protect
End Sub

le problème sera corrigé, et t'auras plus besoin d'cette macro après : tu pourras la supprimer ; note bien qu'alors, la copie d'la feuille (à l'identique) fait qu'ça sera pareil pour la feuille "Année 2019", donc : année en rouge (puis idem pour toute nouvelle feuille suivante).

attention : ce problème était déjà corrigé dans le fichier de mon post du 30 juin à 16:43

dhany

Bonjour dhany

Exact pour le fichier de 16:43

C'est la faute au foot!!!

Là c'est TOUT correct...enfin

Encore un GRAND merci à toi

Bonne journée

Amicalement

Bonjour al87,

ah, le foot !!! pas facile d'voir en même temps l'écran d'Excel et celui d'la télé, hein ?

bon, l'essentiel est qu'maint'nant tout soit correct !!!

encore merci d'avoir passé l'sujet en résolu !

bonne journée à toi aussi.

amicalement,

dhany

@dhany

C'est moi qui te remercie

Oui l'écran télé et celui de l'ordi...pas l'idéal!!!

Quelques fois j'ai loupé des trucs ou pas lu en"diagonale"

Amicalement

Bonjour à tous

Modification macro qui ne créer plus de feuille (2) de la même année

Option Explicit
Sub NouvelleAnnee()
  Dim Couleur, cel As Range, p As Byte, An0%, An1%, An2%
  If [A2].Comment Is Nothing Then
    MsgBox "il n'y a pas de commentaire ! Action terminée.": Exit Sub
  End If
  Couleur = Array(3, 5, 43, 6, 7, 33, 29, 27, 38, 46, 26, 6)
  Const plg1 As String * 27 = "A1, G1, B2, D2, H2, G16, J2"
  Const plg2 As String * 18 = "C2, D2, G2, J2, A3"
  Application.ScreenUpdating = False
  An1 = Val(Split(ActiveSheet.Name, " ")(1))

  If An1 = 0 Then MsgBox "Nom de la Feuille non Conforme": Exit Sub

  '**********************************************************************************************
  If FeuilleExiste("Année " & An1 + 1) = True Then
    MsgBox "La feuille Année " & An1 + 1 & " existe déjà."
    Exit Sub
  End If
  '**********************************************************************************************

  ActiveSheet.Copy , Sheets(Sheets.Count): An0 = An1 - 1: An2 = An1 + 1
  '**********************************************************************************************
'  On Error GoTo ErrNomFeuille     'ça arrive si le nouveau nom existe déjà
  '**********************************************************************************************
  With ActiveSheet                'onglet de la NOUVELLE année
    .Unprotect: .Name = "Année " & An2
    .Tab.ColorIndex = Couleur((An2 - 2000) Mod 12)
  End With
  With [E3]
    .Formula = "='Année " & An1 & "'!E15": .Locked = -1: .FormulaHidden = -1
  End With
  For Each cel In Range(plg1)
    p = InStr(cel.Value, An1): cel.Characters(p, 4).Text = An2
  Next cel
  If Not [F2].Comment Is Nothing Then _
    [F2].Comment.Shape.TextFrame.Characters(35, 4).Text = An2
  For Each cel In Range(plg2)
    p = InStr(cel.Value, An0): cel.Characters(p, 4).Text = An1
  Next cel
  [A2].Comment.Shape.TextFrame.Characters(31, 4).Text = An1
  'attention : mettre en commentaire pour ne pas effacer
  'le bouton "nouvelle année" de la Feuille Précédente
  'ActiveSheet.Shapes("AnneePlus").Delete
  Range("E4:F15, H4:I15").ClearContents: [A1].Select
  ActiveSheet.Protect UserInterfaceOnly:=True
  'ActiveSheet.Protect: Exit Sub
  '**********************************************************************************************
'ErrNomFeuille:
'  MsgBox "La feuille Année " & An2 & " existe déjà."
  '**********************************************************************************************
End Sub

J'ai aussi dépacé de ThisWorkbook la macro ci-dessous et mise ailleurs (conflit)

Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function

Merci à dhany qui c'est beaucoup impliqué

Cordialement

Rechercher des sujets similaires à "apparitre annee suivant commentaires"