Dernière cellule

Le
Patrick
Bonjour,

Quand je fais [Ctrl]+[Fin], la cellule devient "L65536C243". J'ai supprimé
plusieurs les lignes et les colonnes inutiles, j'ai sauvegardé le fichier
mais malgré tout cela, la dernière cellule reste toujours la même. Que
puis-je faire pour que la dernière soit la vraie dernière "L14C10".

Merci.

--
Patrick
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Youky
Le #5155981
Salut
une solution
Va en Editeur VBA >Affichage>fenetre Execution
tape cette 1ere ligne et Entrer ensuite la 2eme ligne et Entrer
Rows("14:65536").clear
columns("K:IV").clear

Youky

"Patrick" news:
Bonjour,

Quand je fais [Ctrl]+[Fin], la cellule devient "L65536C243". J'ai supprimé
plusieurs les lignes et les colonnes inutiles, j'ai sauvegardé le fichier
mais malgré tout cela, la dernière cellule reste toujours la même. Que
puis-je faire pour que la dernière soit la vraie dernière "L14C10".

Merci.

--
Patrick


Patrick
Le #5155931
Merci pour la suggestion mais cela ne change rien.

--
Patrick


"Youky" wrote:

Salut
une solution
Va en Editeur VBA >Affichage>fenetre Execution
tape cette 1ere ligne et Entrer ensuite la 2eme ligne et Entrer
Rows("14:65536").clear
columns("K:IV").clear

Youky

"Patrick" news:
Bonjour,

Quand je fais [Ctrl]+[Fin], la cellule devient "L65536C243". J'ai supprimé
plusieurs les lignes et les colonnes inutiles, j'ai sauvegardé le fichier
mais malgré tout cela, la dernière cellule reste toujours la même. Que
puis-je faire pour que la dernière soit la vraie dernière "L14C10".

Merci.

--
Patrick







Mgr Banni
Le #5155891
bonjour patrick
alors exécute cette proc du Seigneur d'Aniche (il se reconnaîtra, lui, le
plus fidèle de mes ouailles nordistes)
HTH
Mgr T.B.

Sub NettoieSelonGD()
Dim sht As Worksheet, DCell As Range, Calc As Long, Rien As String, _
Avant As Double, Plage As Range
On Error Resume Next
Calc = Application.Calculation ' ---- mémorisation de l'état de recalcul
'------------------------------------------------------------
MsgBox "Pour le classeur actif : " _
& Chr(10) & ActiveWorkbook.FullName _
& Chr(10) & "dans chaque feuille de calcul" _
& Chr(10) & "recherche la zone contenant des données," _
& Chr(10) & "réinitialise la dernière cellule utilisée" _
& Chr(10) & "et optimise la taille du fichier Excel", _
vbInformation, _
"d'après LL par "
'-------------------------------------------------------------
MsgBox "Taille initiale de ce classeur en octets" _
& Chr(10) & FileLen(ActiveWorkbook.FullName), _
vbInformation, ActiveWorkbook.FullName
'------------------------------------------------------------
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = True
End With
'-------------------- le traitement
For Each sht In Worksheets
Avant = sht.UsedRange.Cells.Count
Application.StatusBar = sht.Name & "-" & sht.UsedRange.Address
'-------------------Traitement de la zone trouvée
If sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(sht.[A1]) Then
Set DCell = sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
'----------------Suppression des lignes inutilisées
If Not DCell Is Nothing Then
sht.Range(DCell, sht.Cells([A:A].Count, 1)).EntireRow.Delete
Set DCell = Nothing
Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
'----------------Suppression des colonnes inutilisées
If Not DCell Is Nothing Then sht.Range(DCell,
sht.[IV1]).EntireColumn.Delete
End If
Rien = sht.UsedRange.Address
End If
ActiveWorkbook.Save
'---------------------Message pour la feuille traitée
MsgBox "Nom de la feuille de calcul :" _
& Chr(10) & sht.Name _
& Chr(10) & Format(sht.UsedRange.Cells.Count / Avant, "0.00%") & "
de la taille initiale", _
vbInformation, ActiveWorkbook.FullName
Next sht
'--------------------Message fin de traitement
MsgBox "Taille optimisée de ce classeur en octets " & Chr(10) &
FileLen(ActiveWorkbook.FullName), _
vbInformation, _
ActiveWorkbook.FullNameActive
'--------------------
Application.StatusBar = False
Application.Calculation = Calc
End Sub

"Patrick" news:
Merci pour la suggestion mais cela ne change rien.

--
Patrick


"Youky" wrote:

Salut
une solution
Va en Editeur VBA >Affichage>fenetre Execution
tape cette 1ere ligne et Entrer ensuite la 2eme ligne et Entrer
Rows("14:65536").clear
columns("K:IV").clear

Youky

"Patrick" news:
Bonjour,

Quand je fais [Ctrl]+[Fin], la cellule devient "L65536C243". J'ai
supprimé
plusieurs les lignes et les colonnes inutiles, j'ai sauvegardé le
fichier
mais malgré tout cela, la dernière cellule reste toujours la même. Que
puis-je faire pour que la dernière soit la vraie dernière "L14C10".

Merci.

--
Patrick









Patrick
Le #5278691
Merci.

--
Patrick


"Mgr Banni" wrote:

bonjour patrick
alors exécute cette proc du Seigneur d'Aniche (il se reconnaîtra, lui, le
plus fidèle de mes ouailles nordistes)
HTH
Mgr T.B.

Sub NettoieSelonGD()
Dim sht As Worksheet, DCell As Range, Calc As Long, Rien As String, _
Avant As Double, Plage As Range
On Error Resume Next
Calc = Application.Calculation ' ---- mémorisation de l'état de recalcul
'------------------------------------------------------------
MsgBox "Pour le classeur actif : " _
& Chr(10) & ActiveWorkbook.FullName _
& Chr(10) & "dans chaque feuille de calcul" _
& Chr(10) & "recherche la zone contenant des données," _
& Chr(10) & "réinitialise la dernière cellule utilisée" _
& Chr(10) & "et optimise la taille du fichier Excel", _
vbInformation, _
"d'après LL par "
'-------------------------------------------------------------
MsgBox "Taille initiale de ce classeur en octets" _
& Chr(10) & FileLen(ActiveWorkbook.FullName), _
vbInformation, ActiveWorkbook.FullName
'------------------------------------------------------------
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = True
End With
'-------------------- le traitement
For Each sht In Worksheets
Avant = sht.UsedRange.Cells.Count
Application.StatusBar = sht.Name & "-" & sht.UsedRange.Address
'-------------------Traitement de la zone trouvée
If sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(sht.[A1]) Then
Set DCell = sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
'----------------Suppression des lignes inutilisées
If Not DCell Is Nothing Then
sht.Range(DCell, sht.Cells([A:A].Count, 1)).EntireRow.Delete
Set DCell = Nothing
Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
'----------------Suppression des colonnes inutilisées
If Not DCell Is Nothing Then sht.Range(DCell,
sht.[IV1]).EntireColumn.Delete
End If
Rien = sht.UsedRange.Address
End If
ActiveWorkbook.Save
'---------------------Message pour la feuille traitée
MsgBox "Nom de la feuille de calcul :" _
& Chr(10) & sht.Name _
& Chr(10) & Format(sht.UsedRange.Cells.Count / Avant, "0.00%") & "
de la taille initiale", _
vbInformation, ActiveWorkbook.FullName
Next sht
'--------------------Message fin de traitement
MsgBox "Taille optimisée de ce classeur en octets " & Chr(10) &
FileLen(ActiveWorkbook.FullName), _
vbInformation, _
ActiveWorkbook.FullNameActive
'--------------------
Application.StatusBar = False
Application.Calculation = Calc
End Sub

"Patrick" news:
Merci pour la suggestion mais cela ne change rien.

--
Patrick


"Youky" wrote:

Salut
une solution
Va en Editeur VBA >Affichage>fenetre Execution
tape cette 1ere ligne et Entrer ensuite la 2eme ligne et Entrer
Rows("14:65536").clear
columns("K:IV").clear

Youky

"Patrick" news:
Bonjour,

Quand je fais [Ctrl]+[Fin], la cellule devient "L65536C243". J'ai
supprimé
plusieurs les lignes et les colonnes inutiles, j'ai sauvegardé le
fichier
mais malgré tout cela, la dernière cellule reste toujours la même. Que
puis-je faire pour que la dernière soit la vraie dernière "L14C10".

Merci.

--
Patrick













MichDenis
Le #5278591
| Merci.

C'est gentil de dire merci Patrick, mais l'ami GD a oublié de définir
un paramêtre dans cette ligne de code :

Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)

Je suis certain que l'ami GD aura corrigé le tir à ton réveil demain !
-;)
Modeste
Le #5278491
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

l'ami GD a oublié de définir
un paramêtre dans cette ligne de code :

Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)


????
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection,
MatchCase, MatchByte, SearchFormat)
What = "*"
After = facultatif Si vous ne spécifiez pas cet argument, la recherche commence
après la cellule située dans le coin supérieur gauche de la plage.
LookIn = facultatif (Dans les 2 cas (xlvalues et xlformulas), la méthode find
trouvera. d 'apres une intervention de MichDenis ;o)))
sauf à préciser explicitement xlValues ce qui n'est pas le cas ici....

LookAt = facultatif
SearchOrder = xlByColumns
SearchDirection = xlPrevious
MatchCase = facultatif (False par défaut)
MatchByte = facultatif (False par défaut)
SearchFormat = facultatif

;o)))
Modestement je ne me suis inspiré que de ça :
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/476422b1ec81b96f/b0f738236b54525d?hl=fr&lnk=st&q=Michdenis+Find+longre#b0f738236b54525d
;o)))

6 juin 2004 23:30 MichDenis
--
--
@+
;o)))

Mgr Banni
Le #5278451
dis donc, michel le québécois, t'as pas fini d'embêter l'ami GD, hein?
tu sais que le goupillon, ça ne sert pas qu'à diffiuser de l'encens ; si tu
le fais tourner un peu vite, il devient une belle fronde capable de
traverser l'atlantique
allez ouste, 3 Ave et 5 Pater en attendant le scud diocésain
Mgr T.B.

"Modeste" %
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

l'ami GD a oublié de définir
un paramêtre dans cette ligne de code :

Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)


????
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection,
MatchCase, MatchByte, SearchFormat)
What = "*"
After = facultatif Si vous ne spécifiez pas cet argument, la recherche
commence après la cellule située dans le coin supérieur gauche de la
plage.
LookIn = facultatif (Dans les 2 cas (xlvalues et xlformulas), la méthode
find trouvera. d 'apres une intervention de MichDenis ;o)))
sauf à préciser explicitement xlValues ce qui n'est pas le cas ici....

LookAt = facultatif
SearchOrder = xlByColumns
SearchDirection = xlPrevious
MatchCase = facultatif (False par défaut)
MatchByte = facultatif (False par défaut)
SearchFormat = facultatif

;o)))
Modestement je ne me suis inspiré que de ça :
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/476422b1ec81b96f/b0f738236b54525d?hl=fr&lnk=st&q=Michdenis+Find+longre#b0f738236b54525d
;o)))

6 juin 2004 23:30 MichDenis
--
--
@+
;o)))




MichDenis
Le #5278271
Ce n'est pas parce que j'ai commis un impair, qu'il faut le répéter éternellement !
2004, c'est très loin, j'espère avoir appris quelque chose depuis ce temps !
;-)

As-tu pris le temps de lire aussi la "note" en bas de la définition des paramètres de la méthode
Find ?

Il est écrit ceci :
'----------------------------
Les paramètres des arguments LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois
que vous utilisez cette méthode. Si vous ne spécifiez aucun paramètre pour ces arguments lors du
prochain appel de la méthode, les paramètres enregistrés sont utilisés. Le fait de définir les
paramètres de ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour
effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les
arguments. Pour éviter toute ambiguïté, définissez ces arguments de façon explicite chaque fois que
vous utilisez cette méthode.
'----------------------------

En rapport à ce qui précède, le paramètre "LookIn" a son importance.

Supposons une feuille de calcul qui possède des "data" et des cellules
contenant des formules.
Supposons que la dernière cellule de la feuille contient une formule qui
retourne "" i.e. la cellule n'affiche rien

Maintenant, utilise ces 2 procédures dans le module de ta feuille :

'---------------------------------------------
Sub Test()
Cells.Find("*", , xlValues, , xlByColumns, xlPrevious).Select
End Sub

'---------------------------------------------
Sub Test1()
Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Select
End Sub
'---------------------------------------------

Et bien moi, ces 2 procédures ne pointent pas vers la même cellule.
Et la procédure qui renvoie la "vraie" dernière cellule utilise le paramètre
XLFORMULAS...

Lorsque l'on omet ce paramètre, Excel utilise l'élément qu'il a utilisé lors
de la dernière recherche que ce soit en utilisant la méthode Find en VBA
ou par la commande "Rechercher" du menu édition. (c'est ce que dit la note)

Conséquemment, si tu as des formules du type que j'ai décrites dans ta feuille,
et que le paramètre "LookIn" retenu part la méthode "Find" est xlvalues, il est
plus que probable que tu vas te retrouver en eau trouble assez rapidement !

La méthode Find est alambiquée.... et de couper les coins en rond n'est pas
la meilleure des idées !
MichDenis
Le #5278261
Bonjour Mgr,

Si mon message précédent s'avère fonder, j'espère que Mgr
fera son chemin de croix pour expier sa faute ... juste cela !!!

;-))


"Mgr Banni"
dis donc, michel le québécois, t'as pas fini d'embêter l'ami GD, hein?
tu sais que le goupillon, ça ne sert pas qu'à diffiuser de l'encens ; si tu
le fais tourner un peu vite, il devient une belle fronde capable de
traverser l'atlantique
allez ouste, 3 Ave et 5 Pater en attendant le scud diocésain
Mgr T.B.

"Modeste" %
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

l'ami GD a oublié de définir
un paramêtre dans cette ligne de code :

Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)


????
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection,
MatchCase, MatchByte, SearchFormat)
What = "*"
After = facultatif Si vous ne spécifiez pas cet argument, la recherche
commence après la cellule située dans le coin supérieur gauche de la
plage.
LookIn = facultatif (Dans les 2 cas (xlvalues et xlformulas), la méthode
find trouvera. d 'apres une intervention de MichDenis ;o)))
sauf à préciser explicitement xlValues ce qui n'est pas le cas ici....

LookAt = facultatif
SearchOrder = xlByColumns
SearchDirection = xlPrevious
MatchCase = facultatif (False par défaut)
MatchByte = facultatif (False par défaut)
SearchFormat = facultatif

;o)))
Modestement je ne me suis inspiré que de ça :
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/476422b1ec81b96f/b0f738236b54525d?hl=fr&lnk=st&q=Michdenis+Find+longre#b0f738236b54525d
;o)))

6 juin 2004 23:30 MichDenis
--
--
@+
;o)))




Mgr Banni
Le #5278241
:-))))
T.B.

"MichDenis"
Bonjour Mgr,

Si mon message précédent s'avère fonder, j'espère que Mgr
fera son chemin de croix pour expier sa faute ... juste cela !!!

;-))


"Mgr Banni"
dis donc, michel le québécois, t'as pas fini d'embêter l'ami GD, hein?
tu sais que le goupillon, ça ne sert pas qu'à diffiuser de l'encens ; si
tu
le fais tourner un peu vite, il devient une belle fronde capable de
traverser l'atlantique
allez ouste, 3 Ave et 5 Pater en attendant le scud diocésain
Mgr T.B.

"Modeste" %
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

l'ami GD a oublié de définir
un paramêtre dans cette ligne de code :

Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)


????
expression.Find(What, After, LookIn, LookAt, SearchOrder,
SearchDirection,
MatchCase, MatchByte, SearchFormat)
What = "*"
After = facultatif Si vous ne spécifiez pas cet argument, la recherche
commence après la cellule située dans le coin supérieur gauche de la
plage.
LookIn = facultatif (Dans les 2 cas (xlvalues et xlformulas), la méthode
find trouvera. d 'apres une intervention de MichDenis ;o)))
sauf à préciser explicitement xlValues ce qui n'est pas le cas ici....

LookAt = facultatif
SearchOrder = xlByColumns
SearchDirection = xlPrevious
MatchCase = facultatif (False par défaut)
MatchByte = facultatif (False par défaut)
SearchFormat = facultatif

;o)))
Modestement je ne me suis inspiré que de ça :
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/476422b1ec81b96f/b0f738236b54525d?hl=fr&lnk=st&q=Michdenis+Find+longre#b0f738236b54525d
;o)))

6 juin 2004 23:30 MichDenis
--
--
@+
;o)))








Publicité
Poster une réponse
Anonyme