OVH Cloud OVH Cloud

Images invisibles

8 réponses
Avatar
Alex
Bonjour =E0 tous,

J'ai constat=E9 sur une feuille d'un de mes classeurs, qu'elle contenait
des "images invisibles", et m'en explique :

C'est en voulant selectionner une cellule (vide ou avec une donn=E9es) =E0
l'aide de la souris, qu'une selction d'image m'apparait, il n'y a pas
d'image ni de forme (carr=E9 ou autre forme propos=E9 par excel), mais
apparait bien une selection d'un objet de taille variable. Cette
selection non souhait=E9e se pr=E9sente sous la forme de 4 points blancs
dans les angles et un point vert permettant la rotation. j'appuye sur
la touche supprimer, mais parfois au meme endroit je suis oblig=E9 de
r=E9p=E9ter l'op=E9ration, comme si ces images "invisibles" se surposionnen=
t
les unes sur les autres, et ne comprends d'ou provient cet anomalies.

S'agit il d'un "Shape" ? si oui, est ce que ces "Shapes" peuvent genr=E9
un poids important sur mon fichier, et comment puis je faire pour les
supprimer. (J'ai tent=E9 avec la fl=E8che de la barre d'outils dessin en
selectionnant toute plage afin de tenter de les supprimer mais le
probl=E8me persiste).

Quelqu'un a t il une idee de solution =E0 mon probl=E8me.
Merci par avance de votre aide.
Avec mes remerciements.
Bien cordialement.
Alex

8 réponses

Avatar
MichD
Bonjour,

Ceci supprime toutes les "shapes" contenues dans
une feuille de calcul y compris les graphes.
'-------------------------------
Sub test()
Worksheets("Feuil1").DrawingObjects.Delete
End Sub
'-------------------------------
Il se peut les shapes contenues dans Excel ont vu leur
largeur et leur hauteur réduites à zéro suite au redimensionnement
des lignes ou des colonnes. Par conséquent ces shapes existent,
mais leur largeur est égale à 0...

Tu peux aussi une boucle pour mettre la largeur de toutes les shapes
à 25
'-------------------------------
Sub test()
Dim Sh As Shape
With Worksheets("Feuil1")
For Each Sh in .Shapes
Sh.Width = 25
Next
End with
End Sub
'-------------------------------

MichD
---------------------------------------------------------------
Avatar
Alex
Bonsoir,

Merci pour cette réponse, je vais tester demain matin ;)
Je profite pour compléter ma question, je parlais de poids de fichier,
si en effet, il s'agit de photo cela peut en effet engendrer un
surpoids de fichiers, est ce que les userforms et lignes de commande
pese beaucoup dans un fichier excel ?
car, en effet, j'ai bien sur pensé à ces "images invisibles", mais me
suis également posé la question a ce sujet.
Merci encore pour tes réponses.
Bien cordialement.
Alex
Avatar
MichD
Il faut éviter de succomber à la tentation de formater
des lignes ou des colonnes entières. Cela augmente
considérablement le poids d'un fichier.

Le code lui-même ne prend pas beaucoup de mémoire...
Pour ce qui est du formulaire, cela dépend du nombre et
du nombre de contrôles sur chacun. Cela cependant ne
devrait pas justifier le fait de s'en passer ou de vouloir
restreindre à tout prix leur nombre!

Tu peux exécuter cette macro une fois. Si tu as des formatages
inutiles dans une zone inoccupée, cela devrait faire le ménage!

'----------------------
Sub test()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Supprimer_Lignes_Inutiles Sh.Name
Next
End Sub
'----------------------
Sub Supprimer_Lignes_Inutiles(NomFeuille As String)
Dim DerLig As Long, DerCol As Integer

With Worksheets(NomFeuille)
If IsEmpty(.UsedRange) Then
Exit Sub
End If
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1
With .Range("A" & DerLig, .Cells(Cells.Rows.Count, 1))
.EntireRow.Delete
End With
With .Range(.Cells(1, DerCol), .Cells(.Cells.Rows.Count, DerCol))
.EntireColumn.Delete
End With
End With
End Sub
'----------------------



MichD
---------------------------------------------------------------
"Alex" a écrit dans le message de groupe de discussion :


Bonsoir,

Merci pour cette réponse, je vais tester demain matin ;)
Je profite pour compléter ma question, je parlais de poids de fichier,
si en effet, il s'agit de photo cela peut en effet engendrer un
surpoids de fichiers, est ce que les userforms et lignes de commande
pese beaucoup dans un fichier excel ?
car, en effet, j'ai bien sur pensé à ces "images invisibles", mais me
suis également posé la question a ce sujet.
Merci encore pour tes réponses.
Bien cordialement.
Alex
Avatar
GR
Bonjour,
Touche F5 ou Edition-Atteindre-Cellules-Objets + OK
Vérifier ce qui se sélectionne - supprimer
Mais la suppression agit sur toute la page, pas seulement une zone
sélectionnée,

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

Bonjour à tous,

J'ai constaté sur une feuille d'un de mes classeurs, qu'elle contenait
des "images invisibles", et m'en explique :

C'est en voulant selectionner une cellule (vide ou avec une données) à
l'aide de la souris, qu'une selction d'image m'apparait, il n'y a pas
d'image ni de forme (carré ou autre forme proposé par excel), mais
apparait bien une selection d'un objet de taille variable. Cette
selection non souhaitée se présente sous la forme de 4 points blancs
dans les angles et un point vert permettant la rotation. j'appuye sur
la touche supprimer, mais parfois au meme endroit je suis obligé de
répéter l'opération, comme si ces images "invisibles" se surposionnent
les unes sur les autres, et ne comprends d'ou provient cet anomalies.

S'agit il d'un "Shape" ? si oui, est ce que ces "Shapes" peuvent genré
un poids important sur mon fichier, et comment puis je faire pour les
supprimer. (J'ai tenté avec la flèche de la barre d'outils dessin en
selectionnant toute plage afin de tenter de les supprimer mais le
problème persiste).

Quelqu'un a t il une idee de solution à mon problème.
Merci par avance de votre aide.
Avec mes remerciements.
Bien cordialement.
Alex
Avatar
Alex
Bonjour à tous et merci à tous pour vos réponse, cela m'a permis
d'alleger le fichier qui contenait beaucoup de Shape inutile.
Bien Cordialement
Alex
Avatar
Alex
Re bonjour à tous,

Une question supplémentaire, comment j'ecris de supprimer l'image que
se trouve en D1 sur ma feuille "toto", et uniquement celle ci, car les
autres images présente sur la feuille doivent rester.
J'ai tenté d'écrire ceci :

Range ("D1").Select
With selection
.DrawingObjects.Delete
End With

Mais j'ai un message erreur d'excustion 438 Propriété ou méthode non
gérée par cet objet
et si je supprime le . de drawing, j'ai le message suivant :
Erreur 424 Objet requis

Merci par avance de votre aide.
Bien cordialement.
Alex
Avatar
MichD
Bonjour,

Comme ceci :

'------------------------------------
Sub test()
Dim Sh As Shape, Ws As Worksheet

Set Ws = Worksheets("Feuil1")
With Ws
For Each Sh In .Shapes
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
If Sh.TopLeftCell.Address = Ws.Range("D1").Address Then
Sh.Delete
End If
End If
Next
End With
End Sub
'------------------------------------



MichD
---------------------------------------------------------------
Avatar
Alex
Merci beaucoup :)
Alex