Macro Excel 2003 qui ne fonctionne pas sous Excel 2010

wifithesniper

XLDnaute Nouveau
Bonjour,

Voici une macro qui permet d'afficher une bannière.
Elle fonctionne sous 2003 mais elle bloque sur le ReadingOrder sous 2010.

Voici le code :

Sub Banniere(Optional Txt)

If IsMissing(Txt) Then
msg = "Traitement en cours," & Chr(10) & "Merci de patienter," & Chr(10) & "Ne pas toucher..."
Else
msg = Txt
End If
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 200, 250, 280, 150).Select
With Selection
.Characters.Text = msg
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ReadingOrder = xlContext
.Orientation = xlHorizontal
.AutoSize = True
.ShapeRange.Shadow.Type = msoShadow6
.ShapeRange.Fill.ForeColor.SchemeColor = 35
.ShapeRange.Fill.Visible = msoTrue
.ShapeRange.Fill.Solid
.Name = "Banniere"
With .Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 20
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Bold = True
End With
End With

End Sub

Merci d'avance pour vos réponses.

Cdlt,

Wifi
 

wifithesniper

XLDnaute Nouveau
Re : Macro Excel 2003 qui ne fonctionne pas sous Excel 2010

Bonjour,

Effectivement ce morceau fonctionne mais pas correctement sous 2010 :
La banniere est censée s'ouvrir quand le fichier se met à jour par liaison de donnée et se fermer à la fin de la mise à jour. Sous 2010 on ne le voit pas et si je met l'avant derniere ligne de la macro en commentaire on la voit mais elle reste affichée.

Voici le code entier de la bannière :

Sub Banniere(Optional Txt)

If ActiveSheet.ProtectContents = True Then
Protect = True
xProtect "N"
Else
Protect = False
End If
If IsMissing(Txt) Then
msg = "TRAITEMENT EN COURS," & Chr(10) & "Merci de patienter," & Chr(10) & "ne pas toucher..."
Else
msg = Txt
End If
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 200, 250, 280, 150).Select
With Selection
.Characters.Text = msg
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.AutoSize = True
.ShapeRange.Shadow.Type = msoShadow6
.ShapeRange.Fill.ForeColor.SchemeColor = 35
.ShapeRange.Fill.Visible = msoTrue
.ShapeRange.Fill.Solid
.Name = "Banniere"
With .Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 20
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Bold = True
End With
End With
Application.ScreenUpdating = False
ActiveSheet.Shapes("Banniere").Delete
If Protect = True Then xProtect "Y"

End Sub
 

job75

XLDnaute Barbatruc
Re : Macro Excel 2003 qui ne fonctionne pas sous Excel 2010

Re,

Avec votre code on ne voit guère plus l'objet sur 2003 que sur 2010 :rolleyes:

Pour le voir 5 secondes ce n'est pas sorcier :

Code:
'-------
Application.Wait Now + 5 / 86400
ActiveSheet.Shapes("Banniere").Delete
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 885
Membres
103 018
dernier inscrit
mohcen23