OVH Cloud OVH Cloud

Redéfinir la dernière cellule ?? aussi en VBA ??

8 réponses
Avatar
Jean-Claude
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre feuille..
etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la dernière
cellule ???

Merci !

JC

8 réponses

Avatar
ru-th
Salut

sans vba, enregistrer le classeur

en vba, activesheet.usedrange

a+
rural thierry
"Jean-Claude" a écrit dans le message de news:
O#
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre feuille..
etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la dernière
cellule ???

Merci !

JC




Avatar
...Patrick
assez radical et venant d'un "maitre" :

Sub NettoieEtDerniereCellule() ' Laurent Longre
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = False
End With
For Each Sht In Worksheets
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Clear
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
If Not DCell Is Nothing Then _
Sht.Range(DCell, Sht.[IV1]).EntireColumn.Clear
End If
Rien = Sht.UsedRange.Address
End If
Next Sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub



--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel

"Jean-Claude" a écrit dans le message de
news:O%
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre feuille..
etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la dernière
cellule ???

Merci !

JC




Avatar
twinley
ah oui celle là c'est une merveille...bravo de la conseiller Patrick.
et bravo aux créateurs.

--
à+twinley
"...Patrick" <http://cerbermail.com/?KPW0tTCjFw> a écrit dans le message de
news:eR9%
assez radical et venant d'un "maitre" :

Sub NettoieEtDerniereCellule() ' Laurent Longre
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = False
End With
For Each Sht In Worksheets
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Clear
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(,
2)

If Not DCell Is Nothing Then _
Sht.Range(DCell, Sht.[IV1]).EntireColumn.Clear
End If
Rien = Sht.UsedRange.Address
End If
Next Sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub



--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel

"Jean-Claude" a écrit dans le message de
news:O%
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre feuille..
etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la
dernière


cellule ???

Merci !

JC








Avatar
Jean-Claude
Merci, mais hélas, chez moi cela ne suffit pas !!
Après sauvegarde, fermeture, réouverture, la fin est toujours au même
endroit, c'est à dire 15 colonnes et 200 lignes après la 'dernière vrai
cellule'...
A+
"ru-th" a écrit dans le message de news:
#
Salut

sans vba, enregistrer le classeur

en vba, activesheet.usedrange

a+
rural thierry
"Jean-Claude" a écrit dans le message de news:
O#
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre feuille..
etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la
dernière


cellule ???

Merci !

JC








Avatar
Jean-Claude
Salut !
houla la la la la !!
Bon ! je vais essayer ça !!
Venan de Maître Longre, cela devrait péter du tonnerre de Dieu (Grec !! Off
course...)
A+
"...Patrick" <http://cerbermail.com/?KPW0tTCjFw> a écrit dans le message de
news: eR9#
assez radical et venant d'un "maitre" :

Sub NettoieEtDerniereCellule() ' Laurent Longre
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = False
End With
For Each Sht In Worksheets
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Clear
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(,
2)

If Not DCell Is Nothing Then _
Sht.Range(DCell, Sht.[IV1]).EntireColumn.Clear
End If
Rien = Sht.UsedRange.Address
End If
Next Sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub



--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel

"Jean-Claude" a écrit dans le message de
news:O%
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre feuille..
etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la
dernière


cellule ???

Merci !

JC








Avatar
Jean-Claude
Hélas !
La macro de Laurent n'a d'effet que sur la 1ère feuille !!
J'arrive pas à la modifier pour toutes les feuille du classeur !!
Help !!
JC

"...Patrick" <http://cerbermail.com/?KPW0tTCjFw> a écrit dans le message de
news: eR9#
assez radical et venant d'un "maitre" :

Sub NettoieEtDerniereCellule() ' Laurent Longre
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = False
End With
For Each Sht In Worksheets
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Clear
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(,
2)

If Not DCell Is Nothing Then _
Sht.Range(DCell, Sht.[IV1]).EntireColumn.Clear
End If
Rien = Sht.UsedRange.Address
End If
Next Sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub



--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel

"Jean-Claude" a écrit dans le message de
news:O%
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre feuille..
etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la
dernière


cellule ???

Merci !

JC








Avatar
...Patrick
elle fonctionne chez moi !

"Jean-Claude" a écrit dans le message de
news:
Hélas !
La macro de Laurent n'a d'effet que sur la 1ère feuille !!
J'arrive pas à la modifier pour toutes les feuille du classeur !!
Help !!
JC

"...Patrick" <http://cerbermail.com/?KPW0tTCjFw> a écrit dans le message
de

news: eR9#
assez radical et venant d'un "maitre" :

Sub NettoieEtDerniereCellule() ' Laurent Longre
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = False
End With
For Each Sht In Worksheets
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Clear
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(,
2)

If Not DCell Is Nothing Then _
Sht.Range(DCell, Sht.[IV1]).EntireColumn.Clear
End If
Rien = Sht.UsedRange.Address
End If
Next Sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub



--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel

"Jean-Claude" a écrit dans le message de
news:O%
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la nouvelle
dernière cellule utilisée (sans faire une copier/coller autre
feuille..



etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la
dernière


cellule ???

Merci !

JC












Avatar
twinley
Une horloge suisse chez moi aussi avec 5 feuilles, 30000 lignes et 2
graphiques dynamiques.

alors que je n'ai jamais réussi avec
Sub RéinitUsedRange()

ActiveSheet.UsedRange

End Sub

qui ne fait pas de mal si elle ne fait pas de bien...


ni la cure Contrex qui plante mais que je ferai tourner un jour...
Sub Reconstruit(NomClasseur$) 'Frédéric Sigonneau, MPFE


--
à+twinley
"...Patrick" <http://cerbermail.com/?KPW0tTCjFw> a écrit dans le message de
news:
elle fonctionne chez moi !

"Jean-Claude" a écrit dans le message de
news:
Hélas !
La macro de Laurent n'a d'effet que sur la 1ère feuille !!
J'arrive pas à la modifier pour toutes les feuille du classeur !!
Help !!
JC

"...Patrick" <http://cerbermail.com/?KPW0tTCjFw> a écrit dans le message
de

news: eR9#
assez radical et venant d'un "maitre" :

Sub NettoieEtDerniereCellule() ' Laurent Longre
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = False
End With
For Each Sht In Worksheets
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Clear
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns,
xlPrevious)(,



2)
If Not DCell Is Nothing Then _
Sht.Range(DCell, Sht.[IV1]).EntireColumn.Clear
End If
Rien = Sht.UsedRange.Address
End If
Next Sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub



--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel

"Jean-Claude" a écrit dans le message de
news:O%
Bonjour à toutes et tous !

Probablement maintes fois expliqué mais bon...

Quand je fais CTRL+Fin, j'atteind la dernière cellule utilisé...
Mais après suppression de ligne/colonne, comment redéfinir la
nouvelle




dernière cellule utilisée (sans faire une copier/coller autre
feuille..



etc...)
Si c'est possible !! Bien sùr !!!

Et en VBA ?? C'est possible d'automatiser la 'redéfinition' de la
dernière


cellule ???

Merci !

JC