Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur Version

2 réponses
Avatar
leo
.Bonsoir,
Un problème que je soumet à votre sagacité.

Ma macro est utilisée sur un réseau, avec plusieurs version d' Excel.
En particulier 2000 ( version 9.0 ) et XP ( version 10.0 )

Bien sûr, certaines méthodes ne sont pas utilisées par la version 9 et
plantent....

Exemple :
Création d'un commandbar, avec un bouton, dont l'image provient d'un
userform.
ça fonctionne en version 10 et pas en 9.

Comment faire car cela plante, dès la compilation ??????

'
'
Dim MaBar As CommandBar
Dim Btn1 As CommandBarButton

Set MaBar = Application.CommandBars.Add("CalenBar")
With MaBar
Set Btn1 = .Controls.Add(msoControlButton) '
With Btn1
.Picture = UFVersion.Image1.Picture
.OnAction = "ARTT" ' Macro à lancer
.Caption = "Lancement de ARTT" ' Texte d'aide
End With
...
...
...


--
Amicalement,
Leo

2 réponses

Avatar
michdenis
Bonjour Léo,

Voici une procédure qui devrait s'appliquer sur toutes les versions d'excel. (testé seulement sur excel 2003)

Tu dois insérer ton image à quelque part dans une feuille... quitte à masquer cette dernière. Évidemment, tu devras adapter la
procédure en ce qui concerne le nom que tu auras donné à ton image et aussi au nom de la feuille où elle est située.

Si tu tiens à utiliser ta macro, tu peux utiliser ceci pour discriminer la version d'excel qui ouvre le fichier :

If Val(Application.Version) = 10 Then
'Ligne code pour insérer l'image sur le bouton
Else
' Non disponible pour excel 9
End If


'-----------------------------------
Sub ImageSurBouton_BarreOutils()

Dim Mbar As CommandBar

On Error Resume Next
Set Mbar = Application.CommandBars.Add("MaBar")
Mbar.Visible = True

With ThisWorkbook
With Worksheets("Feuil1")
With .Shapes("Image 1")
.Copy
End With
End With
End With

With Mbar.Controls.Add(msoControlButton)
.Caption = "LanceMacro1"
'Affiche Icône et Texte
.Style = msoButtonIconAndCaption
'Colle l'image du presse-papier
.PasteFace
'Macro associé au bouton
.OnAction = "LaMacro"
End With

End Sub
'-----------------------------------


Salutations!



"leo" a écrit dans le message de news: 430b866d$0$1007$
.Bonsoir,
Un problème que je soumet à votre sagacité.

Ma macro est utilisée sur un réseau, avec plusieurs version d' Excel.
En particulier 2000 ( version 9.0 ) et XP ( version 10.0 )

Bien sûr, certaines méthodes ne sont pas utilisées par la version 9 et
plantent....

Exemple :
Création d'un commandbar, avec un bouton, dont l'image provient d'un
userform.
ça fonctionne en version 10 et pas en 9.

Comment faire car cela plante, dès la compilation ??????

'
'
Dim MaBar As CommandBar
Dim Btn1 As CommandBarButton

Set MaBar = Application.CommandBars.Add("CalenBar")
With MaBar
Set Btn1 = .Controls.Add(msoControlButton) '
With Btn1
.Picture = UFVersion.Image1.Picture
.OnAction = "ARTT" ' Macro à lancer
.Caption = "Lancement de ARTT" ' Texte d'aide
End With
...
...
...


--
Amicalement,
Leo
Avatar
leo
Bonsoir,
Ok cette procédure fonctionnera très bien, mais elle prend l'image dans une
feuille.

Ce que je cherche à faire, c' est de prendre l'image dans un userform et
dans ce cas, les anciennes versions d'excel plantent à la compilation.

Merci tout de même,

Amicalement,
Leo


"michdenis" a écrit dans le message de news:

Bonjour Léo,

Voici une procédure qui devrait s'appliquer sur toutes les versions
d'excel. (testé seulement sur excel 2003)


Tu dois insérer ton image à quelque part dans une feuille... quitte à
masquer cette dernière. Évidemment, tu devras adapter la

procédure en ce qui concerne le nom que tu auras donné à ton image et
aussi au nom de la feuille où elle est située.


Si tu tiens à utiliser ta macro, tu peux utiliser ceci pour discriminer la
version d'excel qui ouvre le fichier :


If Val(Application.Version) = 10 Then
'Ligne code pour insérer l'image sur le bouton
Else
' Non disponible pour excel 9
End If


'-----------------------------------
Sub ImageSurBouton_BarreOutils()

Dim Mbar As CommandBar

On Error Resume Next
Set Mbar = Application.CommandBars.Add("MaBar")
Mbar.Visible = True

With ThisWorkbook
With Worksheets("Feuil1")
With .Shapes("Image 1")
.Copy
End With
End With
End With

With Mbar.Controls.Add(msoControlButton)
.Caption = "LanceMacro1"
'Affiche Icône et Texte
.Style = msoButtonIconAndCaption
'Colle l'image du presse-papier
.PasteFace
'Macro associé au bouton
.OnAction = "LaMacro"
End With

End Sub
'-----------------------------------


Salutations!



"leo" a écrit dans le message de news:
430b866d$0$1007$

.Bonsoir,
Un problème que je soumet à votre sagacité.

Ma macro est utilisée sur un réseau, avec plusieurs version d' Excel.
En particulier 2000 ( version 9.0 ) et XP ( version 10.0 )

Bien sûr, certaines méthodes ne sont pas utilisées par la version 9 et
plantent....

Exemple :
Création d'un commandbar, avec un bouton, dont l'image provient d'un
userform.
ça fonctionne en version 10 et pas en 9.

Comment faire car cela plante, dès la compilation ??????

'
'
Dim MaBar As CommandBar
Dim Btn1 As CommandBarButton

Set MaBar = Application.CommandBars.Add("CalenBar")
With MaBar
Set Btn1 = .Controls.Add(msoControlButton) '
With Btn1
.Picture = UFVersion.Image1.Picture
.OnAction = "ARTT" ' Macro à lancer
.Caption = "Lancement de ARTT" ' Texte d'aide
End With
...
...
...


--
Amicalement,
Leo