Microsoft 365 mémo_clic fonctionnement

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

J'ai un code que m'a passé un membre du forum que je remercie au passage.
Ce code est super !!!
Il me permet d'afficher à la hauteur choisie la ligne de la cellule cliquée.
Egalement, quand je clic sur la cellule d'une autre ligne,
Il remet la ligne précédemment cliquée à la hauteur initiale
et m'affiche la nouvelle ligne cliquée à la hauteur choisie.

J'ai un gros souci cf discussion https://www.excel-downloads.com/threads/affichage-lignes-masquees-temps-de-traitement.20039711/
Ce code me permet de solutionner à 50% mon souci.

En effet, je peux quand je clique copier une ligne formatée ce qui me permet d'afficher (dans mon fichier de travail) les cellules pour qu'elle soient parfaitement lisibles,
notamment en ce qui concerne les longues annonces et nos commentaires = 50% du problème résolu


En revanche, je ne sais pas coder le retour :
C'est à dire qu'à l'affichage de la nouvelle ligne cliquée ;
Il remet la ligne précédemment cliquée à la hauteur initiale et efface ses formats (.Selection.ClearFormats)

Si vous aviez la bonne codification, ce serait super.
Je joins un fichier test.
Un super grand remerciement pour celui-là aussi :)
lionel,
 

Pièces jointes

  • memo_clic.xlsm
    20.4 KB · Affichages: 18

patricktoulon

XLDnaute Barbatruc
re
et y en a bien d'autre
mais j’arrête sinon on en fini plus:p:p:p

toutes ces demos pour dire que quand tu sais les choses elles sont de suite plus facile et surtout plus simple a coder ;)
perso je ferais bien un tour dans ton usine a gaz a coup de tronçonneuse,de hache et de rabot :p;)
 

laurent950

XLDnaute Accro
Re : Pour Finir en Boucle... heu en Beauté :p:p:p:p:p

Avec 1 Variable tableau 1 Ligne 3 Colonnes / 1 Objet Pour chaque Colonnes
C'est suffisant pour faire tourner le Programme.

Module standard : Active_Desactive
VB:
' Variable tableau Public avec Stockage de 3 Objets
    Public TabCord(1 To 1, 1 To 3) As Range
'
Sub active()
Application.EnableEvents = True
End Sub
Sub desactive()
ActiveSheet.Unprotect Password:=""
Application.EnableEvents = False
End Sub

Suite : Module Privé de la Feuil1
VB:
Private Sub Worksheet_SelectionChange(ByVal r As Range)
    Set TabCord(1, 1) = Me.Range(Me.Cells(3, 2), Me.Cells(3, 25))
' Sortie si choix de la cible
    If TabCord(1, 1).Row = r.Row Then Exit Sub
' Depart
    Me.Unprotect Password:=""
    Application.EnableEvents = False
    Application.ScreenUpdating = False
'
    If Not (TabCord(1, 2) Is Nothing) Then
        TabCord(1, 2).EntireRow.ClearFormats
        TabCord(1, 2).RowHeight = 15
    End If
'
'   Adresse Cible (A Consigner)
        Set TabCord(1, 3) = Range(Cells(r.Row, 2), Cells(r.Row, 24))
'     Format Cible (A Formater)
        TabCord(1, 1).Copy
            With TabCord(1, 3)
                .PasteSpecial Paste:=xlPasteFormats
                .RowHeight = 40
            End With
        Application.CutCopyMode = False
'
    Set TabCord(1, 2) = TabCord(1, 3)
'
' Fin
    ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlNoRestrictions
    Application.EnableEvents = True
    Application.ScreenUpdating = True
'
End Sub

Puis pour la fermeture du classeur : Module ThisWorkbook

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Sortie du classeur
' Ne pas enregistrer la variable (CustomProperties)
' Précédente Adresse Cible (Suppression tous format et Hauteur ligne 15)
' Depart
    ActiveSheet.Unprotect Password:=""
    Application.EnableEvents = False
    Application.ScreenUpdating = False
'
    If Not (TabCord(1, 2) Is Nothing) Then
        With TabCord(1, 2)
            .EntireRow.ClearFormats
            .RowHeight = 15
        End With
        ActiveSheet.Cells(3, 1).Select
    End If
'
' Fin
    ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlNoRestrictions
    Application.EnableEvents = True
    Application.ScreenUpdating = True
'
End Sub

Ont va pouvoir s'écouter un petite yvette horner car ou commence à valser :p :p :p :p :p

Tu vas en faire une sacré Usine Lionel... Tu vas pouvoir embaucher bientôt :rolleyes::rolleyes::p:p:p

Laurent
 

Pièces jointes

  • memo_clic_(14) sans Userform et Module de classe.xlsm
    28.6 KB · Affichages: 6

laurent950

XLDnaute Accro
ton TabCord(1, 3) c'est le r de Private Sub Worksheet_SelectionChange(ByVal r As Range)

Effectivement tu as raisons... avec juste 1 Tableau d'une ligne et de 2 Colonnes cela suffit
puisque r est déjà l'objet alors pas besoin de stocker r dans le tableau

Alors je propose a Lionel de refaire le dernier code avec le tableau comme décrit ci-dessus pour s’entraîner.

Sur ceux je vais aller dormir, je commence a fatigué, et encore merci
Bonne nuit Patrick
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote