Boutons de macros suite à lancement autre macro

Bonjour,

Je vous explique mon problème. J'ai une feuille excel sur laquelle j'aimerais avoir 2 boutons éxécutant des macros, et que ces 2 boutons soient juste en dessous de la dernière ligne remplie.

Le probleme est que cette feuille excel est elle même générée par une macro, et sa taille (et surtout son nombre de lignes utilisées) peut varier, alors qu'à l'heure actuelle mes boutons sont fixes et ne s'adaptent pas (cf capture).

Quels outils pourrais-je utiliser pour que ces 2 boutons s'ajustent automatiquement par rapport à la derniere ligne non vide ?

Je vous remercie par avance.

Marius

vba1

Voila ce que j'ai essayé, sans réussite :

Private Sub Worksheet_Activate()

xx = Range("E" & Rows.Count).End(xlUp).Row

ActiveCell = xx + 1

CommandButton (act_52_v2)

ActiveCell = xx + 2

CommandButton (act_55_v2)

End Sub

Bonjour,

peut-être en incluant en fin de la (les) macro qui fait varier le nombre de lignes de la feuille

DL = UsedRange.End(xlDown).Row + 1
'pour des boutons ActivX:
CommandButton1.Top = Cells(DL, 5).Top 'adapter le nom du bouton

'pour des boutons Formulaire:
Shapes("Bouton 1").Top = Cells(DL, 5).Top  'adapter le nom

A+

Ci-joint le test de ta proposition :

vba12

Il affiche une erreur au niveau du "shapes"

peut-être en précisant la feuille.

with worksheets("nom de la feuille")
DL = .UsedRange.End(xlDown).Row + 1
'pour des boutons ActivX:
'CommandButton1.Top = Cells(DL, 5).Top 'adapter le nom du bouton

'pour des boutons Formulaire:
.Shapes("Bouton 1").Top = Cells(DL, 5).Top  'adapter le nom
end with

Es tu sûr du nom des boutons?

Idem en identifiant le bouton par son numéro

vba12

Rajouter le with worksheets(...., ne suffit pas, il faut rajouter un point (.) devant les objets qui doivent être rattachés à cette feuille, comme dans l'exemple de mon précédent post (même si j'ai omis d'en mettre partout où il faut) et terminer par End With:

with worksheets("nom de la feuille")

DL = UsedRange.End(xlDown).Row + 1

'pour des boutons Formulaire:

Shapes("Bouton 1").Top =Cells(DL, 5).Top 'adapter le nom

end with

je ne comprend pas pourquoi essayer avec plusieurs noms?

Chaque bouton a un nom qui lui est propre!

Joins le classeur que je regarde....

A+

Je ne peux joindre le classeur, il s'agit d'un fichier d'entreprise non diffusable.

Voila le résultat obtenu avec ta solution! Je ne comprends pas pqoi les boutons s'ajustent à ce nvieau la, et pas apres la dernière ligne.

merci

vba12

a priori le souci provient de la détection de la dernière ligne utilisée de la feuille (DL)

Utiliser plutôt ( sans oublier le point):

DL = .Range("A" & Rows.Count).End(xlUp).Row + 1   ' ou + 2

A+

On tient le bon bout ! Seul hic, le saut de ligne n'a pas l'air de fonctionner

vba1 vba12
.Shapes("Bouton 1").Top = .Cells(DL, 5)

l' "ordonnée" du haut du bouton = l' "ordonnée" du haut de la cellule sur la ligne DL

Le haut de la ligne DL (dernière ligne renseignée +1), correspond au bas de la dernière ligne utilisée; donc le haut du bouton va venir se coller juste sous cette ligne utilisée.

Pour que le bouton soit un peu plus bas, augmenter DL avec , par exemple:

DL = .Range("A" & Rows.Count).End(xlUp).Row + 2   ' ou + 3

C'est bon, tout marche correctement. Je vous remercie beaucoup.

Rechercher des sujets similaires à "boutons macros suite lancement macro"