> Tous les forums > Forum Bureautique
 Supprimer des fichiers suivant conditionSujet résolu
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
Yaloo
  Posté le 30/10/2010 @ 23:07 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

J'avais, il y a qq temps, poser une question sur le forum ici myta m'avait très bien dépanné.

La macro fonctionne très bien sur mon PC (Vista, Excel 2010).

Le fichier (.xls) que j'ai fait est pour un ami, celui-ci est mis sur un serveur (Seven, Excel 2007) lettre V: j'ai modifié en conséquence la lettre du lecteur dans la macro.

Je remet mon Fichier et la macro de myta

Sub SupprimeFichier()
Dim Ligne As Integer

ChDir "C:\Vente\Commande"

For Ligne = [A65536].End(xlUp).Row To 2 Step -1
If Cells(Ligne, 1) = 1 And Cells(Ligne, 5) = 1 Then
Kill "C " & Cells(Ligne, 3) & "*" & ".xls"
Rows(Ligne).Range("A1:E1").Delete Shift:=xlUp
End If
Next Ligne

End Sub

Ca bloque sur Kill etc... avec Erreur d'exécution 53

Fichier introuvable

Alors que le fichier est bien situé dans le bon répertoire.

Lorsque je copie en intégralité le répertoire et sous répertoire de mon ami sur mon PC ça fonctionne.

Est-ce un problème de format de cellule ? Ou macro ?

Merci par avance de vos réponses.



Modifié par Yaloo le 30/10/2010 23:07
Publicité
Constance
 Posté le 30/10/2010 à 23:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Yaupe .o/

Hmm j'vais sans doute dire une connerie vu que j'y connais rien en scripting sous Excel, mais au lieu de Kill "C " etc., ça ne devrait pas être Kill "C:" etc. ?

Yaloo
 Posté le 30/10/2010 à 23:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir Constance,

On ne dit pas de conneries quand on aide qq'un.

Je nomme les fichiers dans le répertoire C:\Vente\Commande comme ceci :

C 2010 0010 TEST10.xls C pour Commande puis le N° de commande puis le nom du Client. C'est pour ça que j'ai le "C "

Il faut peut être que je fasse un test avec "V:\Vente\Commande\" & et la suite

A+

Yaloo
 Posté le 30/10/2010 à 23:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re

J'ai essayé Kill "V\Vente\Commande\" & "C " & Cells(ligne,3) etc...

J'ai toujours mon message d'erreur.



Modifié par Yaloo le 30/10/2010 23:47
galopin01
 Posté le 30/10/2010 à 23:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Tu n'as jamais fait de débogage ?

Yaloo
 Posté le 30/10/2010 à 23:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir Galopin,

Bon ne te moques pas de moi, qu'entends tu par faire un débogage ? ( et oui, faut tout apprendre au petit astucien)



Modifié par Yaloo le 30/10/2010 23:53
galopin01
 Posté le 31/10/2010 à 00:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Faire du débogage c'est "chercher l'erreur"

Il faut que tu lances ta macro et quand ça plante on commence l'analyse du pb :

Normalement dans VBA sous la fenêtre de code tu as 1 ou 2 autres petites fenêtres dont l'une est marquée Exécution

Si elle n'est pas affichée, dans VBA, tu fais Affichage / Fenêtre d'Exécution

Dans cette fenêtre d'Exécution tu tapes

Debug.Print "C " & Cells(Ligne, 3) & "*" & ".xls" ce qui normalement constitue la partie de la ligne en surbrillance qui pose problème

puis tu fais Entrée

Dans la ligne en dessous de la fenêtre d'exécution, il doit s'afficher le nom (et chemin) du fichier à tuer.

Regarde et vérifie dans le répertoire en question que ce fichier existe bien, mais normalement il y a gros à parier que le fichier n'existe pas.

A+



Modifié par galopin01 le 31/10/2010 00:03
Yaloo
 Posté le 31/10/2010 à 00:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re

Merci pour les explications (mais c'est comme ça que l'on apprend)

Je teste de suite et te tiens au courant.

A+

galopin01
 Posté le 31/10/2010 à 00:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Sinon si le nom de fichier est bon et que le fichier existe bien, une autre hypothèse est qu' il ne suffise pas de changer le lecteur...

Peut-être le chemin n'est-il pas strictement identique au chemin "chez toi"

Il faudrait enregistrer un bout de macro ou tu ouvres un fichier dans "le bon repertoire" (du copain sur le serveur) et vérifier que le chemin est bien exact.

Dans certains réseaux le lecteur visible dans Fichier / Ouvrir n'est pas forcément celui adressé par VBA... il doit s'agir d'un alias, enfin je ne sais pas trop je ne suis pas assez calé... mais j'ai remarqué cela en particulier à mon boulot !



Modifié par galopin01 le 31/10/2010 00:14
Publicité
Yaloo
 Posté le 31/10/2010 à 00:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Alors il me mets

C 2010 0049 *

Alors qu'il devrait me mettre

C 2010 0049 NOMCLIENT

Normalement, lorsque l'on recherche plusieurs lettre ou symboles on utilise bien le "*" ( le multiplié) ?

galopin01
 Posté le 31/10/2010 à 00:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Non Non ! Comme tu as un joker ("*") dans ton string l'instruction supprime tous les fichiers qui commencent par

C 2010

Normalement tu n'as pas recopié exatement tout ce que je t'ai dis : Tu devrais avoir en retour

C 2010 0049 *.xls

ou quelque chose comme ça tout dépend de ce qu'il y a a dans

Cells(Ligne, 3)

Si tu as un doublon dans la colonne 3 c'est sur que une fois que le premier est passé, après YAPLU rien à supprimer pour le doublon...

Si tu fais (dans la fenêtre d'éxécution) un :

Debug.Print Cells(Ligne, 3)

puis Entrée

ça te retourne quoi ?



Modifié par galopin01 le 31/10/2010 00:35
Yaloo
 Posté le 31/10/2010 à 00:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Désolé je n'avais pas vu ta réponse sur les serveurs et réseaux, je vais voir ça demain à tête reposée.

Ca commence a devenir un peu complexe.

A+

galopin01
 Posté le 31/10/2010 à 00:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

tu n'as pas vu non plus mon message de 00:28

Yaloo
 Posté le 31/10/2010 à 00:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ca me mets bien mon N° de cde

Si je mets toute la ligne ça me renvoi C 2010 0049 *.xls

Si je mets uniquement Cells(ligne, 3) ça me renvoi 2010 0049

galopin01
 Posté le 31/10/2010 à 00:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Ok donc cette instruction tue touts les fichiers de 2010 qui commencent par

C 2010 0049

Quel que soit le nom du client...

Donc on revient au problème des doublons si dans la colonne 3 tu as 2

"2010 0049 " dont l'un pour "DUPONT" et le second pour "DURAND" la première occurence supprime les deux fichiers et quand tu arrives sur le doublon YAPLU rien à supprimer...

Cherche dans ces deux directions "Doublons" ou "Chemin de lecteurs "et si tu ne trouves pas on essaiera un débogage plus complexe.



Modifié par galopin01 le 31/10/2010 00:42
Yaloo
 Posté le 31/10/2010 à 00:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Il n'y a pas de doublon de N° de commande donc je vais voir si ça viens du chemin de lecteur.

Je vois ça demain et te tiens au courant

Bonne nuit

galopin01
 Posté le 31/10/2010 à 00:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

J'ai encore un truc qui me laisse un peu perplexe :

elle marche un petit peu ta macro et ça plante en cours de route (sur une seule ligne) ou ça plante dès le commencement ?



Modifié par galopin01 le 31/10/2010 00:56
Publicité
Yaloo
 Posté le 31/10/2010 à 09:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Ca plante uniquement à Kill "C " etc...

C'est bizarre parce qu'avant Kill "C " etc... j'ai l'instruction ChDir "V:\Vente\Commande" donc ça devrait bien supprimer les fichiers dans ce sous-répertoire là.

Moi aussi ça m'étonne, car j'ai également des macros qui me permette de récupérer le même type de fichier dans les mêmes sous-répertoire et ça fonctionne.

Est-ce qu'il se pourrait que je ne puisse tout simplement pas supprimer de fichier sur le serveur ? Comme si je n'avais pas les droits pour le faire.

Je ne suis pas figé à ce code. Y aurait-il un autre moyen de procéder avec un autre type de code ?

Yaloo
 Posté le 31/10/2010 à 10:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'ai l'impression que ça marche

J'ai rajouté Sheets("Feuil1").Select avant ChDir

J'ai modifié ChDir "V:\Vente\Commande\"

J'ai mis Kill "V:\Vente\Commande\" & "C " & Sheets("Feuil1").Cells(Ligne, 3) & "*" & ".xls"

Ca à l'air de fonctionner sur le serveur avec ma connexion bureau à distance.

Je demanderai, dès mardi, à mon ami si ça fonctionne bien de chez lui.

J'attends un peu pour marquer le post en résolu.

Merci de votre aide

Yaloo



Modifié par Yaloo le 31/10/2010 10:08
galopin01
 Posté le 31/10/2010 à 10:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Oui effectivement je n'avais pas réfléchi à cela. Il trouve donc effectivement bien le répertoire en question.

C'est donc qu'il ne trouve aucun fichier commençant par :

"C 2010 0049" et se terminant par ".xls"

Es-tu sur qu'un tel fichier existe bien ? Ou qu'il n'est pas caché. S'il est "Hidden" ça produit effectivement une erreur de ce type.



Modifié par galopin01 le 31/10/2010 10:21
Yaloo
 Posté le 31/10/2010 à 10:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Galopin,

As tu lu mon post du Envoyé - 31/10/2010 : 10:07 ?

Ca marche avec les modifs que j'ai cité ci-dessus.

Il trouve bien le répertoire et les fichiers à supprimer.

Donc il me supprime bien mes fichiers. D'après mes tests, je pense que le post est résolu mais j'attends l'avis de mon ami.

Merci de ton aide

A+

Yaloo
 Posté le 31/10/2010 à 10:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
galopin01 a écrit :

Es-tu sur qu'un tel fichier existe bien ? Ou qu'il n'est pas caché. S'il est "Hidden" ça produit effectivement une erreur de ce type.

Pour info, c'est Hidden

galopin01
 Posté le 31/10/2010 à 10:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Oui je n'avais pas rafraichi...

C'est aussi une idée qui m'avait traversée l'esprit !

Tu n'as pas besoin de Sheets("Feuil1").Select

car cela devrait suffire

"V:\Vente\Commande\" & "C " & Sheets("Feuil1").Cells(Ligne, 3) & "*" & ".xls

cette précision est effectivement importante si tu lances ta macro depuis une autre feuille !

A+



Modifié par galopin01 le 31/10/2010 10:42
galopin01
 Posté le 31/10/2010 à 10:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Tu arrives à supprimer des fichiers "hidden" avec kill ?

Bizarre chez moi ça provoque une erreur 53 ! C'est probablement du a un problème de "droits" (Administrateur)

Content que ton problème soit résolu.

A+

Yaloo
 Posté le 31/10/2010 à 10:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Yaloo a écrit :
galopin01 a écrit :

Es-tu sur qu'un tel fichier existe bien ? Ou qu'il n'est pas caché. S'il est "Hidden" ça produit effectivement une erreur de ce type.

Pour info, c'est quoi Hidden ?

Désolé, je suis allé trop vite dans l'écriture de mon message.

Je voulais te demander ce que voulait dire "Hidden".

C'est quand les fichiers sont cachés ?

galopin01
 Posté le 31/10/2010 à 11:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

"Hidden" c'est "caché" donc tu ne les vois pas et VBA non plus....

Enfin... ça dépend de tes options d'affichage. Par défaut les fichiers "hidden" sont cachés quand tu vas dans l'Explorateur Windows.

C'est en principe le cas pour tous les fichiers système de Windows... mais pas seulement.

Bon là c'est un petit peu compliqué... si tu vas dans l'explorateur Windows et que tu fais un clic droit sur un fichier, et que tu choisis "propriétés"

tout en bas tu as un coche "caché" : Si tu coches le coche, le fichier devient invisible et tu n'as plus qu'a ouvrir un autre sujet dans PCA pour savoir comment le voir de nouveau !

A+

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
31,49 €Rasoir sans fil Philips QP2630/30 OneBlade (visage / corps / zones sensibles) à 31,49 €
Valable jusqu'au 20 Octobre

Amazon fait une promotion sur le rasoir électrique sans fil Philips QP2630/30 OneBlade qui passe à 31,49 € livré gratuitement alors qu'on le trouve ailleurs à partir de 55 €. Ce rasoir vous permettra à la fois de tailler votre barbe (sabots de 1,2, 3 et 5 mm), de définir proprement les contours ainsi que raser votre corps et vos zones sensibles grâce un système de protection adapté.. Le rasoir est étanche et fonctionne avec et sans mousse. Vous pouvez facilement le nettoyer. Il est accompagné d'une lame de rechange, de 5 sabots et de son chargeur.

Notez que le pack de 3 lames de rechange est également en promotion à 19,99 € au lieu de 30 €.


> Voir l'offre
131 €Montre connectée Huawei Watch GT 2 Pro à 131 € (via ODR)
Valable jusqu'au 20 Octobre

Amazon fait une promotion sur la montre connectée Huawei Watch GT 2 qui passe à 161 € livrée gratuitement au lieu de 200 €. Or HUAWEI rembourse actuellement 30 € pour l'achat de cette montre qui vous reviendra à 131 € après remboursement.

Avec la Huawei Watch GT 2 Pro, retrouvez une montre au cadran en saphir et au boitier en titane pour en mettre plein la vue à votre entourage. Légère et ultra-résistante, profitez de son sublime écran AMOLED de 1.39" à résolution 454 x 454 pixels pour afficher toutes les informations dont vous avez besoin. Moderne, mais intemporelle, cette montre connectée résiste à l'eau ainsi qu'à la poussière et vous sera d'une aide précieuse tout au long de votre journée.

Idéale pour suivre votre vie au quotidien, la Huawei Watch GT 2 Pro compte vos pas, évalue votre inactivité et surveille vos efforts intenses. En parallèle, soyez également notifié de chaque message, appel, alarme ou rappel.


> Voir l'offre
699,99 €PC portable 15 pouces Asus FX571LI-AL246 (Core i5-10300H, 16Go, SSD 512Go, GTX 1650 Ti) à 699,99 €
Valable jusqu'au 18 Octobre

RueDuCommerce fait une belle promotion sur le PC portable 15 pouces Asus FX571LI-AL246 qui passe 699,99 € au lieu de 799 €. Ce PC portable possède un écran 15 pouces Full HD, un processeur Intel Core i5-10300H, 16 Go de RAM, un SSD de 512 Go et une carte graphique GeForce GTX 1650 Ti 4 Go. L'ordinateur est livré dans OS et vous devrez donc installer vous-même Windows 10/11.

Un portable petit prix idéal pour un usage polyvalent : bureautique, multimédia et jeux !


> Voir l'offre

Sujets relatifs
Supprimer des fichiers suivant condition par macro
Supprimer des dossiers/Fichiers en doubles
Fichiers Word impossible à supprimer
Supprimer fichiers sur CD
Macro supprimer ligne avec condition
WORD 2010 ; Impossible supprimer les fichiers
Supprimer fichiers de plus de 3 mois
supprimer les fichiers word.
commentaire suivant condition
supprimer des fichiers
Plus de sujets relatifs à Supprimer des fichiers suivant condition
 > Tous les forums > Forum Bureautique