effacer la derniere ligne dans un fichier fermé

boudu

XLDnaute Occasionnel
Bonjour au forum
Je coince sur une macro qui doit me permettre d'effacer la derniere ligne dans un fichier qui doit rester fermé, apres l'effacement le fichier doit etre sauvegardé
j'ai une macro qui ne veut pas fonctionner mais je ne comprends pas pourquoi
Sub efface()
Dim DerniereLigne As Long
Dim fichier As String
repertoire = "C:\Documents and Settings\bibilolo\Mes documents\test.xls"
Set appexcel = New Excel.Application
appexcel.Workbooks.Open fichier
appexcel.Visible = False
DerniereLigne = Range("A1").End(xlDown).Row
Range("A10:D" & DerniereLigne).ClearContents
appexcel.ActiveWorkbook.Save
appexcel.Application.Quit
Set appexcel = Nothing
End Sub

Merci de me dire ce qui ne va pas
bonne journée à tous
 

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

pardon une erreur dans ma macro mais ça ne marche pas quand meme
Sub efface()
Dim DerniereLigne As Long
Dim fichier As String
'ouverture fichier solidarite
fichier = "C:\Documents and Settings\bibilolo\Mes documents\test.xls"
Set appexcel = New Excel.Application
appexcel.Workbooks.Open fichier
appexcel.Visible = False
DerniereLigne = Range("A1").End(xlDown).Row
Range("A10:D" & DerniereLigne).ClearContents
appexcel.ActiveWorkbook.Save
appexcel.Application.Quit
Set appexcel = Nothing
End Sub
 

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

decidément, je vais y arriver
Range("A10:D" & DerniereLigne).ClearContents

Les references sont A10 car sur cette ligne j'ai des formules qui ne doivent pas etre effacées et D car je ne veux effacer que jusqu'à cette colonne

Cette fois, je crois que c'est bon
Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : effacer la derniere ligne dans un fichier fermé

Bonjour boudu,

appexcel.Workbooks.Open fichier ---> oui mais quel fichier puisqu'à ce moment-là , la variable fichier ne contient rien

essaie en remplaçant "fichier" par "repertoire"

à+
Philippe

Édit: ma réponse concerne la question posée au #1, sans avoir vu les #2 et #3
 
Dernière édition:

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

Sub efface()
Dim DerniereLigne As Long
Dim repertoire As String
repertoire = "C:\Documents and Settings\bibilolo\Mes documents\test.xls"
Set appexcel = New Excel.Application
appexcel.Workbooks.Open repertoire
appexcel.Visible = False
DerniereLigne = Range("A1").End(xlDown).Row
Range("A10:D" & DerniereLigne).ClearContents

appexcel.ActiveWorkbook.Save
appexcel.Application.Quit
Set appexcel = Nothing
End Sub

comme ça?
j'ai testé, ça marche pas
reperoire contient bien le chemin vers le fichier!!

Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : effacer la derniere ligne dans un fichier fermé

Re,
Bonjour Pierrot

je pense que tu devrais préciser le classeur (et la feuille) sur lequel ta macro est censée faire la suppression

DerniereLigne = (preciser le classeur et la feuille).Range("A1").End(xlDown).Row
(preciser le classeur et la feuille).Range("A10: D" & DerniereLigne).ClearContents


à+
Philippe
 

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

desolé, une petite pause déjeuner et me revoila
merci à tous les 2
Pierrot93, c'est pour pouvoir travailler sur le fichier fermé et en plus dans la réalité ce fichier est partagé sur le réseau et accessible par de nombreux utilisateurs, cela m'évite de tester l'ouverture du fichier avant d'agir dessus
Philippe, je vais effectivement détailler le classeur et la feuille pour voir si ça change quelque chose
Bonne continuation
 

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

Re Pierrot, Philippe, leforum
malheureusement ça ne change rien en spécifiant classeur et feuille
il n'y a en fait qu'une feuille dans le classeur et en principe celui-ci est défini dans la variable repertoire
ce fichier etant accessible à ce moment-là je reste avec mon incompréhension du départ!!

Merci
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : effacer la derniere ligne dans un fichier fermé

Re,

essaie ceci:
Code:
Sub Macro1()
    Application.ScreenUpdating = False
    Workbooks.Open Filename:="C:\Documents and Settings\bibilolo\Mes documents\test.xls"
    Sheets("Feuil1").Range("A10:D" & Range("A65535").End(xlUp).Row).ClearContents
    ActiveWorkbook.Save
    ActiveWindow.Close
    Application.ScreenUpdating = True
End Sub
c'est pour pouvoir travailler sur le fichier fermé et en plus dans la réalité ce fichier est partagé sur le réseau et accessible par de nombreux utilisateurs
c'est une explication supplémentaire ............. qui risque d'amener des problèmes

a+
Philippe
 
Dernière édition:

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

bonjour Philippe, Pierrot le forum
Je teste ça lundi au boulot!!
Je vais essayer comme ça en esperant que les acces multiples sur le fichier pourront se gérer!!

Bon week end
 

CBernardT

XLDnaute Barbatruc
Re : effacer la derniere ligne dans un fichier fermé

Bonjour à tous,

Variante dans la syntaxe de la macro de Philippe :

Sub EffacerPlage()
Dim Classeur As String, Fichier As String, DerLigne As Long
Classeur = "test.xls"
Fichier = "C:\Documents and Settings\bibilolo\Mes documents\" & Classeur
Workbooks.Open Fichier ' Ouverture du fichier à traiter
ThisWorkbook.Activate ' Mise au premier plan du fichier contenant la macro
With Workbooks(Classeur) ' Travail sur le classeur à traiter en arrière plan
With .Sheets("Feuil1")
DerLigne = .Range("A65000").End(xlUp).Row
.Range("A10:A" & DerLigne).ClearContents
End With
.Save ' Enregistrement
.Close ' Fermeture
End With
End Sub
 

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

Re Bernard, Philippe, Pierrot le forum
Merci Bernard pour cette nouvelle proposition
j'ai testé en local c'est ok mais mon souci reste le fonctionnement sur le réseau et le fait que de nombreux utilisateurs accedent simultanément au fichier
je ferai un crashtest lundi pour voir si je peux me passer de mon idée de départ qui consistait à ouvrir une autre occurence d'excel
à suivre donc
merci encore et bon week end
 

boudu

XLDnaute Occasionnel
Re : effacer la derniere ligne dans un fichier fermé

Bonjour Kiki29
on est d'accord mais c'est un fichier qui évolue au cours de la journée et la manip consiste à pouvoir supprimer la derniere ligne qui a été écrite en cas d'erreur pour que les personnes qui s'y réfèrent aient des données justes
en fait une personne entre des données qui sont envoyées sur un fichier fermé
ce fichier est accessible mais reste fermé par de nombreuses personnes
ces personnes ont acces à plusieurs tableaux par le biais d'un fichier en lecture seule que l'on met à jour par un bouton, la mise à jour se fait donc toujours sur un fichier qui reste fermé
il y a plusieurs tableaux remplis par la premiere personne et c'est au cas où celle ci envoie les infos dans le mauvais fichier (par erreur) que je veux qu'elle puisse éffacer la derniere ligne puis l'envoyer dans le bon fichier
les solutions proposées par bernard et Philippe fonctionnent mais ouvrent puis referme le fichier, ce qui j'ai bien peur va me fiche la pagaille à un moment ou un autre mais je vais essayer
bon week end
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg