Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb corriger la dernière cellule excel 2007 (ctrl fin)

5 réponses
Avatar
Vincent_C
bonjour à tous,

devant insérer des colonnes dans un fichier excel 2007 volumineux (15 Mo),
je suis bloqué car la dernière cellule dernière (crtl fin) est toute proche
de la dernière colonne.
j'ai essayé différentes méthodes, mais soit la plage de celulle à supprimer
est trop importante (au total plusieurs millions de cellules) et je n'ai pas
assez de ressources systèmes pour que cela passe, soit cela ne fonctionne pas
(j'ai essayé avec la macro ci après, sans succès :

Sub suppr_cell()

With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False

Range("CW2210:XEV2667").Select
Selection.Delete Shift:=xlUp

With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False

End Sub

pourriez vous m'aider à trouver el moyen de réinitialiser correctement cette
dernière cellule, qui me permettrait d'insérer les colonnes dont j'ai besoin ?
Merci d'avance de votre aide. Bien cordialement, Vincent_C

5 réponses

Avatar
Vincent_C
Bonjour MichDenis et merci. Désolé mais cela ne fonctionne pas j'ai un
message d'erreur avec la macro : erreur 91 variable With non définie
D'avance merci.

"MichDenis" a écrit :

Bonjour Vincent,

Une façon de faire :
'--------------------------------------------------
Sub test()

Dim DerCol As Integer
Dim DerLig As Long

With Feuil1 'Nom feuille à adaper
'donne la dernière colonne occupée dans une feuille
DerCol = .Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column

'donne la dernière ligne occupée dans une ligne
DerLig = .Cells.Find(What:="*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
MsgBox .Cells(DerLig, DerCol).Address
'OU
.Cells(DerLig, DerCol).Select
End With
End Sub
'--------------------------------------------------



"Vincent_C" a écrit dans le message de groupe de discussion :
bonjour à tous,

devant insérer des colonnes dans un fichier excel 2007 volumineux (15 Mo),
je suis bloqué car la dernière cellule dernière (crtl fin) est toute proche
de la dernière colonne.
j'ai essayé différentes méthodes, mais soit la plage de celulle à supprimer
est trop importante (au total plusieurs millions de cellules) et je n'ai pas
assez de ressources systèmes pour que cela passe, soit cela ne fonctionne pas
(j'ai essayé avec la macro ci après, sans succès :

Sub suppr_cell()

With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False

Range("CW2210:XEV2667").Select
Selection.Delete Shift:=xlUp

With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False

End Sub

pourriez vous m'aider à trouver el moyen de réinitialiser correctement cette
dernière cellule, qui me permettrait d'insérer les colonnes dont j'ai besoin ?
Merci d'avance de votre aide. Bien cordialement, Vincent_C


Avatar
Vincent_C
Bonjour, en fait mon besoin est un peu différent : est il possible de
supprimer une zone importante dans excel 2007 comme cw1:ec2209 avec une
macro, sans que l'opération soit trop longue : j'ai essayé manuellement mais
c'est vraiment très (trop) long !

merci encore !

Bien cordialement, Vincent_C

"MichDenis" a écrit :

Une erreur 91... c'est probablement que la méthode "Find"
ne trouve pas ce qu'elle cherche. Est-ce possible que tu aies
essayé cette macro dans une feuille vierge? Si oui, cette erreur
est normale. J'aurais dû ajouter la ligne suivante en début de
code "On error resume next"

Sinon, tu vas devoir donner un peu plus d'explications!




"Vincent_C" a écrit dans le message
de groupe de discussion :

Bonjour MichDenis et merci. Désolé mais cela ne fonctionne pas j'ai un
message d'erreur avec la macro : erreur 91 variable With non définie
D'avance merci.

"MichDenis" a écrit :

> Bonjour Vincent,
>
> Une façon de faire :
> '--------------------------------------------------
> Sub test()
>
> Dim DerCol As Integer
> Dim DerLig As Long
>
> With Feuil1 'Nom feuille à adaper
> 'donne la dernière colonne occupée dans une feuille
> DerCol = .Cells.Find("*", LookIn:=xlFormulas, _
> SearchOrder:=xlByColumns, _
> SearchDirection:=xlPrevious).Column
>
> 'donne la dernière ligne occupée dans une ligne
> DerLig = .Cells.Find(What:="*", LookIn:=xlFormulas, _
> SearchOrder:=xlByRows, _
> SearchDirection:=xlPrevious).Row
> MsgBox .Cells(DerLig, DerCol).Address
> 'OU
> .Cells(DerLig, DerCol).Select
> End With
> End Sub
> '--------------------------------------------------
>
>
>
> "Vincent_C" a écrit dans le
message de groupe de discussion :

> bonjour à tous,
>
> devant insérer des colonnes dans un fichier excel 2007 volumineux (15
Mo),
> je suis bloqué car la dernière cellule dernière (crtl fin) est toute
proche
> de la dernière colonne.
> j'ai essayé différentes méthodes, mais soit la plage de celulle à
supprimer
> est trop importante (au total plusieurs millions de cellules) et je n'ai
pas
> assez de ressources systèmes pour que cela passe, soit cela ne
fonctionne pas
> (j'ai essayé avec la macro ci après, sans succès :
>
> Sub suppr_cell()
>
> With Application
> .Calculation = xlManual
> .MaxChange = 0.001
> End With
> ActiveWorkbook.PrecisionAsDisplayed = False
>
> Range("CW2210:XEV2667").Select
> Selection.Delete Shift:=xlUp
>
> With Application
> .Calculation = xlAutomatic
> .MaxChange = 0.001
> End With
> ActiveWorkbook.PrecisionAsDisplayed = False
>
> End Sub
>
> pourriez vous m'aider à trouver el moyen de réinitialiser correctement
cette
> dernière cellule, qui me permettrait d'insérer les colonnes dont j'ai
besoin ?
> Merci d'avance de votre aide. Bien cordialement, Vincent_C



Avatar
Vincent_C
merci, en fait j'ai besoin de supprimer les cellules complétement (le but de
toute cette "manoeuvre" est de reseter la dernière cellule et d'alléger le
fichier en consèquence)

Merci

"MichDenis" a écrit :

Dans la procédure, tu dois adapter le nom de la feuille selon
celle de ton application.

'Pour effacer seulement les données et non le format de cellule
'-----------------------------------------------
Sub Effacer()
Dim ModeCalcul As String
ModeCalcul = Application.Calculation
Application.EnableEvents = False

With Worksheets("NomDeLaFeuille") ' à déterminer
.Range("cw1:ec2209").ClearContents
End With

Application.Calculation = ModeCalcul
Application.EnableEvents = True
End Sub
'-----------------------------------------------

Pour effacer les données et le format de cellules, tu
remplaces cette ligne de code dans la procédure :
.Range("cw1:ec2209").ClearContents
'Pour
.Range("cw1:ec2209").Clear



"Vincent_C" a écrit dans le message
de groupe de discussion :

Bonjour, en fait mon besoin est un peu différent : est il possible de
supprimer une zone importante dans excel 2007 comme cw1:ec2209 avec une
macro, sans que l'opération soit trop longue : j'ai essayé manuellement
mais
c'est vraiment très (trop) long !

merci encore !

Bien cordialement, Vincent_C

"MichDenis" a écrit :

> Une erreur 91... c'est probablement que la méthode "Find"
> ne trouve pas ce qu'elle cherche. Est-ce possible que tu aies
> essayé cette macro dans une feuille vierge? Si oui, cette erreur
> est normale. J'aurais dû ajouter la ligne suivante en début de
> code "On error resume next"
>
> Sinon, tu vas devoir donner un peu plus d'explications!
>
>
>
>
> "Vincent_C" a écrit dans le
message
> de groupe de discussion :
>
> Bonjour MichDenis et merci. Désolé mais cela ne fonctionne pas j'ai un
> message d'erreur avec la macro : erreur 91 variable With non définie
> D'avance merci.
>
> "MichDenis" a écrit :
>
> > Bonjour Vincent,
> >
> > Une façon de faire :
> > '--------------------------------------------------
> > Sub test()
> >
> > Dim DerCol As Integer
> > Dim DerLig As Long
> >
> > With Feuil1 'Nom feuille à adaper
> > 'donne la dernière colonne occupée dans une feuille
> > DerCol = .Cells.Find("*", LookIn:=xlFormulas, _
> > SearchOrder:=xlByColumns, _
> > SearchDirection:=xlPrevious).Column
> >
> > 'donne la dernière ligne occupée dans une ligne
> > DerLig = .Cells.Find(What:="*", LookIn:=xlFormulas, _
> > SearchOrder:=xlByRows, _
> > SearchDirection:=xlPrevious).Row
> > MsgBox .Cells(DerLig, DerCol).Address
> > 'OU
> > .Cells(DerLig, DerCol).Select
> > End With
> > End Sub
> > '--------------------------------------------------
> >
> >
> >
> > "Vincent_C" a écrit dans le
> message de groupe de discussion :
>
> > bonjour à tous,
> >
> > devant insérer des colonnes dans un fichier excel 2007 volumineux (15
> Mo),
> > je suis bloqué car la dernière cellule dernière (crtl fin) est
toute
> proche
> > de la dernière colonne.
> > j'ai essayé différentes méthodes, mais soit la plage de celulle à
> supprimer
> > est trop importante (au total plusieurs millions de cellules) et je
n'ai
> pas
> > assez de ressources systèmes pour que cela passe, soit cela ne
> fonctionne pas
> > (j'ai essayé avec la macro ci après, sans succès :
> >
> > Sub suppr_cell()
> >
> > With Application
> > .Calculation = xlManual
> > .MaxChange = 0.001
> > End With
> > ActiveWorkbook.PrecisionAsDisplayed = False
> >
> > Range("CW2210:XEV2667").Select
> > Selection.Delete Shift:=xlUp
> >
> > With Application
> > .Calculation = xlAutomatic
> > .MaxChange = 0.001
> > End With
> > ActiveWorkbook.PrecisionAsDisplayed = False
> >
> > End Sub
> >
> > pourriez vous m'aider à trouver el moyen de réinitialiser
correctement
> cette
> > dernière cellule, qui me permettrait d'insérer les colonnes dont
j'ai
> besoin ?
> > Merci d'avance de votre aide. Bien cordialement, Vincent_C
>



Avatar
Vincent_C
merci. pour supprimer les cellules, est il possible de remplace l'instruction
.Clear par .Delete ?

"MichDenis" a écrit :

Dans la procédure, tu dois adapter le nom de la feuille selon
celle de ton application.

'Pour effacer seulement les données et non le format de cellule
'-----------------------------------------------
Sub Effacer()
Dim ModeCalcul As String
ModeCalcul = Application.Calculation
Application.EnableEvents = False

With Worksheets("NomDeLaFeuille") ' à déterminer
.Range("cw1:ec2209").ClearContents
End With

Application.Calculation = ModeCalcul
Application.EnableEvents = True
End Sub
'-----------------------------------------------

Pour effacer les données et le format de cellules, tu
remplaces cette ligne de code dans la procédure :
.Range("cw1:ec2209").ClearContents
'Pour
.Range("cw1:ec2209").Clear







"Vincent_C" a écrit dans le message
de groupe de discussion :

Bonjour, en fait mon besoin est un peu différent : est il possible de
supprimer une zone importante dans excel 2007 comme cw1:ec2209 avec une
macro, sans que l'opération soit trop longue : j'ai essayé manuellement
mais
c'est vraiment très (trop) long !

merci encore !

Bien cordialement, Vincent_C

"MichDenis" a écrit :

> Une erreur 91... c'est probablement que la méthode "Find"
> ne trouve pas ce qu'elle cherche. Est-ce possible que tu aies
> essayé cette macro dans une feuille vierge? Si oui, cette erreur
> est normale. J'aurais dû ajouter la ligne suivante en début de
> code "On error resume next"
>
> Sinon, tu vas devoir donner un peu plus d'explications!
>
>
>
>
> "Vincent_C" a écrit dans le
message
> de groupe de discussion :
>
> Bonjour MichDenis et merci. Désolé mais cela ne fonctionne pas j'ai un
> message d'erreur avec la macro : erreur 91 variable With non définie
> D'avance merci.
>
> "MichDenis" a écrit :
>
> > Bonjour Vincent,
> >
> > Une façon de faire :
> > '--------------------------------------------------
> > Sub test()
> >
> > Dim DerCol As Integer
> > Dim DerLig As Long
> >
> > With Feuil1 'Nom feuille à adaper
> > 'donne la dernière colonne occupée dans une feuille
> > DerCol = .Cells.Find("*", LookIn:=xlFormulas, _
> > SearchOrder:=xlByColumns, _
> > SearchDirection:=xlPrevious).Column
> >
> > 'donne la dernière ligne occupée dans une ligne
> > DerLig = .Cells.Find(What:="*", LookIn:=xlFormulas, _
> > SearchOrder:=xlByRows, _
> > SearchDirection:=xlPrevious).Row
> > MsgBox .Cells(DerLig, DerCol).Address
> > 'OU
> > .Cells(DerLig, DerCol).Select
> > End With
> > End Sub
> > '--------------------------------------------------
> >
> >
> >
> > "Vincent_C" a écrit dans le
> message de groupe de discussion :
>
> > bonjour à tous,
> >
> > devant insérer des colonnes dans un fichier excel 2007 volumineux (15
> Mo),
> > je suis bloqué car la dernière cellule dernière (crtl fin) est
toute
> proche
> > de la dernière colonne.
> > j'ai essayé différentes méthodes, mais soit la plage de celulle à
> supprimer
> > est trop importante (au total plusieurs millions de cellules) et je
n'ai
> pas
> > assez de ressources systèmes pour que cela passe, soit cela ne
> fonctionne pas
> > (j'ai essayé avec la macro ci après, sans succès :
> >
> > Sub suppr_cell()
> >
> > With Application
> > .Calculation = xlManual
> > .MaxChange = 0.001
> > End With
> > ActiveWorkbook.PrecisionAsDisplayed = False
> >
> > Range("CW2210:XEV2667").Select
> > Selection.Delete Shift:=xlUp
> >
> > With Application
> > .Calculation = xlAutomatic
> > .MaxChange = 0.001
> > End With
> > ActiveWorkbook.PrecisionAsDisplayed = False
> >
> > End Sub
> >
> > pourriez vous m'aider à trouver el moyen de réinitialiser
correctement
> cette
> > dernière cellule, qui me permettrait d'insérer les colonnes dont
j'ai
> besoin ?
> > Merci d'avance de votre aide. Bien cordialement, Vincent_C
>



Avatar
MichDenis
| est il possible de remplace l'instruction .Clear par .Delete ?

OUI