Problème sur les boutons de macro

Résolu
Bonjour,

J'ai un fichier Excel contenant des macro. Sur la première feuille se trouve trois boutons pour activer celles-ci.

Le problème est que lorsque j'ouvre le fichier, les boutons se redimensionnent, changent de place aléatoirement et le fait de devoir les chercher et redimensionner à chaque fois est très...agaçant.

Sauriez-vous d'où peut venir le problème ?

Merci

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    - Mets-toi en "Mode Création" (onglet Développeur).
    - Clic droit sur ton bouton de commande.
    - Format de contrôle -> onglet Propriétés
    - Sélectionne "Ne pas déplacer ou dimensionner avec les cellules"
    - OK

    Fais ça pour tes trois boutons de commande.

    En espérant que cela fonctionne.

    Dolgan
    1. Modérateur
      Bonjour,

      Dans l'événement Workbook_Open() dimensionne et place tes Boutons de commande ou tu les souhaites...
      1. Effectivement, ça semble être une solution.
    2. Oui ça marche, merci :) Bon je comprend toujours pas pourquoi ces boutons se sont mis à bouger tout seul mais il faut bien qu'il reste une part de mystère comme on dit.
      1. Modérateur
        Pour info et pour d'éventuels internautes ayant le même souci, quel est le code que tu as utilisé?
    3. Voici le code utilisé :


      Private Sub Workbook_Open()

      ActiveSheet.Shapes.Range(Array("Button 4", "Button 5", "Button 3")).Select
      Selection.ShapeRange.Height = 42.5196850394
      Selection.ShapeRange.Width = 113.3858267717
      Application.CommandBars("Format Object").Visible = False

      With Selection.Characters(Start:=1, Length:=23).Font
      .Name = "Calibri"
      .FontStyle = "Normal"
      .Size = 11
      .Strikethrough = False
      .Superscript = False
      .Subscript = False
      .OutlineFont = False
      .Shadow = False
      .Underline = xlUnderlineStyleNone
      .ColorIndex = 1
      End With
      Selection.ShapeRange.Align msoAlignLefts, msoFalse
      Selection.ShapeRange.Distribute msoDistributeVertically, msoFalse
      Selection.ShapeRange.LockAspectRatio = msoTrue
      Range("A1").Select

      End Sub

      1. Modérateur
        Merci.
        A+