positionner un bouton avec une macro en VBA

cedric cadre

XLDnaute Nouveau
Bonjour,

j'ai déjà posté un sujet précédent mais j'ai un peu avancé depuis.

j'ai un bouton formulaire avec une macro qui réalise un PDF.
je souhaiterai ajouter dans cette macro le repositionnement du bouton (formulaire qui exécute cette macro ) dans les dernières ligne de la macro car celui-ci se déplace constamment après avoir cliqué dessus.

j'ai ajouté ça :

With ActiveSheet.Bouton4
.Top = Range("C10").Top
.Left = Range("C10").Left
.Width = Range("C10").Width
.Height = Range("C10").Height

Malheureusement ça plante dès la première ligne de code.

j'ai essayé ça aussi :

With ActiveSheet.Shapes("bouton4")

ça ne fonctionne pas non plus... grrr

peut-être n'ai-je pas mis le bon nom du bouton? comment vérifier cela? ou alors ces lignes ne veulent rien dire?

merci pour vos réponses.

Merci.
 

mécano41

XLDnaute Accro
Re : positionner un bouton avec une macro en VBA

Bonjour,

Pas sûr d'avoir compris mais regarde si tu peux utiliser le "Sub Worksheet_SelectionChange(...)" de la feuil1 du fichier joint...

Cordialement
 

Pièces jointes

  • BoutonFlottant.xlsm
    25.1 KB · Affichages: 150
  • BoutonFlottant.xlsm
    25.1 KB · Affichages: 114
  • BoutonFlottant.xlsm
    25.1 KB · Affichages: 131

cedric cadre

XLDnaute Nouveau
Re : positionner un bouton avec une macro en VBA

je ne vois pas de bouton dans ton fichier... la macro ne s’exécute pas non plus... est-tu sur du fichier?

j'ai vu la ligne dont tu parles mais alors là je n'y comprend pas grand chose.

Pour être plus explicite sur ma demande :
le bouton se déplace lorsque j’exécute la macro qui lui est affecté (en cliquant dessus), je souhaite ajouter des lignes dans ma macro qui repositionne ce bouton à sa bonne place.
 

cedric cadre

XLDnaute Nouveau
Re : positionner un bouton avec une macro en VBA

c'est bon, j'ai solutionné mon problème Grace à pierre jean sur une autre discussion, voila le code VBA dans la macro pour garder le bouton à la même place (il s'agit du bouton 5 dans la feuille "devis part"):

(au début de la macro)
gauche = Sheets("Devis Part").Shapes("button 5").Left
haut = Sheets("Devis Part").Shapes("button 5").Top
hauteur = Sheets("Devis Part").Shapes("button 5").Height
largeur = Sheets("Devis Part").Shapes("button 5").Width



..........................

(à la fion de la macro)
Sheets("Devis Part").Shapes("button 5").Left = gauche
Sheets("Devis Part").Shapes("button 5").Top = haut
Sheets("Devis Part").Shapes("button 5").Height = hauteur
Sheets("Devis Part").Shapes("button 5").Width = largeur

Sheets("Devis Part").Shapes("button 4").Left = gauche1
Sheets("Devis Part").Shapes("button 4").Top = haut1
Sheets("Devis Part").Shapes("button 4").Height = hauteur1
Sheets("Devis Part").Shapes("button 4").Width = largeur1

bonne journée à vous, ce Forum est vraiment super !
 

mécano41

XLDnaute Accro
Re : positionner un bouton avec une macro en VBA

je ne vois pas de bouton dans ton fichier... la macro ne s’exécute pas non plus... est-tu sur du fichier?

As-tu bien validé les macros à l'ouverture du fichier?

Le bouton n'apparaît que si tu cliques dans l'une des lignes du tableau (plage A2:D10 nommée PlageSaisie.

If Not Intersect(Cible, Worksheets(1).Range("PlageSaisie")) Is Nothing Then ...End If ne rend l'action possible que si l'on clique dans cette plage

Ensuite en cliquant sur le bouton c'est censé lancer une action (c'était juste un fichier d'essai)

Tu peux déjà supprimer ce qui ne te sers pas ; il reste :

Code:
Sub Worksheet_SelectionChange(ByVal Cible As Range)
Dim PosVert As Long
Dim PosHor As Long
    NumLigne = Cible.Row
    PosHor = Range("T:T").Column
    BoutonFlottant1.Top = Cible.Top
End Sub

Tu verras que maintenant ça marche pour n'importe quelle ligne. Ensuite, selon ton application, il faut n'utiliser que les lignes entre Sub et End Sub et les intégrer dans ton code définissant "Cible" qui sera une cellule de ta dernière ligne...

Cordialement
 

mécano41

XLDnaute Accro
Re : positionner un bouton avec une macro en VBA

A mon avis, dans les lignes de ton message 5 tu n'as besoin que de celles ou tu traites "Top" ; il n'y a pas de raison que les autres changent...

Attention à ce que j'ai dit plus haut ...J'avais compris que tu voulais au contraire déplacer le bouton avec les lignes pour qu'il soit sur la dernière! Donc, ce n'est pas cela...

Cordialement
 

Discussions similaires

Réponses
1
Affichages
384

Statistiques des forums

Discussions
314 619
Messages
2 111 212
Membres
111 068
dernier inscrit
Lirije