XL 2013 Plusieurs macros, plusieurs fichiers, même répertoire

JBond13600

XLDnaute Junior
Bonjour le Forum,

Alors voilà, j'ai 3 macros qui fonctionnent et 25 fichiers qui ont la même structure. Le tout dans un même répertoire.

J'applique ces 3 macros successivement à ces 25 fichiers et ceci de manière régulière.

Le code vba qu'il me faudrait aurait l'objectif suivant :

1/-Dans le répertoire en cours,
2/- Ouvre la macro 1 "Nom de la macro 1"
3/- Ouvre le fichier 1 "Nom du fichier 1"
4/- Applique la macro 1 au fichier 1
5/- Ferme le fichier 1
6/- Ouvre le fichier "Nom du fichier 2"
7/- Applique la macro 1 au fichier 2
8/- Ferme le fichier 2... jusqu'au 25me fichier.
9/- Ferme la macro 1

10/- Ouvre la macro 2 "Nom de la macro 2"
11/- Ouvre le fichier 1 "Nom du fichier 1"...

Merci de votre aide.
 

JBond13600

XLDnaute Junior
Oupssss, on avance, lol

Dans le code de Chti60 j'ai modifié le chemin d'accès et tout se passe bien jusqu'à la macro RécupEcartsMax Où il me met "Erreur de compilation" "Variable non définie" pour le "f" de mon For Each...

Sub RécupérerEcartsMax()

Application.ScreenUpdating = False

Cells.ClearContents

For Each f In Worksheets

If f.Name <> ActiveSheet.Name Then

f.Range("J1:J" & f.Range("J" & Rows.Count).End(xlUp).Row).Copy

Col = Cells(1, Columns.Count).End(xlToLeft).Column + 1

Cells(1, Col).Value = f.Name

Cells(2, Col).PasteSpecial xlPasteAll

Range(Cells(2, Col), Cells(Cells(Rows.Count, Col).End(xlUp).Row, Col)).Select

Range(Cells(2, Col), Cells(Cells(Rows.Count, Col).End(xlUp).Row, Col)).Sort _

key1:=Cells(2, Col), Order1:=xlDescending, Header:=xlNo

End If

Next f

Range("A1").Select

End Sub
 

ChTi160

XLDnaute Barbatruc
Re
personnellement
je n'ai travaille que sur la Macro :
CopieDonnéesBaseDansFeuilles
mais ce problème vient du fait que les variables doivent être déclarées et que le "f" ne l'est pas .
tu mets sous
VB:
Sub RécupérerEcartsMax()
Dim f As worksheet
et ça devrait rentrer dans l'ordre , si toutes les autres variables sont déclarées .
je regarde (Autres procédures) des que possible Lol
Bonne continuation
jean marie
 

JBond13600

XLDnaute Junior
Yooooooo CP4,

On y est presque je crois, tout se fait enfin avec ta macro.

Seul dernier Hic, elle continue de tourner indéfiniment. Impossible d'en sortir avec escap.

Il faut passer par gestionnaire de tâches et fermer excel.

Ceci étant, et après vérification, les fichiers ont néanmoins tous été traités comme prévu.
 

cp4

XLDnaute Barbatruc
Yooooooo CP4,

On y est presque je crois, tout se fait enfin avec ta macro.

Seul dernier Hic, elle continue de tourner indéfiniment. Impossible d'en sortir avec escap.

Il faut passer par gestionnaire de tâches et fermer excel.

Ceci étant, et après vérification, les fichiers ont néanmoins tous été traités comme prévu.
Vu le nombre de fichiers et de feuilles pas étonnant que ça mouline, ça mouline etc..
c'est ce que je t'avais dit tout au début.
étant donné que tu es sûr de ton coup, tu n'as d'autre choix que de patienter.
 

JBond13600

XLDnaute Junior
Je suis quelqu'un de très patient, lol
Mais là, j'ai fait un test avec 4 fichiers comportant chacun seulement 15 feuilles.

Si en arrêtant la procédure en cours, en passant par "gestionnaire des tâches", je m'apercevais que la procédure n'était pas terminée et que des traitements n'étaient toujours pas effectués, ce serait effectivement de l'impatience.

Or, je laisse suffisamment de temps me semble-t-il vu que je constate, après arrêt forcé de la procédure que tout ce qui devait être fait est fait.

J'ai donc fait 2 nouveaux tests :
Test 1 : J'ai envoyé ta macro générale et je l'ai stoppée (forcé) au bout de 3 mn.
Résultat : Tous les traitements ont été effectués sur les 4 fichiers testés comme c'était le but recherché depuis le départ de ce fil.
Test 2 : J'ai relancé la macro. Au bout de 15 mn, elle tourne encore alors que manifestement les traitements ont tous été effectués !

Il y a donc forcément un dernier détail à régler...

Qu'en penses-tu ?
 

ChTi160

XLDnaute Barbatruc
Re
Tu veux des résultats , mais tu ne réponds pas aux questions !
toi seul connais le fonctionnement de ce fichier et ce que tu veux en tirer
nous on ne fait qu'interpréter ,supposer etc ,pas évident donc !
voila ce que j'ai mis comme procédure pour : "RécupérerEcartsMax"
VB:
Option Explicit
Dim Ws_Cible As Worksheet
Dim f As Worksheet
Dim DerLgn As Integer
Dim Col As Byte
Sub RécupérerEcartsMax()
Dim DerLgn As Integer
Application.ScreenUpdating = False
Set Ws_Cible = ActiveSheet
With Ws_Cible
              .Cells.ClearContents
    For Each f In Worksheets 'Pour chaque feuille du Fichier  
      If f.Name <> .Name Then 'si nom de la feuille f différent de la feuille Cible
    DerLgn = f.Cells(f.Rows.Count, 10).End(xlUp).Row 'on récupérer la dernière ligne Non vide de la colonne J (10)
             f.Range(f.Cells(2, 10), f.Cells(DerLgn, 10)).Copy 'on copie les valeurs de la plage ainsi définie ligne
  
        Col = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1 'on détermine la dernière colonne Vide de la feuille Cible
                   .Cells(1, Col).Value = f.Name 'On colle le Nom de la feuille Source "f"
                   .Cells(2, Col).PasteSpecial xlPasteAll        'et a partir de la deuxième Ligne de cette Colonne les valeur récupérees
  
DerLgn = .Cells(.Rows.Count, Col).End(xlUp).Row 'on récupérer la dernière ligne Non vide de la Colonne "Col"
         With .Range(.Cells(1, Col), .Cells(DerLgn, Col)) 'avec la palge ainsi définie
                   .Sort Key1:=Cells(1, Col), Order1:=xlDescending, Header:=xlYes 'On trie
         End With
     End If
    Next f
              .Cells(1, 1).Select
End With
End Sub
re : Question combien de lignes (environ) dans les feuilles Base des fichiers "Combis"
Bonne fin de Journée
Jean marie
 
Dernière édition:

JBond13600

XLDnaute Junior
Allo CP4,

Je ne comprends pas ta réaction.
Je ne me cache de rien. Lorsque je cherche une macro je regarde d'abord si elle existe déjà sur les différents sites plutôt que de demander de l'aide. Et j'arrive déjà à en modifier certaines existantes pour les adapter à l'objectif que je souhaite atteindre. Il y a certaines bases que je commence à acquérir et des manipulations que je ne possède pas encore, mais j'avance avec les contributions déjà existantes et avec l'aide de ceux qui le veulent bien.
Et lorsque je ne parviens à aboutir ou que ma recherche n'obtiens pas de réponse satisfaisante, je vais effectivement rechercher ailleurs.
Par ailleurs si tu m'y a trouvé, c'est que tu y vas toi-même.
Quoi de condamnable ou contraire à quelque déontologie que ce soit ?
Par ailleurs, dans mon post de dimanche dernier à 12h34, j'ai expliqué tout le sens de ma démarche et ai fourni les fichiers macros et les fichiers traités de manière individuelle au fur et à mesure de la progression...
Je crois avoir aussi répondu à toutes les questions qui m'ont été posées.
Et je ne suis pas retourné sur l'autre site depuis que j'échange avec toi et Chti60 parce que j'avance et que vous me faites avancer.

Je ne vois donc pas où est le problème ?

Je ne t'en voudrais pas de ne pas poursuivre ton aide dans ma recherche et te remercie infiniment de ton investissement, quoi qu'il arrive et que tu puisses en penser.

Bien Cordialement à toi.

Th.
 

cp4

XLDnaute Barbatruc
Je suis tombé sur l'autre forum et effectuant des recherches sur le net (google) pour te venir en aide.
Tu n'as pas répondu à nos questions. Tu nous as débité un flot d'explications pratiquement inutiles.Voilà.

Tes fichiers n'ont pas la même structure et tu veux faire tourner tes macros. impossible, ça va planter.
J'ai revu un dernier truc, je te joins le fichier.
Bon courage pour la suite.
 
Dernière édition:

cp4

XLDnaute Barbatruc
Salut jean marie:)
Re
Alors , as tu mis la réponse à ma question ,sur un autre site ?
autre Question : Combien de feuilles Possibles par fichier "Combi" ?

jean marie
Bonsoir,
Perso, je n'ai pas tout compris. J'ai revu le code de l'ouverture des fichiers car apparemment il n'ouvrait pas tous les fichiers excel présents dans le même dossier. Cependant, le code plante dans ta procédure car la structure du fichier RécupérerEcartsMax.xlsm est différente.

Bon courage pour la suite. ci-joint dossier complet avec lequel j'ai effectué des tests.
 

Pièces jointes

  • JBond13600.zip
    1.4 MB · Affichages: 45

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum


Allo CP4,
Quoi de condamnable ou contraire à quelque déontologie que ce soit ?
Bien Cordialement à toi.
Th.
Voici pour répondre à ta question.
https://fr.wikipedia.org/wiki/Multipostage

NB: Pour les "vieux "internautes comme moi qui ont commencé à trainer leur guetres sur Usenet et les newsgroups, nous avons encore en mémoire ce qu'était la netiquette.
Mais c'est vrai que cela vient du XXième siècle.
 

Discussions similaires

Statistiques des forums

Discussions
312 194
Messages
2 086 064
Membres
103 110
dernier inscrit
Privé