lebarbo
XLDnaute Occasionnel
Bonjour à tous, bonjour le forum,
J'ai créé récemment (grâce à la contribution de MJ13) une CommadBars avec un bouton. Cette commande se lance à l'ouverture du classeur grâce à un xla et au code dans le ThisWorkbook.
Mon problème est qu'Excel ne mémorise pas les modifications d'emplacement du bouton de commande à la fermeture. En somme, si je déplace mon bouton de la dernière ligne à la dernière ligne -1 tout à droite (à côté de la couleur de police par ex.), cette modification n'est pas prise en compte quand je réouvre un classeur.
Après de multiples recherches voici ce que j'ai pu trouver :
intRowIndex = 99
For Each cbThis In Application.CommandBars
With cbThis
If .Visible _
And .Type = msoBarTypeNormal _
And .Position = msoBarTop _
And .RowIndex <= intRowIndex _
And .Left >= intLeft Then
intRowIndex = .RowIndex
intLeft = .Left + .Width
End If
End With
Next cbThis
Set BarPerso = Application.CommandBars.Add("Ma barre")
With BarPerso
.Position = msoBarTop
.Left = intLeft
.RowIndex = intRowIndex
.Visible = True
Ceci permet d'ajouter ma barre à la dernière place à droite de la dernière ligne. Malheureusement le code n'arrive pas à compter les commandes PDFMarker et d'autres qui doivent à mon avis se charger après que la macro se soit lancée d'où le problème.
Ce code n'est en plus qu'une solution partielle, mon but étant encore une fois "d'enregistrer" toute modification d'emplacement du bouton et dans ce cas je ne mettrais que .Position = msoBarTop dans mon code.
Si vous avez la moindre piste pour m'aider, je suis preneur.
Merci d'avance,
J'ai créé récemment (grâce à la contribution de MJ13) une CommadBars avec un bouton. Cette commande se lance à l'ouverture du classeur grâce à un xla et au code dans le ThisWorkbook.
Mon problème est qu'Excel ne mémorise pas les modifications d'emplacement du bouton de commande à la fermeture. En somme, si je déplace mon bouton de la dernière ligne à la dernière ligne -1 tout à droite (à côté de la couleur de police par ex.), cette modification n'est pas prise en compte quand je réouvre un classeur.
Après de multiples recherches voici ce que j'ai pu trouver :
intRowIndex = 99
For Each cbThis In Application.CommandBars
With cbThis
If .Visible _
And .Type = msoBarTypeNormal _
And .Position = msoBarTop _
And .RowIndex <= intRowIndex _
And .Left >= intLeft Then
intRowIndex = .RowIndex
intLeft = .Left + .Width
End If
End With
Next cbThis
Set BarPerso = Application.CommandBars.Add("Ma barre")
With BarPerso
.Position = msoBarTop
.Left = intLeft
.RowIndex = intRowIndex
.Visible = True
Ceci permet d'ajouter ma barre à la dernière place à droite de la dernière ligne. Malheureusement le code n'arrive pas à compter les commandes PDFMarker et d'autres qui doivent à mon avis se charger après que la macro se soit lancée d'où le problème.
Ce code n'est en plus qu'une solution partielle, mon but étant encore une fois "d'enregistrer" toute modification d'emplacement du bouton et dans ce cas je ne mettrais que .Position = msoBarTop dans mon code.
Si vous avez la moindre piste pour m'aider, je suis preneur.
Merci d'avance,