Impossible de figer les emplacements de bouton de commande

Bonjour à tous

J'ai un problème que je n'arrive pas à résoudre seul...

J'ai un fichier excel avec un onglet : MENU

Sur cette onglet menu j'ai plusieurs bouton qui dirige les utilisateurs à des feuilles et des cellules bien précises.

Sur mon PC la mise en forme est propre!

Sur les autres PC du réseau (ceux de mes collègues) il y a des boutons qui ne sont pas au bon endroit et cela ne fait vraiment pas pro et propre.

Avez vous une idée pour ce problème.

J'insère une capture d'écran à droite c'est sur mon pc et à gauche c'est sur les autres PC (avec les boutons décalés).

Merci beaucoup d'avance pour votre aide....

accueil

Bonjour,

Sur les 2 images on voit exactement la même disposition des boutons !

Quel est exactement le problème ?

N'est-ce pas simplement une différence de zoom ?

Bonjour

Non regardez bien les deux boutons de droite...

Re,

Tu peux repositionner et redimensionner les boutons à l'ouverture du fichier en fonction des dimensions de la fenêtre.

Voir exemple joint.

Re,

Qu'entends tu par "en fonction des dimensions de la fenêtre" (quelle fenêtre)?

Ca à l'air pas mal ce que tu as fait...

Il faut que j'ajoute un module "mbouton" en copie collant toutes ton code? Et en ajoutant ton code : "call" pour chaque bouton?

Le bouton "repositionner" se gère automatiquement? On a pas besoin de cliquer à chaque fois dessus afin de repositionner les boutons?

Merci en tout cas de prendre le temps de m'aider!

Bonjour,

La fenêtre est la fenêtre Excel du fichier qui contient les boutons.

Pas besoin de bouton : le code s'exécute automatiquement à l'ouverture du fichier et en cas de redimensionnement de la fenêtre du fichier, mais pas en cas de redimensionnement de la fenêtre de l'application Excel (c'est trop compliqué à gérer).

Copies le module mBoutons dans ton fichier (dans l'éditeur VBA avec les 2 fichiers ouvert, il suffit, dans la fenêtre Explorateur de projet, de glisser-déplacer le module vers ton projet)

Copies les macros de mon module ThisworkBook et colles les dans le tien

Renommes tes boutons ActiveX en ajoutant deux derniers caractères à la fin de leur nom (2 chiffres) qui donnent la colonne et la rangée (exemple : MonBouton24 = situera le bouton dans la 2° colonne et la 4° rangée).

Penses à modifier le nom des procédures évènementielles des boutons (en y ajoutant les 2 chiffres)

Re Patrice

Je vais tester cela ce week end ou mardi.

Je te tiens informé....

Merci de ton aide!!

Salut Patrice

1) Il faut que je crée un bouton : repositionner et ajouter ce code?

Private Sub cmd11_Click()

Call mBoutons.RepositionneBoutonsActiveX

End Sub

2) Renommes tes boutons ActiveX en ajoutant deux derniers caractères à la fin de leur nom (2 chiffres) qui donnent la colonne et la rangée (exemple : MonBouton24 = situera le bouton dans la 2° colonne et la 4° rangée).

OK

Penses à modifier le nom des procédures évènementielles des boutons (en y ajoutant les 2 chiffres) : Qu'est ce que les procédures évènementielles.

3) ce qui est bizarre c'est que sur le PC de mon collègue la police des boutons n'est pas la même que la mienne lorsqu'il ouvre le fichier...


Si je renomme mes boutons tout le monde va voir le numéro de ligne et colonne

ou c'est uniquement le "name" que je dois modifier et le caption je mets ce que je veux?


Re patrice

Je t'envoi une capture d'écran de mon message d'erreur quand j'ai copie coll ton code dans this work book....

erreur

Bonjour,

Oui, c'est uniquement le Name (ajouter les 2 caractères) , Caption tu mets ce que tu veux.

L'erreur vient du fait que tu as 2 fois la procédure Workbook_Open()

regroupes les 2 en une seule :

Private Sub Workbook_Open()
  Call RepositionneBoutonsActiveX
  Sheets("Prog").Activate
End Sub

Qu'elle pinpin....

Merci!

J'ai vu dans ton fichier que tu as crée un bouton "repositionner" Il faut que je crée un bouton comme toi et ajouter ce code?

Private Sub cmd11_Click()

Call mBoutons.RepositionneBoutonsActiveX

End Sub

Bonjour,

Le bouton n'est pas nécessaire, le code se lance automatiquement à l'ouverture du fichier.

Il s'exécuter aussi lors du redimensionnement de la fenêtre du fichier mais c'est peu utile. Par contre, il ne s'exécute pas automatiquement si tu redimensionnes la fenêtre Excel car il n'y a pas d'évènnement correspondant, il faut faire appel aux fonctions de l'API Windows et c'est bien plus compliqué.

Si tu veux, tu peux faire passer la fenêtre Excel en plein écran à l'ouverture du fichier : ajoutes la ligne suivante à la procédure Workbook_Open()

  Windows(ThisWorkbook.Name).WindowState = xlMaximized

Ok Patrice,

J'ai réussi une fois mais après impossible de le refaire sur mon fichier.

J'ai du faire une erreur dans le code ci dessous :

(Tu es informaticien?)

Option Explicit

Private Sub Workbook_Open()

Call RepositionneBoutonsActiveX

Windows(ThisWorkbook.Name).WindowState = xlMaximized

End Sub

Private Sub Workbook_WindowResize(ByVal Wn As Window)

If Wn.Caption = ThisWorkbook.Name Then Call RepositionneBoutonsActiveX

End Sub

Re,

« J'ai réussi une fois mais après impossible de le refaire sur mon fichier. » ???

C'est-à-dire ???

Il faut redimensionner les fenêtres avant de repositionner les boutons.

Option Explicit

Private Sub Workbook_Open()
 Application.WindowState = xlMaximized  'fenêtre Excel
  Windows(ThisWorkbook.Name).WindowState = xlMaximized  'fenêtre du classeur
  Call RepositionneBoutonsActiveX
End Sub

Private Sub Workbook_WindowResize(ByVal Wn As Window)
  If Wn.Caption = ThisWorkbook.Name Then Call RepositionneBoutonsActiveX
End Sub

Salut Patrice

J'avance petit à petit.

Ta technique avec l'ajout du numéro de colonne et ligne à l'air de fonctionner! C'est puissant...

Par contre ca ne suit pas exactement la largeur de ma ligne c'est normal?

Concernant ton code pour mettre ma page d'accueil en plein écran cela ne fonctionne pas

Avec toute ton aide la police ne va pas changer entre chaque poste du réseau?

Je t'ai envoyé mon fichier.

Merci encore!!!

18test-bon.xlsm (128.00 Ko)

Re,

J'ai renommé tous les boutons et ajusté la largeur des boutons dans la macro

Tout fonctionne, par contre, comme les noms des boutons ont changé, il faut revoir toutes les procédures événementielles

16test-bon.xlsm (120.31 Ko)

Merci Patrice,

Donc j'ai réussi grace à ton aide à placer les boutons par contre si je veux en mettre sur la ligne 10 cela ne vas pas car :

Exemple : objectif110 (il prend en compte colonne 1 et ligne 1).

Le seul problème qui reste c'est la police qui change sur les autres postes, mon logo qui n'est pas centré par rapport au deux lignes de boutons et le fameux bouton de la ligne 10...

Bonjour,

Effectivement, le code est prévu pour 1 à 9 colonnes et 1 à 9 lignes de boutons

Pour avoir 1 à 9 colonnes et 01 à 99 lignes il suffit d'utiliser 3 chiffres au lieu de 2 pour nommer tous les boutons.

Pour reprendre mon exemple précédent,

MonBouton24 deviendra MonBouton204 = situera le bouton dans la 2° colonne et la 4° rangée,

tu pourras alors utiliser MonBouton210 = situera le bouton dans la 2° colonne et la 10° rangée

Et dans le code, il faut remplacer :

      n°R = Val(Right(btn.Name, 1))
      n°C = Val(Left(Right(btn.Name, 2), 1))

Par

      n°R = Val(Right(btn.Name, 2))
      n°C = Val(Left(Right(btn.Name, 3), 1))

Pour la police, est-ce la taille ou le nom de la police qui change ?

Si c'est la taille, c'est normal car elle s'adapte à la taille des boutons

Si le nom de la police change, c'est que la police utilisée n'est pas installée sur les autres machines

Pour le Logo, on peut prévoir de le positionner en même temps que les boutons, il faudrait que tu joignes ton fichier quand tu aura fait les modifications ci-dessus.

C'est bon Patrice,

Le logo je l'ai mis en arrière plan et si il faut je le supprimerai.

Merci pour toute ton aide...

Les boutons ne bouge plus sur les autres postes et j'ai remis une police standard.

Merci encore pour ta patience et ton aide!

Salut Patrice j'ai posé un poste concernant une problématique pourrais tu m'aider stp si possible?

https://forum.excel-pratique.com/excel/donnees-sur-page-principal-en-fonction-de-la-date-du-jour-t96270.html

Rechercher des sujets similaires à "impossible figer emplacements bouton commande"