Bonjour,
j'essaie d'utiliser cette formule :
for ....
if....then
LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1
Sheets("Base").Range("A" & LigneAjout).Value = Nom
....
end if
next
pour copier des valeurs dans une base
Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n°
65xxxx)
que faire, je ne comprends pas, précédemment cela marchait ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Steph_D
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub
"_PhilBab" <philippe.babut@tiscali.fr> a écrit dans le message de
news:d9dgf8$ku0$2@news.tiscali.fr...
Bonjour,
j'essaie d'utiliser cette formule :
for ....
if....then
LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1
Sheets("Base").Range("A" & LigneAjout).Value = Nom
....
end if
next
pour copier des valeurs dans une base
Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n°
65xxxx)
que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du
classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage
trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage()
'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet
On Error Resume Next
For Each Sh In Worksheets
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireRow, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByRows, xlPrevious).EntireRow) _
.Offset(1, 0).Delete
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireColumn, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByColumns, xlPrevious). _
EntireColumn).Offset(0, 1).Delete
Next
ActiveWorkbook.Save
Set Sh = Nothing
End Sub
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub
_PhilBab
merci Steph_D je vois cela le week end, le soir, faut pas qu'j'abuse trop !! ç'à fait pas bon ménage. "Steph_D" a écrit dans le message de news: d9dlup$2ge$
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub
merci Steph_D
je vois cela le week end, le soir, faut pas qu'j'abuse trop !! ç'à fait pas
bon ménage.
"Steph_D" <steph_D@caramail.com> a écrit dans le message de news:
d9dlup$2ge$1@s1.news.oleane.net...
"_PhilBab" <philippe.babut@tiscali.fr> a écrit dans le message de
news:d9dgf8$ku0$2@news.tiscali.fr...
Bonjour,
j'essaie d'utiliser cette formule :
for ....
if....then
LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1
Sheets("Base").Range("A" & LigneAjout).Value = Nom
....
end if
next
pour copier des valeurs dans une base
Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n°
65xxxx)
que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du
classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage
trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage()
'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet
On Error Resume Next
For Each Sh In Worksheets
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireRow, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByRows, xlPrevious).EntireRow) _
.Offset(1, 0).Delete
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireColumn, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByColumns, xlPrevious). _
EntireColumn).Offset(0, 1).Delete
Next
ActiveWorkbook.Save
Set Sh = Nothing
End Sub
merci Steph_D je vois cela le week end, le soir, faut pas qu'j'abuse trop !! ç'à fait pas bon ménage. "Steph_D" a écrit dans le message de news: d9dlup$2ge$
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub
_PhilBab
Bonjour Steph_D je viens de nettoyer la feuille, j'ai placé votre macro dans la feuille concernée (Base), * j'obtiens en utilisant la formule ci joint et 'LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 en >> le message d'erreur : Erreur d'execution '6' : Dépacement de capacité * si je remplace par "LigneAjout = Sheets("Base").Range("A2").Row + 1" , je n'ai pas le message d'erreur, tous s'enregistre, mais l'un sur l'autre (sur la même ligne 3 de la feuille ("Base") à chaque changement de c
la deuxième boucle ne s'incrémente pas à priori !!! et la première ne scan pas de h4 à h25 comme prévu ???
(cette formule est dans la feuille MO qui contient les valeur à recopier dans la feuille("Base") )
Private Sub ValiderMO_Click() Dim c As Variant, Lgn, LigneAjout As Integer, Poste, Nom, Code As String 'Saisie du nom de l'opérateur Nom = InputBox("Saisir le Nom de l'opérateur de saisie : ", "Opérateur de saisie", "") If Nom = "" Then MsgBox ("veuillez saisir votre nom") End End If 'lecture et récup des données de la colonne H de la feuille MO 'boucle de de H4 à H25 >> je ne suis pas sure que la boucle se face bien ici de h4 à h25 ??? Range("H4").Select
For Each c In [H4:H25] '(c=Elèments identifiés) If c > " " Then ' c.Select Lgn = ActiveCell.Row '.Value Poste = Range("H27").Value Code = Cells(Lgn, "A").Value
'--------------------- 'On Error Resume Next Sheets("Base").Select
Sheets("Base").Range("B" & LigneAjout).Value = Code 'Code 5M Sheets("Base").Range("C" & LigneAjout).Value = Date 'DateSaisie Sheets("Base").Range("D" & LigneAjout).Value = Poste ' Poste Sheets("Base").Range("E" & LigneAjout).Value = c 'Elèments identifiés 'Sheets("Base").Range("J" & LigneAjout).Value = Obs 'Observations
End If Next End Sub
"Steph_D" a écrit dans le message de news: d9dlup$2ge$
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub
Bonjour Steph_D
je viens de nettoyer la feuille, j'ai placé votre macro dans la feuille
concernée (Base),
* j'obtiens en utilisant la formule ci joint et 'LigneAjout =
Sheets("Base").Range("A3").End(xlDown).Row + 1 en >>
le message d'erreur : Erreur d'execution '6' : Dépacement de capacité
* si je remplace par "LigneAjout = Sheets("Base").Range("A2").Row + 1" ,
je n'ai pas le message d'erreur, tous s'enregistre, mais l'un sur l'autre
(sur la même ligne 3 de la feuille ("Base") à chaque changement de c
la deuxième boucle ne s'incrémente pas à priori !!!
et la première ne scan pas de h4 à h25 comme prévu ???
(cette formule est dans la feuille MO qui contient les valeur à recopier
dans la feuille("Base") )
Private Sub ValiderMO_Click()
Dim c As Variant, Lgn, LigneAjout As Integer, Poste, Nom, Code As String
'Saisie du nom de l'opérateur
Nom = InputBox("Saisir le Nom de l'opérateur de saisie : ", "Opérateur de
saisie", "")
If Nom = "" Then
MsgBox ("veuillez saisir votre nom")
End
End If
'lecture et récup des données de la colonne H de la feuille MO
'boucle de de H4 à H25 >> je ne suis pas sure que la boucle se
face bien ici de h4 à h25 ???
Range("H4").Select
For Each c In [H4:H25] '(c=Elèments identifiés)
If c > " " Then
' c.Select
Lgn = ActiveCell.Row '.Value
Poste = Range("H27").Value
Code = Cells(Lgn, "A").Value
'---------------------
'On Error Resume Next
Sheets("Base").Select
Sheets("Base").Range("B" & LigneAjout).Value = Code 'Code 5M
Sheets("Base").Range("C" & LigneAjout).Value = Date 'DateSaisie
Sheets("Base").Range("D" & LigneAjout).Value = Poste ' Poste
Sheets("Base").Range("E" & LigneAjout).Value = c 'Elèments
identifiés
'Sheets("Base").Range("J" & LigneAjout).Value = Obs 'Observations
End If
Next
End Sub
"Steph_D" <steph_D@caramail.com> a écrit dans le message de news:
d9dlup$2ge$1@s1.news.oleane.net...
"_PhilBab" <philippe.babut@tiscali.fr> a écrit dans le message de
news:d9dgf8$ku0$2@news.tiscali.fr...
Bonjour,
j'essaie d'utiliser cette formule :
for ....
if....then
LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1
Sheets("Base").Range("A" & LigneAjout).Value = Nom
....
end if
next
pour copier des valeurs dans une base
Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n°
65xxxx)
que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du
classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage
trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage()
'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet
On Error Resume Next
For Each Sh In Worksheets
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireRow, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByRows, xlPrevious).EntireRow) _
.Offset(1, 0).Delete
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireColumn, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByColumns, xlPrevious). _
EntireColumn).Offset(0, 1).Delete
Next
ActiveWorkbook.Save
Set Sh = Nothing
End Sub
Bonjour Steph_D je viens de nettoyer la feuille, j'ai placé votre macro dans la feuille concernée (Base), * j'obtiens en utilisant la formule ci joint et 'LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 en >> le message d'erreur : Erreur d'execution '6' : Dépacement de capacité * si je remplace par "LigneAjout = Sheets("Base").Range("A2").Row + 1" , je n'ai pas le message d'erreur, tous s'enregistre, mais l'un sur l'autre (sur la même ligne 3 de la feuille ("Base") à chaque changement de c
la deuxième boucle ne s'incrémente pas à priori !!! et la première ne scan pas de h4 à h25 comme prévu ???
(cette formule est dans la feuille MO qui contient les valeur à recopier dans la feuille("Base") )
Private Sub ValiderMO_Click() Dim c As Variant, Lgn, LigneAjout As Integer, Poste, Nom, Code As String 'Saisie du nom de l'opérateur Nom = InputBox("Saisir le Nom de l'opérateur de saisie : ", "Opérateur de saisie", "") If Nom = "" Then MsgBox ("veuillez saisir votre nom") End End If 'lecture et récup des données de la colonne H de la feuille MO 'boucle de de H4 à H25 >> je ne suis pas sure que la boucle se face bien ici de h4 à h25 ??? Range("H4").Select
For Each c In [H4:H25] '(c=Elèments identifiés) If c > " " Then ' c.Select Lgn = ActiveCell.Row '.Value Poste = Range("H27").Value Code = Cells(Lgn, "A").Value
'--------------------- 'On Error Resume Next Sheets("Base").Select
Sheets("Base").Range("B" & LigneAjout).Value = Code 'Code 5M Sheets("Base").Range("C" & LigneAjout).Value = Date 'DateSaisie Sheets("Base").Range("D" & LigneAjout).Value = Poste ' Poste Sheets("Base").Range("E" & LigneAjout).Value = c 'Elèments identifiés 'Sheets("Base").Range("J" & LigneAjout).Value = Obs 'Observations
End If Next End Sub
"Steph_D" a écrit dans le message de news: d9dlup$2ge$
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub
_PhilBab
Bonjour Steph_D, Apparemment, j'ai résolu ce problème en cherchant les autres réponses (fil du 22/6 que je n'ai pas trouvé... j'utilise : LigneAjout = Sheets("Base").Range("A65536").End(xlUp).Row + 1,
Merci encore.
"Steph_D" a écrit dans le message de news: d9dlup$2ge$
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub
Bonjour Steph_D,
Apparemment, j'ai résolu ce problème en cherchant les autres réponses (fil
du 22/6 que je n'ai pas trouvé...
j'utilise : LigneAjout = Sheets("Base").Range("A65536").End(xlUp).Row + 1,
Merci encore.
"Steph_D" <steph_D@caramail.com> a écrit dans le message de news:
d9dlup$2ge$1@s1.news.oleane.net...
"_PhilBab" <philippe.babut@tiscali.fr> a écrit dans le message de
news:d9dgf8$ku0$2@news.tiscali.fr...
Bonjour,
j'essaie d'utiliser cette formule :
for ....
if....then
LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1
Sheets("Base").Range("A" & LigneAjout).Value = Nom
....
end if
next
pour copier des valeurs dans une base
Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n°
65xxxx)
que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du
classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage
trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage()
'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet
On Error Resume Next
For Each Sh In Worksheets
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireRow, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByRows, xlPrevious).EntireRow) _
.Offset(1, 0).Delete
Sh.Range(Sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireColumn, _
Sh.Cells.Find("*", , xlFormulas, _
, xlByColumns, xlPrevious). _
EntireColumn).Offset(0, 1).Delete
Next
ActiveWorkbook.Save
Set Sh = Nothing
End Sub
Bonjour Steph_D, Apparemment, j'ai résolu ce problème en cherchant les autres réponses (fil du 22/6 que je n'ai pas trouvé... j'utilise : LigneAjout = Sheets("Base").Range("A65536").End(xlUp).Row + 1,
Merci encore.
"Steph_D" a écrit dans le message de news: d9dlup$2ge$
"_PhilBab" a écrit dans le message de news:d9dgf8$ku0$
Bonjour, j'essaie d'utiliser cette formule : for .... if....then LigneAjout = Sheets("Base").Range("A3").End(xlDown).Row + 1 Sheets("Base").Range("A" & LigneAjout).Value = Nom .... end if next pour copier des valeurs dans une base Mon problème, c'est quelle sélectionne que la dernière ligne d'Excel (n° 65xxxx) que faire, je ne comprends pas, précédemment cela marchait ?
Merci.
Bonjour,
Xl doit considérer qu'il y a eu une action sur la dernière ligne du classeur. Peut-être qu'après avoir exécuté la macro pour faire le ménage trouvé sur Excelabo, votre macro fonctionnera de nouveau correctement.
Steph D.
Sub ménage() 'Jacques Chaussard et Denis Michon
Dim Sh As Worksheet On Error Resume Next
For Each Sh In Worksheets Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireRow, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByRows, xlPrevious).EntireRow) _ .Offset(1, 0).Delete Sh.Range(Sh.Cells.SpecialCells( _ xlCellTypeLastCell).EntireColumn, _ Sh.Cells.Find("*", , xlFormulas, _ , xlByColumns, xlPrevious). _ EntireColumn).Offset(0, 1).Delete Next ActiveWorkbook.Save Set Sh = Nothing End Sub