OVH Cloud OVH Cloud

Comment supprimer les cellules "fantomes" (Ctrl Fin)

15 réponses
Avatar
Fidji
Si on passe d'un grand tableau à un plus réduit, Contrôl Fin fait
aller à l'ancienne fin.
J'ai beau supprimer les lignes cela ne change rien.
Comment supprimer ces lignes/colonnes fantomes ?

10 réponses

1 2
Avatar
Patrick BASTARD
Bonjour, *Fidji*

Je crois me souvenir qu'il suffit de fermer, puis de réouvrir ton fichier.


--
Bien amicordialement,
P. Bastard


Si on passe d'un grand tableau à un plus réduit, Contrôl Fin fait
aller à l'ancienne fin.
J'ai beau supprimer les lignes cela ne change rien.
Comment supprimer ces lignes/colonnes fantomes ?


Avatar
michdenis
Bonjour Fidji,

Copie ce qui suit dans un module standard et exécute la procédure "NettoyerLignesFantômes"

Adapte le nom de la feuille dans la procédure.

'--------------------------------
Sub NettoyerLignesFantômes()

Dim DL As Long, DC As Integer, Sh As Worksheet

Set Sh = Worksheets("Feuil1")
DL = DerLig(Sh) + 1
DC = DerLig(Sh) + 1

With Sh
.Range(.Cells(DL, "A"), .Cells(65536, "IV")).Delete xlUp
.Range(.Cells(1, DL), .Cells(DL, 256)).Delete xlUp
End With
End Sub
'--------------------------------
Function DerLig(Sh As Worksheet)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
On Error GoTo 0
End Function
'--------------------------------
Function DerCol(Sh As Worksheet)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'--------------------------------


Salutations!


"Fidji" a écrit dans le message de news: 4364fa00$0$4311$
Si on passe d'un grand tableau à un plus réduit, Contrôl Fin fait
aller à l'ancienne fin.
J'ai beau supprimer les lignes cela ne change rien.
Comment supprimer ces lignes/colonnes fantomes ?
Avatar
Fidji
Merci pour la réponse.
Comment faire pour prendre la feuille active ?
J'ai plusieurs feuilles nommées et le fonctionnement semble ératique.
Avatar
Fidji
J'ai remplacé Worksheets("Feuil1") par ActiveSheet, comme cela c'est bien.
Sauf que je confirme que la fin va se loger en colonne IV
Avatar
Fidji
A quoi sert DerCol puisqu'on y passe jamais ?
Avatar
michdenis
Bonjour Fidji,

Désolé, je crois que j'ai été un tantinet distrait ;-)

Ceci devrait nettoyer toutes les feuilles du classeur.

'----------------------------------
Sub NettoyerLignesFantômes()

Dim DL As Long, DC As Integer, Sh As Worksheet

For Each Sh In Worksheets
DL = DerLig(Sh) + 1
DC = DerLig(Sh) + 1
With Sh
.Range(.Cells(DL, "A"), .Cells(DL, "IV").End(xlDown)).Delete xlUp
.Range(.Cells(1, DC), .Cells(65536, DC)).Delete xlUp
End With
Next
End Sub
'----------------------------------
Function DerLig(Sh As Worksheet)
On Error Resume Next
DerLig = Sh.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
On Error GoTo 0
End Function
'----------------------------------
Function DerCol(Sh As Worksheet)
On Error Resume Next
DerCol = Sh.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
On Error GoTo 0
End Function
'----------------------------------


Salutations!






"Fidji" a écrit dans le message de news: 4365229c$0$4335$
A quoi sert DerCol puisqu'on y passe jamais ?
Avatar
Fidji
Bonjour,
Désolé cela ne marche pas.
Je l'ai mis dans ThisWorkBook. Il explore bien toutes les feuilles, mais
sans
supprimer ces lignes/colonnes fantômes.

D'ailleurs je ne comprends pas pourquoi excel laisse laisse cet espace.
Si tu créés un gros tableau et en réduit la taille il laisse du vide
référencé,
c'est bizarre.
Avatar
michdenis
Bonjour Fidji,

Tu as raison, la première section devrait se lire plutôt comme suit :
Le reste de la procédure est identique au message précédent ....

'--------------------------------------
Sub NettoyerLignesFantômes()

Dim DL As Long, DC As Integer, Sh As Worksheet

On Error Resume Next
For Each Sh In Worksheets
DL = DerLig(Sh) + 1
DC = DerCol(Sh) + 1
With Sh
.Range(.Cells(DL, "A"), .Cells(DL, "IV").End(xlDown)).Delete xlUp
.Range(.Cells(1, DC), .Cells(65536, DC).End(xlToRight)).Delete xlUp
End With
Next
End Sub
'--------------------------------------


Salutations!




"Fidji" a écrit dans le message de news: 4365d530$0$4329$
Bonjour,
Désolé cela ne marche pas.
Je l'ai mis dans ThisWorkBook. Il explore bien toutes les feuilles, mais
sans
supprimer ces lignes/colonnes fantômes.

D'ailleurs je ne comprends pas pourquoi excel laisse laisse cet espace.
Si tu créés un gros tableau et en réduit la taille il laisse du vide
référencé,
c'est bizarre.
Avatar
Jacquouille
Bonsoir
Je crois me souvenir que Excel garde en mémoire les mises en formes des
cellules effacées, une espèce de mémoire fantôme.
Essaie de sélectionner tout cela et remets-y les paramètres d'origine. Ou
alors, tu supprimes ces lignes ou colonnes.
Bonne chance

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
Jacquouille.

"Fidji" a écrit dans le message de news:
4365d530$0$4329$
Bonjour,
Désolé cela ne marche pas.
Je l'ai mis dans ThisWorkBook. Il explore bien toutes les feuilles, mais
sans
supprimer ces lignes/colonnes fantômes.

D'ailleurs je ne comprends pas pourquoi excel laisse laisse cet espace.
Si tu créés un gros tableau et en réduit la taille il laisse du vide
référencé,
c'est bizarre.



Avatar
Fidji
C'est bien un pb de format.J'ai mis un format sur des lignes et
effectivement
il les prend en compte.
Supprimer les lignes ne marche pas ou copier des lignes de la zone
non formatée dans ces lignes c'est pareil.
Sur un petit tableau ce n'est pas grave, mais sur un tableau énorme c'est
génant.
1 2