XL 2013 Modifier plusieurs classeurs.

YANOU38

XLDnaute Junior
Bonjour à tous,
J'ai un répertoire "DMOS" avec plus de 450 classeurs derrière.
Je voudrais pouvoir, sur tous mes classeurs :
- Supprimer le texte Feuille "1" cellule "D57"
- Supprimer le texte Feuille "1" cellule "D58"
- Supprimer le texte Feuille "1" cellule "E57"
- Supprimer le texte Feuille "1" cellule "E58"
et que la macro balaye tous les sous-dossiers de ce répertoire en faisant les modifications.
Les noms des sous-répertoires sont tous différents, sans logique.
J'ai tenté de modifier ce VBA (Merci Pierre-Jean), mais je n'arrive pas à supprimer la partie "FICHE AFFAIRE" qui était spécifique à la demande de l'époque.
Dans mon cas, peu importe le nom des sous-dossiers.
Merci pour votre aide.
VB:
Sub modif()
repertoire = "Z:\DEPT CHAUDRONNERIE\Divers documents techniques\4 - Soudage\DMOS\"
mesfichiers = Dir(repertoire)
Do While mesfichiers <> ""
If InStr(mesfichiers, "FICHE AFFAIRE") <> 0 Then
Workbooks.Open repertoire & mesfichiers
With ActiveWorkbook
.Sheets("1").Range("D57") = ""
.Sheets("1").Range("D58") = ""
.Sheets("1").Range("E57") = ""
.Sheets("1").Range("E58") = ""
.Close SaveChanges:=True
End With
End If
mesfichiers = Dir
Loop
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Yanou,
"If InStr(mesfichiers, "FICHE AFFAIRE") <> 0" permettait de voir si le nom du fichier comportait la chaine.
Si Vous êtes sur que TOUS les fichiers du dossier sont à traiter, il suffit de supprimer cete ligne :
VB:
Sub modif()
repertoire = "Z:\DEPT CHAUDRONNERIE\Divers documents techniques\4 - Soudage\DMOS\"
mesfichiers = Dir(repertoire)
Do While mesfichiers <> ""
Workbooks.Open repertoire & mesfichiers
With ActiveWorkbook
.Sheets("1").Range("D57") = ""
.Sheets("1").Range("D58") = ""
.Sheets("1").Range("E57") = ""
.Sheets("1").Range("E58") = ""
.Close SaveChanges:=True
End With
mesfichiers = Dir
Loop
End Sub
Evidemment je n'ai pas pu tester.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Comment puis je le savoir ?
Là où vous avez tenté de faire vos modifs.
Ou n'importe où en dehors de "Z:\DEPT CHAUDRONNERIE\Divers documents techniques\4 - Soudage\DMOS\"
Par exemple, enregistrez cette PJ.
Appuyez sur le premier bouton, vous aurez la liste des fichiers qui seraient modifiés, mais qui ne le sont pas par sécurité. La macro est :
VB:
Sub ModifTest()
    L = 1
    Range("A2:A65000").ClearContents
    repertoire = "Z:\DEPT CHAUDRONNERIE\Divers documents techniques\4 - Soudage\DMOS\"
    mesfichiers = Dir(repertoire)
    Do While mesfichiers <> ""
        ' Action ouverture, écriture, fermeture supprimée.
        ' Ecriture nom fichier pour test.
        L = L + 1
        Cells(L, "A") = mesfichiers
        mesfichiers = Dir
    Loop
End Sub
Si cette liste est correcte appuyez sur le second bouton qui fera vraiment les modifs.
A noter que tous les fichiers doivent être de type XL ( xls, xlsb, xlsx, xlsm ) sinon il y aura une erreur.
 

Pièces jointes

  • Yanou.xlsm
    15.8 KB · Affichages: 2

YANOU38

XLDnaute Junior
Alors, avant d'accéder aux fichiers Excel, j'ai d'autres sous-répertoires.
Les Fichiers Excel sont en bout de ligne.
Le nombre et les noms de ces sous-répertoires est totalement aléatoire après "DMOS"
Exemple 1 :
1634217342814.png

Exemple 2 :
1634217365695.png

J'ai modifié mon fichier, pour faire un essai, en plaçant les classeurs Excel tout de suite derrière "DMOS" et vos routines fonctionnent très bien.
Merci pour votre aide.
 

YANOU38

XLDnaute Junior
Bonjour sylvanu, le forum,
Merci pour votre aide.
Chez moi, le résultat "Liste des fichiers qui seront modifiés" est incomplet.
Les fichiers trouvés ont tous la même trame => 1 seul sous-répertoire après "DMOS" et tout de suite derrière, le fichier Excel.
Je pensais avoir trouvé ceci, mais quand je regarde votre pièce jointe en #6, vous avez du ...\Desktop\Classeur.xlsm et du ...\Desktop\XLD\Classeur.xlsm. Il trouve bien tous les fichiers, peu importe le nombre de sous-répertoires.
Je suis en train de chercher...
 

Pièces jointes

  • Copie de Yanou (V2).xlsm
    20.7 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Je ne comprends pas. Chez moi ça marche bien.
Ce qui est bizarre c'est qu'il trouve des fichiers dans certains dossiers mais pas dans d'autres :
Nb Fichiers
4 - Soudage\DMOS\1-Acier carbone0
4 - Soudage\DMOS\10-U47N4
4 - Soudage\DMOS\11 - Zéron 1000
4 - Soudage\DMOS\12-Hétérogène14
4 - Soudage\DMOS\13-P265GH-C2763
4 - Soudage\DMOS\14-310S2
4 - Soudage\DMOS\2-Inox0
4 - Soudage\DMOS\3-Base Nickel0
4 - Soudage\DMOS\4-UB611
4 - Soudage\DMOS\5-Dudgeonnage3
4 - Soudage\DMOS\6-U45N33
4 - Soudage\DMOS\7-Placage 309LMo-316L4
4 - Soudage\DMOS\8 - Rechargement --- sur Acier
0​

Et je ne vois aucune logique.
Pouvez vous vérifier si dans 10-U47N vous avez 4 fichiers et dans 5-Dudgeonnage 3 fichiers, juste pour vérifier.

Essayez cette PJ, j'ai fait une modif qui lève peut être une ambiguïté.
 

Pièces jointes

  • Copie de Copie de Yanou (V4).xlsm
    24.6 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Alors vraiment désolé, je ne comprends pas. Chez moi cela marche impeccable.
C'est ce coté aléatoire qui me dérange.
Il existe un autre moyen de lister les fichiers, pourrait on le tester ? Voir PJ.
Est ce que les résultats sont corrects ?
 

Pièces jointes

  • YanouTest2.xlsm
    31 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Toujours pas compris pourquoi le premier fichier marche chez moi et pas chez vous. Mystère.

Un nouvel essai basé sur le fichier précédent.
Deux boutons, un pour lister les fichiers, l'autre pour les lister et les modifier.
J'espère que ça va marcher.
 

Pièces jointes

  • YanouNouveau.xlsm
    30.6 KB · Affichages: 3

Discussions similaires

Haut Bas