Commentaire ne suit pas la cellule avec auto-filter

Bonjour

je n'arrive pas à mettre les commentaires à coté de la cellule avec auto-filter

dans la 1° colonne ça a été déplacé manuellement

mais après j'obtiens un décalage

merci d'avance

commentaire2

Bonjour,

Sur le principe, je dirais qu'il faudrait faire quelque chose comme ça :

Sub MAJcomm()

Dim HautPage$, BasPage$

HautPage = Range("refcellhautdepage").address
BasPage = Range("refcellbasdepage").address

with Range("montab[Colonne1]").SpecialCells(xlCellTypeVisible) 'ou xlVisible ?
    .ClearComments 'attention, je suppose que seules ces cellules doivent avoir des commentaires
    .cells(1).addComment
    .cells(1).comment.text "Haut de page " & HautPage
    .cells(.rows.count).AddComment
    .cells(.rows.count).comment.text "Bas de page " & BasPage
end with

end sub

Cette macro est à corriger selon le besoin et la macro de désactivation des commentaires. Il faudra bien entendu adapter avec vos références à vous.

Cdlt,

Bonjour à tous,

un essai en modifiant les macros existantes :

Sub Chiffre1()
 ActiveSheet.Range("$E$2:$E$31").AutoFilter Field:=1, Criteria1:="1"
 If Range("E2").Comment.Visible Then AfficheComment.AfficheComment
End Sub
Sub AfficheComment()
'Application.DisplayCommentIndicator = xlCommentAndIndicator
 DL = Range("E" & Rows.Count).End(xlUp).Row
    Range("E2").Comment.Visible = True
    With Range("E" & DL)
    tempo = .Comment.Text
    .Comment.Delete
    .AddComment
    .Comment.Text tempo
    .Comment.Visible = True
    End With
End Sub
Sub Enleve_Commentaire()
 Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End Sub
Sub Vue_Normale()
 ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1
 If Range("E2").Comment.Visible Then AfficheComment.AfficheComment
End Sub

A+

Bonjour

et merci pour votre temps passé .

la méthode de 3GB ne marche pas ou je ne sais pas l'adapter

et pour AlgoPlus

il y a un début mais quand je rajoute des commentaire en ligne 15 ou ailleurs il ne me le prend pas

et cela change le format du commentaire

4envoi-rdv.xlsm (174.89 Ko)

ci joint le fichier qui est plus explicite que mes explication car ne je suis hélas qu'un bidouilleur .

cliquer dans la section recherche puis " chirurgie" et la on voit bien les commentaires décalés par rapport au filtrage

Bonjour,

pas réussi à voir tes commentaires...

Sub aligneComments()
    Dim com As Comment
    Application.ScreenUpdating = False
    For Each com In ActiveSheet.Comments
        com.Shape.Left = Range(com.Parent.Address).Offset(0, 1).Left + 10
        com.Shape.Top = Range(com.Parent.Address).Top
    Next com
End Sub

à appeler après un filtre, réaligne tous les commentaires. Pas pu tester sur ton fichier, tu diras...
Si ça freine un peu trop excel (tu ne dois pas en avoir 10000 non plus) on pourra voir pour restreindre à qq colonnes.
eric

Bonjour

Après quelques dizaines d'essais (je mettais emmêlé avec les macros)

il a fallu que je fasse une macro "affiche.comment" pour la vue générale" et

garder la votre seulement quand j'activais auto filter

tout est OK , c'est génial je n'aurai pas trouvé sans vous.

effectivement je travaille sur 6 colonnes (J,L,N,P,R,T) et avec le temps je peux avoir plusieurs centaines de commentaires

pour l'instant le test s’effectue avec une centaine de comments et ça passe

si a tout hasard il y avait possibilité d’alléger le processus je ne serais pas contre

mais je voudrais également alléger par une autre méthode qui serai que lorsque j’insère une ligne

j'ai un userform ou j'ai le choix entre plusieurs spécialiste et si je choisi "Scan" par exemple j'aimerai avoir que les comments des colonnes J,L,T

et "Généraliste " avoir (J,L,N,P,R,T)

peut-être avec cette macro qui me permet de voir les comments en fin d'insert ligne

Sub AfficheComment()
'Enleve_Commentaire
Application.ScreenUpdating = False
Application.DisplayCommentIndicator = xlCommentAndIndicator
   Application.DisplayCommentIndicator = xlCommentIndicatorOnly
'fin Enleve_Commentaire
'pour voir les commentaires en fin de session
Dim ct As Comment
For Each ct In ActiveSheet.Comments
If ct.Parent.Row = Selection.Row Then
ct.Visible = True
'Exit For
End If
Next ct
'fin de  voir les commentaires en fin de session
Application.ScreenUpdating = True
Call MàJUSF
End Sub

Si trop de travail temps pis et encore merci

Bonjour,

mais si tu insères une ligne, c'est tous les commentaires de toutes les lignes en-dessous (et donc de toutes les colonnes) qui sont touchés non ?
A mon avis seuls les commentaires affichés (par défaut un seul) peut entrainer un petit traitement supplémentaire. Le reste doit se dérouler très vite.
Pour moi il sera temps de réfléchir si tu constates une latence due à cette macro.

Pour afficher une partie des commentaires (si j'ai bien compris), je regarderai un peu plus tard.
eric

PS : déposer un fichier en situation et détailler les manip à faire.
Une insertion de ligne ne crée pas d'événement et je ne vois pas le rapport avec ton userform. Soit plus précis sur le fonctionnement voulu.

Bonjour

oui effectivement tout est touché , mais avec le filtre tout est très rapide pour moi

la latence existe juste dans l'insertion d'une ligne avec ses comments (6 ) en gros 2 secondes bon je suis a la retraite j'ai le temps

et vous rirez surement quand vous allez voir la construction de mon projet mais ça marche c'est le principal ,je crois bien que je me suis

planté dés le début avec le positionnement des comments , donc cela a été rectif sur rectif , je n'ai hélas qu'un cheminement logique

de dépanneur audio/vidéo professionnel avant et après l'arrivé du microprocesseur j'utilise le VBA comme un petit nègre

ci-joint fichier

36envoi-rdv-2.xlsm (152.88 Ko)

juste a cliquer sur New Donnée ( c'est la que la latence se voit) remplir le user form (juste "spécialiste et lieu " ) et mettre date

le fonctionnement est bon mais j'ai simplement pensé que si il y avait moins de commentaire avec certains spécialistes cela irai peut être

un peu plus vite genre Kiné colonne "J et T"

je vous souhaite bon courage

il est possible que le positionnement des commentaires soit décaler lorsque l'on utilise excel 2010 je travaille avec 2016 et écran 23"

Amicalement

Bonjour,

j'ai jeté un oeil, désolé mais c'est trop le bazar dans ton code et beaucoup trop d'erreurs d'amateur qui obligerait à tout reprendre, sans parler des non sens qui apparaissent ici et là dans ton code..
Je ne m'en sens pas le courage...

Quelques conseils :
- on ne met pas 21 modules, mais on regroupe toutes les procédures concernant le même traitement dans un module.
- on ne fait .Select ou .Activate que si c'est réellement indispensable, c'est extrêmement chronophage.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Surlignage et mettre la formule dans nouvelle régle "=LIGNE(E2) = _maLigne" qui doit être
' dans une zone de selection et nommer la cellule "J1" _maLigne
Range("_maLigne") = ActiveCell.Row
' Fin de Surlignage
   'début de ligne en haut de page ----
   Application.EnableEvents = False
Select Case Target.Column
Case 5  '4,
ActiveWindow.ScrollRow = Target.Row
Case 5
Cells(Target.Row + 1, 1).Select

Pourquoi Cells(Target.Row + 1, 1).Select ???
Tu ne t'en sert pas et tu rappelles l'événement Worksheet_SelectionChange dans lequel tu es. Tu entres dans une boucle qui (par chance ?) fini par s'arrêter.
D'autant plus que tu as mis ton Run "AfficheComment.AfficheComment" dans cet événement Worksheet_SelectionChange, et de ce fait cette macro est exécutée au moins 14 fois au lieu d'une seule fois.

Pourquoi temporiser 1s ici ? :
Application.Wait (Now + TimeSerial(0, 0, 1))

Autre exemple :

Sub NewDate()
Application.ScreenUpdating = False
Range("E2").Activate
Application.Wait (Now + TimeSerial(0, 0, 1))
 'insert ligne pour une nouvelle donnée
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrDown
    Rows("3:3").Select
    Selection.Copy
    Rows("2:2").Select
    ActiveSheet.Paste
    Range("E2").Select
    Application.CutCopyMode = False
    Range("E2:Z2").Select
    Selection.ClearContents
    Application.ScreenUpdating = True
    Call text_comment
    End Sub

Tu as 5 .Select qui te lancent un contrôle des 15 lignes saisies qui te lancent chacun le contrôle des 100 commentaires. 5*15*100=7500
Je n'ose pas imaginer avec 500 lignes de saisies...

Bref, toute la structure du code est à revoir.

Je crains que tu te sois lancé dans un truc un peu trop gros pour toi sans avoir pris le temps d'acquérir les bases.
Non seulement il te faut les bases, mais aussi apprendre à déboguer : faire en pas à pas pour suivre le déroulement ton programme, savoir utiliser les espions pour contrôler les variables, mettre des Stop, etc
http://www.commentcamarche.net/contents/1381-debogage

Et regarde le menu Cours VBA en haut de cette page, tu y trouveras des choses intéressantes.
eric

Bonjour

Je vous avais dis que vous ririez de mon fichier

et je suis complètement d'accord avec vous sur toute les lignes, mais j'ai eu des problème de santé et c’était tellement le bazar dans mes papiers

que j'ai voulu mettre de l'ordre avec ce fichier . Et grâce a vous et AlgoPlus mon fichier est OK

Quand j'aurais le temps je suivrais vos conseils.

Pourquoi Cells(Target.Row + 1, 1).Select ??? = cela fait partit d'un code que j'ai trouvé sur le net

Application.Wait (Now + TimeSerial(0, 0, 1)) = c'est pour mettre en attente le calendrier sinon cela affichait la date de 1899

parce-que d'origine le calendrier s'ouvrait avec un double clic et je n'en voulais pas, donc en faisant en sorte qu'il s'ouvre avec le userform

j'avais perdu la date du jour et comme cela, ça marche par miracle.

et pour "Autre exemple" c'est l'enregistreur de macro qui me la fait , c'est fait pour l'insert d'une ligne en faisant du copier coller

j'ai fait le test sur 100 lignes et le résultat (pour moi est OK) et chaque année je le ferais sur un autre onglet

en espérant de ne pas avoir encore plus de problème de santé.

Je vous remercie pour votre patience et de vos conseils

je met sur résolu parce-que maintenant il faut que je mette mes données

Amicalement

Rechercher des sujets similaires à "commentaire suit pas auto filter"