Problème de boutons qui se décalent

Bonjour,

J'ai un problème de boutons qui devraient suivre la ligne active mais qui apparaît plusieurs lignes

plus haut et plus j'ajoute de lignes au fichier plus écart est grande.

Pourquoi et comment faire pour régler le problème?

Je joins un fichier.

Merci.

Bonsoir Oiseau, bonsoir le forum,

Pourquoi ne pas simplement les mettre dans la ligne 3 qui est figée. Ils seront toujours accessibles sans aucun code... Des fois, j'ai peur pour les mouches...

bonsoir,

l'écran est divisé sur la 3ieme ligne, si vous désactivez cela le décalage est terminé.

Bonjour et merci pour vos réponses,

j'ai désactivé le fractionner sur le 3ième ligne et j'ai mis toutes les lignes de la même largeur et j'ai toujours le même problème de décalage. Au début cela va bien mais plus on descend plus le décalage s'accentue.

Je ne peux pas les mettre sur la 3ième ligne puisque je dois être positionné sur la ligne ou les lignes à copier ou à effacer.

Merci.

bonsoir,

si vous utilisez le double-click event dans la colonne B et oubliez ces boutons ?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     Dim Reponse
     If Intersect(Target, Range("B8:B100")) Is Nothing Then Exit Sub     'si double-click hors cette plage = fini
     Cancel = True     'ne pas montrer le popup-window

     Reponse = MsgBox("Yes = effacer (la ou les ligne(s) selectionnee(s)" & vbLf & "No = Insert une nouvelle ligne" & vbLf & "Cancel = rien", vbQuestion + vbYesNoCancel, UCase("Que voulez-vous"))
     With Target.EntireRow     'toute la ligne du target
          Select Case Reponse     'dépendant du bouton choisi
               Case vbYes: .Delete     '>>> YES = effacer lignes
               Case vbNo     '>>> NO = inserter ligne
                    .Copy
                    .Insert xlDown, 0
                    Application.CutCopyMode = False
          End Select
     End With
End Sub

Bonjour et merci pour votre réponse.

Il y a une solution pour expliquer le décalage des boutons?

Est-ce possible de conserver les boutons?

Merci.

Bonjour Oiseaubleu, Le Forum,

Il y a une solution pour expliquer le décalage des boutons?

Est-ce possible de conserver les boutons?

Ton décalage de boutons provient que ta fenêtre (Window) est affichée avec un zoom de 90%. Ce qui explique le décalage de l'écran à la longue.

Mets ton zoom (Menu Affichage) en position 100% et tu peux utiliser ton code de suppression ou d'ajout efficacement.

Lorsque tu n'est pas dans ce but (pour aller plus vite dans une recherche) , change ton zoom selon ton choix.

Bonjour et merci pour vos réponses,

Est-ce qu'il y a une façon de vérifier à quel pourcentage est le zoom et de corriger le .TOP en fonction du pourcentage de zoom de l'écran d'Excel?

Donc rajouter au .TOP une valeur pour le zoom de 90% et une autre valeur si le zoom est à 80%?

Merci.

A nouveau,

Donc rajouter au .TOP une valeur pour le zoom de 90% et une autre valeur si le zoom est à 80%?

Vu que ton Top dépend de la ligne active, et que la fenêtre Window est correcte quand le zoom est en modulo 50 (Reliquat = 0).

C'est à dire que le zoom divisé par 50 donne un nombre entier (aucun reliquat). Sinon le rapport serait un nombre décimal. Exemple: pour 90 -> 1,80

Même si cela pourrait être réalisable quelque soit le niveau de zoom, cela va dépendre du nombre de lignes que ton tableau pourra atteindre.

Car il faudra actualiser la formule en fonction de la valeur (en milliers) de la ligne active et du pourcentage zoom (> ou < à 100%).

Donc il est préférable comme dit dans mon dernier message d'utiliser la forme en zoom 100%.

Bien sur cela peut se faire par macro pour éviter les manipulations manuelles de zoom.

Donc en Selection_Change, ajouter après le Rows.count. Aussi il serait préférable que celui-ci soit actif uniquement sur la colonne B et non tout le tableau.

Range("B1").Value = Target.Rows.Count
Range("C1").Value = ActiveWindow.Zoom

Au début du code de

Sub Heures_DisplayButtons()
ActiveWindow.Zoom = 100

Enfin rétablir le niveau de zoom au lancement de l'opération effacer ou copier.

Sub Heures_Effacer_ligne()
    Dim Mi As Integer
    ActiveWindow.Zoom = [C1]

........

Sub Heures_Copier_ligne()
    ActiveWindow.Zoom = [C1]

Merci beaucoup pour tous vos efforts pour régler mon problème de boutons.

Rechercher des sujets similaires à "probleme boutons qui decalent"