Somme valeurs associes/ category

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

Encore moi ... :eek:

Désolée Alan, pas tout compris et besoin de tes lumières....

Je pensais que tu voulais deux fichiers séparés, données d'un coté et récap de l'autre, pour avoir un truc plus léger ou autre.
Mais quand tu dis que c'est parce que tes données de base ne sont accessibles que de temps en temps et que ça te permettrait de travailler en attendant....
Si tu n'as pas de nouvelle mise à jour, tu sauvegardes ton fichier le jour J jusqu'à la prochaine mise à jour et puis voilà tu l'as sous la main en attendant.
Ou alors, tu as besoin d'une macro qui importe directement tes données brutes d'un fichier x dans le fichier actuel?

Ici dans ce fil on a essayé de traiter la phase 2 à savoir l'exploitation des données brutes, une fois déposées dans les onglets, pour faire des tableaux d'analyse.
Ton problème maintenant est-il de traiter la phase 1 à savoir l'importation des données brutes dans le fichier ?

Je n'ai pas regardé mais je pensais que c'était le point traité par cbea; du coup je ne sais plus quoi faire là ...

Help Alan ...
 

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

Re Mireille,

L'idee est comme tu le dis d'etre plus clair et d'avoir 2 fichiers separes pour appeler directement les donnees qui viendraient se ranger dans la feuille rapport.
Je pourrais copier tous les onglets dans mon fichier rapport mais j'aimerai un seul fichier pour tous les resultats...comme tu l'as dit cbea m'a fait un essai quand ma structure n'etait encore qu'au debut (en colonnes)...Je vais essayer d'adapter la macro mais la structure etait completement differente ce qui pose difficultes...
JC me disait qu'avec une legere modif de sa macro, on pourrait arriver au resultat...ca serait plus pratique...mais bon, je ne veux pas pousser le vice jusqu'au bout, ne vous prenez pas trop la tete avec ca...
A +
 

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

Hello Alan :)

Tu trouveras ci-joint un petit essai avec un fichier base d'un coté ne contenant que tes données, et le fichier résultat de l'autre avec juste 2 onglets.
Il faut déposer les deux fichiers dans le même répertoire, puis tu ouvres seulement le fichier de résultat et tu lances la macro.
Ca a l'air de fonctionner chez moi, tu me diras s'il en est de même de ton coté et si c'est ce que tu voulais ?
@ +

Mireille
 

Fichiers joints

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

Re Mireille,

C parfait, c exactement ce que je voulais...et ca a l'air de fonctionner! je vais essayer sur ma grosse base de donnees mais je me bats deja sur l'application de ma grosse base de donnees a la macro precedente a cet instant...je suis sur que ca doit etre qu'un chiffre en trop ou moins qui doit foutre en l'air la compilation...
 

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

re :)


euh... , c'est quoi la "macro précédente" dont tu parles ?
 

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

Re Mireille,

Peut tu me dire si avec cette base de donnees tres simple, tu arrives a appliquer cette macro...ou quel est le loup qui se cache dans la formule?
Le fichier de rapport est trop grand alors j'ai pense que tu pouvais peut etre faire un copier colle de la macro dans ton propre repertoire...en fait j'ai mon probleme de Type loss#1,2 qui refait son apparition...ca doit seulement etre un chiffre ou une lettre mais je ne vois pas...

Sub Alan()
Dim Feuille As Worksheet
Dim T
T = Timer()
Dim chemin As String
chemin = ActiveWorkbook.Path & "\"
Dim Fichier
Fichier = ActiveWorkbook.Name
Dim FicBase
FicBase = "Base Alan.xls"



Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Sheets("TMP").Range("K1").Value = Sheets("TMP").Range("K1").Value + 1

'Effacement
Sheets("TMP").Select
Range("A3:H5000").ClearContents

Workbooks.Open chemin & FicBase

'Boucle pour chaque onglet sauf TMP et Rapport
'Sélectionne les données à copier et les placent les unes en dessous des autres dans l'onglet TMP
'La ligne date d'un coté et les données de l'autre, à cause du blanc qui crée un décalage...
'Mets des x pour remplir les éventuels vides sur les deux 1ères colonnes

Windows(FicBase).Activate


For Each Feuille In ActiveWorkbook.Worksheets

Feuille.Range("A3:H3").Copy
Windows(Fichier).Activate
With Sheets("TMP")
.Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
.Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
.Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
.Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
Feuille.Range("A28:H31").Copy
.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
Feuille.Range("A32:H35").Copy
.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
Feuille.Range("A36:H39").Copy
.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
Feuille.Range("A40:H43").Copy
.Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues, SkipBlanks:=False, Transpose:=True
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveCell.Formula = "x"
ActiveCell.Offset(0, 1).Formula = "x"
End With

Windows(FicBase).Activate
Next Feuille

'Ferme le fichier Base
Windows(FicBase).Activate
ActiveWorkbook.Close


' Se place sur la dernière ligne de l'onglet TMP
Windows(Fichier).Activate

Sheets("Tmp").Range("A65536").End(xlUp).Select
'Supprime les lignes inutiles de libellés et x en remontant ligne par ligne
Do While ActiveCell.Row > 2
If ActiveCell.Value = "" Or ActiveCell.Value = "x" Then
ActiveCell.EntireRow.Delete Shift:=xlUp
End If
Selection.Offset(-1, 0).Select
Loop
' copie les formules Trimestre mois semaine
Range("F1:H1").Copy
Range("F3:h2000").PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:= _
False
Range("A1").Select

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
'Actualise le(s) tableau(x) croisé(s) dynamique(s)
ActiveWorkbook.Names.Add Name:="Date", RefersToR1C1:="=TMP!R3C1:R2000C1"
ActiveWorkbook.Names.Add Name:="Description", RefersToR1C1:="=TMP!R3C4:R2000C4"
ActiveWorkbook.Names.Add Name:="Loss", RefersToR1C1:="=TMP!R3C5:R2000C5"
ActiveWorkbook.Names.Add Name:="SubCategory", RefersToR1C1:="=TMP!R3C3:R2000C3"
ActiveWorkbook.Names.Add Name:="TypeLoss", RefersToR1C1:="=TMP!R3C2:R2000C2"
ActiveWorkbook.Names.Add Name:="BaseTCD", RefersToR1C1:="=OFFSET(TMP!R2C1:R2000C8,,,COUNTA(TMP!R2C1:R2000C1))"
Call TCD
ActiveWorkbook.RefreshAll
Sheets("Rapport").Select
Range("S5").FormulaArray = _
"=INDEX(TMP!C2,MIN(IF(TMP!R3C2:R2000C2<>"""",IF(COUNTIF(R4C:R[-1]C,TMP!R3C2:R2000C2)=0,ROW(TMP!R3C2:R2000C2)))))&"""""
Range("S5:S34").FillDown
Range("V5").FormulaArray = _
"=INDEX(TMP!C3,MIN(IF(TMP!R3C3:R2000C3<>"""",IF(COUNTIF(R4C:R[-1]C,TMP!R3C3:R2000C3)=0,ROW(TMP!R3C3:R2000C3)))))&"""""
Range("V5:V34").FillDown
Range("Y5").FormulaArray = _
"=INDEX(TMP!C4,MIN(IF(TMP!R3C4:R2000C4<>"""",IF(COUNTIF(R4C:R[-1]C,TMP!R3C4:R2000C4)=0,ROW(TMP!R3C4:R2000C4)))))&"""""
Range("Y5:Y34").FillDown
Range("N2").Select

MsgBox "Extraction réalisée en " & Format(Timer() - T, 0) & " secondes", , "Mth et JCGL pour Alan ;-)"
End Sub

Merci de la tester et encore desole...
 

Fichiers joints

JCGL

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

Bonjour à tous,
Salut Mireille,
Salut Alan,

Sur tes premiers fichiers Export, les dates étaient en ligne 2, elles se retrouvent en ligne 3...

Peux-tu déposer un fichier de trois onglets avec ton export TEL QU'IL EST...

A++
 

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

re-

Je viens de tester de mon coté, non pas avec la macro écrite dans ton post mais avec le fichier Alan-reconst-v6.xls du dernier post (ça ressemble mais c'était plus simple pour moi)
et j'ai essayé avec ta dernière base Base Alan1.xls

Ca fonctionne, mais ....

1: il faut que le fichier s'appelle exactement "Base Alan.xls" si non il faut changer le nom dans la macro
2: la macro TCD plante chez moi mais d'après ce que j'ai compris, il semblerait que ce soit à cause de ma version excel,, ça marche sans doute de ton coté.

Si non tout baigne :)

Qu'est-ce qui plante chez toi ?
 

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

gloups ....

Bisou JC,

J'ai juste testé si la macro plantait ou pas, pas regardé le reste...., je n'avais pas pensé qu'Alan nous ferait une blague en bougeant les lignes ... sourire ...
Désolée JC , pas fiable ta collaboratrice ...
@ +

M
 

BrunoM45

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

Salut tout le monde,

Ben la vache quel fil ...
mth quel courage :p

Dis Alan (Alias M. PLUS), dans le pétrole ils n'ont pas le moyen de vous payer un log. qui fait tout ce que tu voudrais !?

Alors là, j'en reviens pas, on doit pas payer encore assez cher :D
 

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

Le fait est que, comme je ne comprenais pas tout a la macro, je voulais faire un essai avec les dates en ligne 3 et mon Typeloss#1 en ligne 28 pour ne pas l'appliquer betement comme ca sans tout comprendre...
Au moins je pourrai faire la comparaison et mieux comprendre ensuite...
Voila mon fichier export de 3 onglets...
Vous allez pouvoir me decerner le prix du plus chiant de tous....
Merci et desole...
 

Fichiers joints

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

re-


ah bon? c'était juste pour jouer alors ? ... sourire ...

Bon, dans la macro, essaie de remplacer les deux lignes suivantes:

For each feuille gnagnagna
Feuille.Range(A2:H2)
par Feuille.Range(A3:H3)

et également dans la partie "supprimer les lignes inutiles":
If ActiveCell.Value = "Date" Or ActiveCell.Value = "x" Then
par If ActiveCell.Value = "" Or ActiveCell.Value = "x" Then

Ca semble marcher chez moi comme ça ...

Bien à toi,

M
 

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

Re Mireille,

Ca c bon j'avais vu mais si dans le meme temps mon TypeLoss#1 arrive en ligne 28 au lieu de 29?
J'ai change, en plus de ce que tu m'a dit:
Feuille.Range("A29:H31").Copy en
Feuille.Range("A28:H31").Copy et ainsi de suite...
Mais je voulais savoir quelle autre ligne est aussi indispensable a changer? si je ne change que ca, il me renvoie les Typeloss#1,2...dans ma feuille TMP...donc qqchose d'autre agit a ce point la...
 
Dernière édition:

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

Exact Alan, tu as raison, désolée de mon étourderie ...

As-tu aussi changé les lignes suivantes en A32:H35; A36:H39 etc ... ?
 

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

oui bien sur...je cherche justement l'extra ligne que je ne vois pas...j'ai beau changer pas mal de choses a cote, je ne vois pas...
 

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

De mon coté j'ai refait tourner l'ensemble et ça marche, impossible de reproduire l'erreur....

Si tu veux de ton coté tu peux essayer de:

1: mettre le signe ' devant la ligne Application.ScreenUpdating = False
2: mettre des points d'arrêt dans la macro

Ca te permettra peut-être de voir à quel endroit ça dérape...

Si non, ben renvoie nous le fichier sur lequel tu travailles et on regardera

@+

M
 

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

Salut Mireille,

Si en prenant mon dernier Base Alan du message #91 et en effectuant seulement les transformations que tu m'as dites, je suis etonne que tu n'ai pas d'erreur..:confused:
Mon message d'erreur vient plus du TDC qui ne peut pas se creer car les dates sont perturbees (ce qui est normal) mais pas d'erreur dans mon fichier TMP, comme j'aurais pu vouloir ca!
Peux tu me renvoyer ton fichier pour que je fasse un essai si ca te derange pas?...mon fichier de resultat est trop important...
merci
 

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

Bonjour Alan

Je viens de lire ton message et de regarder les fichiers, mais en fait si ça tourne j'ai quand même un décalage d'une ligne à un moment donné à cause d'un blanc dans une cellule du fichier Base Alan
J'ai tenté vite fait un truc mais je me mélange les crayons dans les offset :eek:
Je reviens vers toi dans la soirée, avec, je l'espère une solution.

A plus tard,

Mireille
 

mth

XLDnaute Barbatruc
Re : Somme valeurs associes/ category

Re :)

Voici une nouvelle version qui je l'espère te conviendra

A plus tard Alan,

M
 

Fichiers joints

alan

XLDnaute Occasionnel
Re : Somme valeurs associes/ category

Re Mireille,

J'ai clique febrilement une derniere fois sur le nouveau bouton en appliquant ma base de donnees et....CA MARCHE!! Tout est impeccable...
Je crois qu'il est plus que temps de cloturer ce post qui je crois commencait a trainer en longueur...
Un grand merci a toi Mireille pour ta patience et ton courage...vraiment tres gentille! Tu m'as vraiment resolu un gros probleme...
Un grand merci aussi a JC qui a fait un boulot enorme meme quand j'en rajoutais une couche...
Merci a vous deux pour cette superbe collaboration! je vous souhaite bon courage et pourquoi pas au detour d'un autre fil....
Ciao
 

Discussions similaires


Haut Bas