Lier les données de plusieurs fichiers et les synthétiser ?

Je modifie cela dès demain.

Merci, bonne soirée.

Bonjour ( enfin bon, c'est vite dit. A chaque jour suffit sa peine parait-il...au moins, nous arrivons au week end, c'est déjà ça !)

Alors, pour nos affaires, cela ne s'arrange pas non plus puisqu' après la modification suggérée, un nouveau message d'erreur est apparu.

Message surligné par le débogueur pour désigner l'erreur :

If Month(.Range("C" & ln)) = nMois Then

Message d’erreur execution 13

J'ai essayé de comprendre d'où venait le problème, sans succès. Je me suis demandée si cela venait d'un changement de tableau en feuille 3, entre ce que j'avais suggéré ici en première page du topic et ce que j'ai réalisé au bureau (effectivement, je l'avais un peu changé). Mais même en le remettant tel que je l'avais fait ici, j'avais toujours le message d'erreur indiqué ci-dessus.

Voili voilà. J'en suis là.

Bonjour

On va y arriver.

Mais à un essai par jour, hors week-end et congés (Ah ces anges qui prennent des congés J'ai jamais vu ça !!) cela va être un peu long…

Tu écris :

Je me suis demandée si cela venait d'un changement de tableau en feuille 3, entre ce que j'avais suggéré ici en première page du topic et ce que j'ai réalisé au bureau (effectivement, je l'avais un peu changé.

Si ton tableau n’a plus la même structure que le mien, cela pose problème…

Voici le mien, issu de ton premier message :

capture

Comment est le tien ?

A te relire.

Bye !

Je sais que cela est fastidieux car avec peu de possibilités de modifications intermédiaires bien que je tente des choses de mon côté je t'assure, mais je ne m'y connais pas assez pour que cela donne des résultats. Si encore je pouvais y travailler chez moi mais je n'ai pas de licence Excel hors starter ni sur mon actuel ordinateur ni sur mon vieux tagazou que je garde en secours...ça ne facilite pas.

J'ai regardé les tarifs des licences, pour une utilisation occasionnelle ça ne m'intéresse pas d'investir d'autant que ce serait quand même différent de la version utilisée au bureau. Je donne déjà assez de ma personne au bureau (crois moi,les anges prennent du repos bien mérité!)

Pour en revenir à nos travaux j'avais songé à un nouveau tableau retravaillé pour le simplifier voire l'optimiser mais pour ne pas compromettre tes propres travaux j'ai remis celui que tu as posté et que j'avais initialement élaboré.

Bien.

Alors revenons au bug

Erreur 13 : je ne sais pas ce que c’est. Les autres numéros non plus d’ailleurs. Et cela ne m’avancerait guère de le savoir.

Dans la ligne qui bugue, il y a 2 variables ln et nMois.

On va déjà voir quelle valeur elles ont pris quand la macro arrive à cette instruction.

• Quand tu as le message d’erreur, tu cliques sur ‘’Débogage’’

• Tu séléctionnes la variable ln avec la souris, dans la ligne surlignée en jaune : elles se met en bleu

• Dans le menu, en haut de la feuille macro, tu cliques sur ‘’Débogage’’

• Tu choisis ‘’Ajouter un espion’’

• Une nouvelle fenêtre s’ouvre dans laquelle la variable ‘’ln’’est proposée

• Tu cliques sur ‘’OK’’

• Il y a maintenant une nouvelle ligne bleue en haut de ta feuille qui représente les propriétés de la variable ln, et en particulier sa valeur. Note cette valeur pour me la communiquer ?

Tu refais pareil avec ’’nMois’’ : quelle est sa valeur ?

Normalement, la valeur de ln est un nombre. Un numéro de ligne exactement.

On va alors voir quelle valeur a pris l’ensemble « Month(.Range("C" & ln)) »

Commence par sélectionner et copier, un peu plus haut dans la macro la

partie ‘’ Sheets("Dossiers arrivés") si le bug s’est produit dans la première partie de la macro.

Puis,comme précédemment, tu sélectionnes cette partie de l’instruction, depuis le M de Month jusqu’à la 2° parenthèse fermée.

Tu fais ‘’Débogage – Nouvel espion’’

Mais là dans la fenêtre qui s’ouvre en te proposant ce que tu viens de sélectionner, tu positionnes le curseur de la souris entre la parenthèse ouverte qui suit ‘’Month’’ et le point qui précède ‘’Range’’ et tu fais'' Coller''.

Tu dois obtenir :

Month(Sheets("Dossiers complets").Range("E" & ln))

Clique sur OK

Quelle est la valeur de cette expression ?

Allez bon courage, bon week-end et à lundi !

Un Ange Passe... a écrit :

J'ai regardé les tarifs des licences, pour une utilisation occasionnelle ça ne m'intéresse pas

Même à 7 € pour un mois ?

Reste à voir si on peut s'abonner pour un seul mois !

Mais si oui, on devrait en avoir assez pour mettre au point ta macro....

Bye !


capture

Pj

Bonsoir !! Alors, beaucoup de choses à écrire ce soir...

Présentement, j'ai suivi ton conseil en installant Office 2013 pour un mois (je n'avais pas vu cette option avant que tu ne l'indique ci-dessus !).

Par contre, ça change complètement en terme d'ergonomie , c'est même assez perturbant pour s'y retrouver (passer de la version 2003 à 2013, quel changement !).

Malgré cela, je n'ai pas ménagé mes efforts au bureau (et en attendant l'installation effective du pack office chez moi, ce qui s'est avéré long mais enfin terminé).

J'avais oublié la manipulation a réaliser (pour l'espion etc) donc j'ai tenté de réfléchir par moi-même et cela a porté (partiellement) ses fruits.

J'ai trouvé les anomalies bloquantes dans ta formule (mise à jour), pour moi, il y a confusion de cellules et c'est ENTIEREMENT de MA FAUTE. A ma courte honte, je n'avais pas conservé la même mise en page (fusion des noms et prénoms, du coup décalage des cellules).

J'ai donc réalisé les modifications d'usage et j'ai obtenu un résultat, pas optimal, et pas vraiment bon non plus, mais il y a malgré tout de l'amélioration (plus de message d'erreur et remplissage automatique de cellule dans mon tableau en feuille 3).

Voilà ma formule corrigée (je sais, la mise en page n'est pas bonne ci-dessous, pas de couleurs etc, mais ça donne une idée de ce que j'ai changé) :

Sub MiseAjour()

Range("B4:M" & Range("A" & Rows.Count).End(xlUp).Row).ClearContents

mois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")

For lgn = 4 To Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To 11

If Range("A" & lgn) = mois(i) Then

nMois = i + 1

Exit For

End If

Next i

With Sheets("Dossiers arrivés")

For ln = 2 To .Range("A" & Rows.Count).End(xlUp).Row

If Month(.Range("B" & ln)) = nMois Then

If .Range("C" & ln) = "renouvellement" Then

If .Range("D" & ln) = "Dom" Then

Range("H" & lgn) = Range("H" & lgn) + 1

Range("J" & lgn) = Range("J" & lgn) + 1

Else

Range("I" & lgn) = Range("I" & lgn) + 1

Range("J" & lgn) = Range("J" & lgn) + 1

End If

Else

If .Range("D" & ln) = "Dom" Then

Range("B" & lgn) = Range("B" & lgn) + 1

Range("D" & lgn) = Range("D" & lgn) + 1

Else

Range("C" & lgn) = Range("C" & lgn) + 1

Range("D" & lgn) = Range("D" & lgn) + 1

End If

End If

End If

Next ln

End With

With Sheets("Dossiers complets")

For ln = 2 To .Range("A" & Rows.Count).End(xlUp).Row

If Month(.Range("D" & ln)) = nMois Then

If .Range("B" & ln) = "renouvellement" Then

If .Range("C" & ln) = "Dom" Then

Range("K" & lgn) = Range("K" & lgn) + 1

Range("M" & lgn) = Range("M" & lgn) + 1

Else

Range("L" & lgn) = Range("L" & lgn) + 1

Range("M" & lgn) = Range("M" & lgn) + 1

End If

Else

If .Range("C" & ln) = "Dom" Then

Range("E" & lgn) = Range("E" & lgn) + 1

Range("G" & lgn) = Range("G" & lgn) + 1

Else

Range("F" & lgn) = Range("F" & lgn) + 1

Range("G" & lgn) = Range("G" & lgn) + 1

End If

End If

End If

Next ln

End With

Next lgn

End Sub

Mais les résultats obtenus en automatiques sont erronés. Il doit encore y avoir un souci. Je vais tester tout ça de suite, maintenant que je peux (juste le temps de trouver mes marques sur ce nouvel environnement excel !)

Edit après divers tests :

Bon, c'est plus compliqué avec cette version d'excel car je connais moins que la 2003.

Du coup, j'ai refait les tableaux, je suis parvenue à faire la macro d'importation (mais avec un souci quand même puisque ça duplique les informations des dossiers complets à chaque fois que je clique sur le bouton lié à la macro d'importations). Quant à la mise à jour, ici, ça ne fonctionne pas du tout donc j'ai sans doute raté quelque chose. Je fatigue, donc je reprendrais demain si je le peux.

Alors, à domicile, je viens d'entreprendre une nouvelle tentative en reprenant tout depuis le début.

J'ai supprimé mon tableau récap et je l'ai recréée , histoire de partir sur un fichier vierge.

J'ai reproduit la macro de base (pour l'importation des données), plus de souci de doublon même après plusieurs appuis sur le bouton dédié à cette macro.

Ensuite, j'ai intégré la macro de mise à jour, en faisant les mêmes modifications que celles que j'avais listé. Je suis parvenue a solutionner les problèmes rencontrés mais, là encore, je constate un souci.

Il semble que la macro de statistique ne tienne compte que des dossiers "MR", aucun report pour les "Dom" et, en outre, la somme des "MR" n'est pas correcte.

Je poursuis mes efforts. Cela avance...doucement, mais sûrement !

Edit de 20:42 :

J'avais interverti deux cellules dans ma macro, d'où la confusion. A présent, les "Dom" sont bien comptabilisés. Néanmoins, les totaux ne sont pas corrects.

Bonjour

Super ! on progresse !

Et puisque maintenant tu peux travailler sur Excel 2014 (j'ai 2013) on va pouvoir parler et échanger des fichiers complets.

Tu me dis avoir des problèmes avec les MR et les Dom...

Peux-tu m'envoyer le fichier sur lequel tu as ce problème ?

S'il est trop gros, passe par www.cjoint.com

A te relire

Bye !

Alors, j'ai résolu une partie du problème, en intervertissant des cellules, j'avais bêtement repris une formule erronée en lieu et place de la dernière mouture ! Quel benêt je fais parfois.

Maintenant, je ne sais pas pourquoi les totaux ne sont pas bons (du fait notamment que certains mois ne sont pas repris (janvier notamment) tandis qu'un résultat est trouvé en bas du tableau alors que j'ai créee cette zone pour faire un total global annuel...!

Comme demandé, voilà le fichier concerné, ce qui sera plus parlant que mon explication quelque peu décousue...!

19recap.xlsm (25.35 Ko)

Bonjour

Tu écris :

je ne sais pas pourquoi les totaux ne sont pas bons (du fait notamment que certains mois ne sont pas repris (janvier notamment)

Eh bien, j'ai trouvé : c'est une erreur de ma part. En allant de 1 à 11, la variable i prend les valeurs de février (i+1) à décembre (i+11). Et janvier est laissé de côté....

Il faut donc corriger la macro :

[Range("B4:M" & Range("A" & Rows.Count).End(xlUp).Row).ClearContents
    mois = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre")
    For lgn = 4 To Range("A" & Rows.Count).End(xlUp).Row
        For i = 0 To11[/code°http://cjoint.com/?3Lrl6a8EU7D 

Une autre remarque : la macro ne tient pas compte de l'année : toutes les données sont cencées être de la même année. Si ce n'est pas le cas, il faudra modifier la macro pour qu'elle sache de quelle année sont les données qu'elle doit prendre..

Une dernière remarque, pour excuser mes retards de réponses. J'ai des problèmes avec mon PC qui s'est soudainement fâché avec internet. J'ai dû remettre en route mon vieux "Tagazou" (c'est comme ça que tu dis ?) qui tourne sur Windows XP et Excel 2003.

Il marche encore mais alors, qu'est-ce qu'il rame !

Bye !

Oh la la, pas de souci pour les retards de réponse, c'est déjà tellement gentil de le faire que je ne vais certainement pas me plaindre de quoi que ce soit (j'avais juste peur que tu ne sois tombé malade) ! Ce système d'entraide est vraiment incroyable.

En tout cas, c'est vrai que nos vieux "tagazous" dépannent bien, même s'ils rament effectivement !

Quoiqu'il en soit, j'ai pensé à la même chose que toi quant au fait que les mois étaient décalés ou non pris en charge, et dans la macro j'ai vu que les mois étaient repris via le "i" de 1 à 11, du coup j'ai de moi même réalisé cette modification à tout hasard...

..et ça fonctionne ! Cela a pris du temps, ça s'est fait parfois dans la douleur, mais ça y est, les deux macros combinées fonctionnent parfaitement ! Bon, je continuerai à tester en ajoutant ou retirant des données dans mes fichiers sources, pour m'en assurer quand même, mais de ce que j'en ai déjà vu, ça prend bien en compte les ajouts de données !

Juste une dernière question : pas de possibilité d'obtenir des résultats automatiquement (sans passer par le bouton de MAJ) mis à jour via une "application.Volatile" ? je sais que j'ai déjà utilisé une formule de la sorte dans un précédent tableau, mais je ne sais pas si ça peut se reproduire par ailleurs...

Enfin, c'est déjà très bien en l'état et comme je te dois cette victoire, je ne peux que te dire un GRAND MERCI !! J'ai failli sauter de joie au bureau en voyant que ça tournait bien ! Je suis vraiment contente de voir ce projet aboutir !

Quant à toi, imagine, enfin libéré du lourd poids de l' Ange qui Passe en faisant pleins d'erreurs dans les macros !

Bon, si vraiment tu es masochiste... j'ai d'autres projets de macro à débuter (d'autant que maintenant j'ai payé pour un abonnement d'un mois à excel, autant que je m'en serve ^^), alors si le coeur t'en dit et que tu as du temps à perdre (et des cheveux à t'arracher), fais-moi signe !

Pour l'heure, et en l'état, le résultat étant conforme à ma demande initiale, je vais pouvoir mettre ce sujet en "résolu", et cela grâce à tes talents. Encore merci !

Bonjour

Wouha ! On y est donc enfin arrivé !

La prochaine fois que je bois du champagne, (c’est pour bientôt) je penserai à l’Ange qui passe !

mis à jour via une "application.Volatile" ?

Si je ne me trompe pas, une fonction « volatile » est une fonction que l’on définit avec une macro et dont on se sert comme une fonction de feuille de calcul.

Dans le cas présent, je ne vois pas trop à quoi cela pourrait servir.

si vraiment tu es masochiste

Ah, mais pas du tout ! Qu’est-ce qui a bien pu te faire penser ça ? Parce que je me suis donné un peu de mal à aider un ange ? C’est une occasion qui n’est pas si fréquente…

Si le coeur t'en dit …. fais-moi signe !

Et bien voilà : coucou !

A te relire.

Bye !

Champagne oui !

Pour l'application Volatile, c'est bon à savoir ! Il est vrai que le tableau auquel je me réfère contient des formules de calcul (avec colorisation de cellules etc).

J'ai pris acte de ton signe pour poursuivre notre aventure informatique ensemble , avec des hauts et des bas (voire débats), des découragements et, parfois, des bonnes surprises qui mettent le coeur en joie !

Alors, la prochaine mission si tu l'acceptes, c'est sur un principe similaire, mais avec une petite différence malgré tout. Je m'explique :

4 fichiers similaires pour 4 agents. Des chiffres saisis chaque mois dans un tableau situé sur la 1ère page dudit tableau. Il me faut - sur un 5ème fichier (voire sur une nouvelle page du fichier "récap" de nos tests précédents ce serait optimal) - cumuler les résultats des 4 fichiers.

Comme un exemple vaut mieux que des paroles, en pièce jointe un tableau type (Source Com1 idem jusqu'à Source Com4).

Et en guise de récapitulatif, le " tableau commun Com" que je souhaiterai plutôt ajouter à notre fichier "récap", uniquement si un ajout de macro ne ruine pas notre précédent travail !

Dans ce dernier tableau, on ne retrouvera que les résultats (en cumul) des chiffres renseignés dans les fichiers Source.

Dis-moi si cela te paraît jouable et si l'aventure te tente toujours !

Un Ange Passe... a écrit :

Dis-moi si cela te paraît jouable

C'est jouable ; voici un essai :

34recap-v2.xlsm (31.49 Ko)
23source-com1.zip (11.85 Ko)
25source-com2.zip (11.86 Ko)
23source-com3.zip (11.87 Ko)
22source-com4.zip (11.86 Ko)

Tu sais maintenant adapter la macro pour qu'elle sache où aller chercher les dossiers source.

Pour l'exemple, je les ai tous mis dans le même, y compris le récap.

Bye !

Je teste tout cela et je te redis ce qu'il en est, mais pour l'heure, ton exemple me convient parfaitement !

Tu es vraiment très doué !

A ce soir pour le compte-rendu.

Résultat : ça fonctionne parfaitement ! même pas de problème, pas d'erreur, du premier coup, si c'est pas beau ça ?!

Encore merci pour tout !

Bravo !

mais.... dommage aussi !

Mon Ange ne passera plus....

J'en suis triste ...

Snif !

Ne sois pas triste...grâce à toi j'ai pris confiance en moi et...il y a quelques minutes, j'ai répondu à un autre sujet du forum pour aider quelqu'un, c'est une grande fierté pour moi (enfin, l'utilisateur doit encore tester ma formule pour voir si elle fonctionne pour lui), mais c'est déjà une grande avancé !

Et puis, qui sais, j'aurai peut-être besoin de nouveaux tableaux à l'avenir !

J'ai encore besoin d'un bon professeur car , pour être honnête, j'avais tenté de trouver un module par moi-même hier soir, pour notre dernier travail, mais j'étais bien à côté de la plaque...car ça n'avait rien à voir avec la formule que tu m'as donné !

Alors, si tu as l'envie de donner des cours en plus de ceux donné par le site, je suis l'élève rêvée (ou pas d'ailleurs ^^) !

Bonne soirée et, par avance, bonnes fêtes de fin d'année !

Rechercher des sujets similaires à "lier donnees fichiers synthetiser"