Perte de l'ascenseur de liste déroulante

13 réponses
Avatar
JP
Bonjour,

Un truc tr=E8s bizarre.
J'ai dans une feuille la cohabitation d'une liste d=E9roulante (validation =
de donn=E9es) et un traitement de shapes.

Quand je lance la macro qui permet de traiter les shapes l'ascenseur de la =
liste d=E9roulante ne s'affiche plus =E0 la s=E9lection de la cellule.
Si j'enregistre le fichier, elle r=E9apparait comme par miracle.
C'est quoi ce truc l=E0?

Est-ce que cela vous est d=E9j=E0 arriv=E9?

Merci des suggestions.

JP

10 réponses

1 2
Avatar
DanielCo
Bonjour,
Ta liste déroulante est ausssi un shape. Peut-être que tu l'abîmes avec
ta macro ?
Cordialement.
Daniel


Bonjour,

Un truc très bizarre.
J'ai dans une feuille la cohabitation d'une liste déroulante (validation de
données) et un traitement de shapes.

Quand je lance la macro qui permet de traiter les shapes l'ascenseur de la
liste déroulante ne s'affiche plus à la sélection de la cellule. Si
j'enregistre le fichier, elle réapparait comme par miracle. C'est quoi ce
truc là?

Est-ce que cela vous est déjà arrivé?

Merci des suggestions.

JP
Avatar
JP
Bonjour Daniel,

La liste déroulante est dans une cellule.
Je tourne en rond depuis ce matin avec ce problème.
Quand une partie du code est en remarque, tout va bien.
Les lignes du code qui perturbent sont à mon sens celles-ci:

Sheets("periode").Select
Derligne = Range("A51").End(xlUp).Row
'efface les shapes de la colonne D
For Each cell In Sheets("Periode").Shapes
On Error Resume Next
If Not Intersect(cell.TopLeftCell, Sheets("Periode").Range("$D$11:$ D$" & Derligne)) Is Nothing Then
cell.Delete
End If
Next

' Affiche les shapes si il y a des valeurs dans la colonne A
For Each cell In Sheets("Periode").Range("A11:A" & Derligne)
If cell <> "" Then
Sheets("Periode").Shapes("ImgCCF").Select
Selection.Copy
cell.Offset(, 3).Select
Sheets("Periode").Paste
With Selection
.Left = cell.Offset(, 3).Left
.Top = cell.Offset(, 3).Top + 5
.Width = cell.Offset(, 6).Left - cell.Offset(, 3).Left
' .Height = cell.Offset(, 3).Height
End With
End If
Next

Même en supprimant on error resume next l'ascenseur disparait.

JP
Avatar
DanielCo
Bonjour Daniel,

La liste déroulante est dans une cellule.
Je tourne en rond depuis ce matin avec ce problème.
Quand une partie du code est en remarque, tout va bien.
Les lignes du code qui perturbent sont à mon sens celles-ci:

Sheets("periode").Select
Derligne = Range("A51").End(xlUp).Row
'efface les shapes de la colonne D
For Each cell In Sheets("Periode").Shapes
On Error Resume Next
If Not Intersect(cell.TopLeftCell,
Sheets("Periode").Range("$D$11:$D$" & Derligne)) Is Nothing Then
cell.Delete End If
Next

' Affiche les shapes si il y a des valeurs dans la colonne A
For Each cell In Sheets("Periode").Range("A11:A" & Derligne)
If cell <> "" Then
Sheets("Periode").Shapes("ImgCCF").Select
Selection.Copy
cell.Offset(, 3).Select
Sheets("Periode").Paste
With Selection
.Left = cell.Offset(, 3).Left
.Top = cell.Offset(, 3).Top + 5
.Width = cell.Offset(, 6).Left - cell.Offset(, 3).Left
' .Height = cell.Offset(, 3).Height
End With
End If
Next

Même en supprimant on error resume next l'ascenseur disparait.

JP



Ce n'est pas seulement l'ascenseur qui disparait c'est la liste
déroulante qui est un shape. Essaie :

Sheets("periode").Select
Derligne = Range("A51").End(xlUp).Row
'efface les shapes de la colonne D
For Each cell In Sheets("Periode").Shapes
On Error Resume Next
If Not Intersect(cell.TopLeftCell,
Sheets("Periode").Range("$D$11:$D$" & Derligne)) Is Nothing Then
msgbox cell.Name
End If
Next

Tu vas retrouver le nom de ta liste déroulante ("Drop Down n").

Daniel
Avatar
MichD
Bonjour,

Dans ta procédure, remplace cette ligne de code :
For Each cell In Sheets("Periode").Shapes

Par
For Each cell In Sheets("Periode").DrawingObjects
Avatar
JP
Daniel,

Rien trouvé d'autre que ImgCCF. ImgCCF correspondant au nom des mes shape s.

La liste de validation de données est toujours présente mais l'ascenseu r se volatilise. J'ai contrôlé en faisant Données/Validation de donn ées.

Ce qui est le plus surprenant, je trouve, c'est qu'en faisant "Enregistrer " ou CTRL+S, il réapparait.

JP
Avatar
DanielCo
Est-ce que tu peux mettre un classeur exemple sur cjoint.com ?
Daniel


Daniel,

Rien trouvé d'autre que ImgCCF. ImgCCF correspondant au nom des mes shapes.

La liste de validation de données est toujours présente mais l'ascenseur se
volatilise. J'ai contrôlé en faisant Données/Validation de données.

Ce qui est le plus surprenant, je trouve, c'est qu'en faisant "Enregistrer"
ou CTRL+S, il réapparait.

JP
Avatar
MichD
J'ai oublié de mentionner que les "Commentaires" sont aussi des shapes.
et si tu boucles sur tous les shapes, tu boucles aussi sur les commentaires
et il ne faut pas te surprendre si tu as des problèmes avec ces derniers
après l'exécution de la macro.
Avatar
JP
Bonjour Denis,

Trop fort!

Je n'ai pas eu de souci dans le cas présent avec les commentaires car je n'en avais pas dans cette page ;-)

Merci beaucoup à Daniel et toi de vous êtes penchés une fois de plus sur le problème.

Cordialement

JP
Avatar
JP
Bonsoir,

Je me permets de revenir vers vous car j'ai un soucis sur le placement des shapes.
Pas toujours, mais de temps en temps les shapes ne se positionnent pas corr ectement à l'écran. Ce qui est étrange, c'est qu'ils le sont lorsque je fais un aperçu impression. A l'écran non mais sur le papier oui.

Une idée!

JP
Avatar
MichD
http://support.microsoft.com/kb/2598310/FR-FR
1 2