Afficher les résultats d'un tableau dans un autre

Bonjour, Voila je cherche une méthode pour afficher les résultats du tableau dans la feuille 2 au tableau du feuille 1, mais je veux que le tableau fais des calcules et affiche seulement la dernières résultats.

Bonjour Bob, bonjour le forum,

C'est le troisième post auquel je réponds la même chose. Explications pas assez claires avec un exemple qui n'aide en rien à la compréhension !...

bonjour

sans conviction et sur la meme feuille pour voir

cordialement

Bonjour tulipe_4,

merci beaucoup pour votre aide,

ce que je cherche exactement c'est afficher la dernière résultats de chaque PR pour chaque agents ?

et s'il est possible afficher la date dans chaque cellules (option non obligatoire).

et merci d'avance.

Salut tulipe_4 ,

tu peux me donner une explication sur la formule que tu as utiliser pour l'adapter dans un autre fichier et merci

Re,

Je suis vert de l'absence de conviction de Tulipe !. Imagine s'il en avait eu !...

Pour ma part, trop nul en formule pour envisager une solution. Il te faut modifier ton code couleur car tu t'es planté. Inversion de l'orange et du jaune...

Je te propose le code VBA ci-dessous :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL(1 To 3) As Range 'déclare le tableau de 3 variables (PLages)
Dim PLR As Range 'déclare la variable PLR (PLage des Résultats)
Dim A As Byte 'déclare la variable A (Agent)
Dim PR As Byte 'déclare la variable PR
Dim COL As Integer 'déclare la variable COL (COLonne)

Set O = Worksheets("Feuil2") 'définit l'onglet O
Set PL(1) = O.Range("B3:F8") 'définit la plage PL(1)
Set PL(2) = PL(1).Offset(0, 7) 'définit la plage PL(2)
Set PL(3) = PL(2).Offset(0, 7) 'définit la plage PL(3)
Set PLR = O.Range("B14:F16") 'définit la plage PLR
For A = 1 To 3 'boucle 1 : sur les 3 lignes des agents
    For PR = 1 To 5 'boucle 2 : sur les 5 lignes des PR
        For COL = 5 To 1 Step -1 'boucle inversée 3 : sur les 5 colonnes des dates en partant de la dernière
            If PL(A).Cells(PR + 1, COL).Value <> "" Then 'condition : si la valeur de la cellule en ligne PR, colonne COL de la plage PL(A) n'est pas vide
                PLR(A, PR) = PL(A).Cells(1, COL) 'renvoie dans la cellule ligne A colonne PR de la plage PLR la date correspondante
                PLR(A, PR).Interior.Color = PL(A).Cells(PR + 1, COL).DisplayFormat.Interior.Color 'récupère la couleur de la MFC
                PLR(A, PR).NumberFormat = "dd/mm/yyyy" 'formate la date
                Exit For 'sort de la boucle 3
            End If 'fin de la condition
        Next COL 'prochaine colonne de la boucle 3
    Next PR 'prochaine ligne de la boucle 2
Next A 'prochaine ligne de la boucle 3
End Sub

ThauThème,

et si les tableaux des agents ne se trouvent pas dans le même fichier, qu'est ce que je doit changé exactement ?

2agent-3.xlsx (8.66 Ko)
2agent-2.xlsx (8.67 Ko)
2agent-1.xlsx (8.67 Ko)

bonjour

voila ;les explications

cordialement

Salut tulipe_4,

est ce qu'on peux appliquer cette méthode si les tableaux des agents ce trouvent dans un autre fichier ?

comme-ça :

1agent-3.xlsx (8.66 Ko)
1agent-2.xlsx (8.67 Ko)
1agent-1.xlsx (8.67 Ko)

Re,

et si les tableaux des agents ne se trouvent pas dans le même fichier, qu'est ce que je doit changé exactement ?

Et si tu l'avais dit au départ ?!... Tu donnes deux exemples, deux exemples différents, et chaque fois c'est à nous d'adapter la solution. Ça sera quoi la prochaine requête ?!...

Re,

Et si tu l'avais dit au départ ?!... Tu donnes deux exemples, deux exemples différents, et chaque fois c'est à nous d'adapter la solution. Ça sera quoi la prochaine requête ?!...

Je suis très désolé,est par ce que je peux pas poser les fichiers de mon travail, et en même temps je veux compris la solution, je veux pas faire du copier coller.

Je suis désolé encore une fois

Bonjour,

Où se trouvent les fichier des Agents ? Dans le même dossier que le fichier exemple plan veille.xlsx ?

Sinon il me faut les chemins d'accès de chacun d'entre eux.

Bonjour,

Oui dans le même dossier

Et s’il y a une méthode pour lancer le Macro automatiquement a chaque fois il y a un changement dans les fichiers “Agents” sans besoin du bouton “actualiser”

Re,

Je ne comprends rien... Ton dernier fichier exemple plan vierge.xlsx est vide... Je ne peux pas te proposer un code si je n'ai pas les données.

Le fichier "exemple plan veille.xlsm" contient le tableau où je veux afficher les résultats des tableaux des PR pour chaque agents

j'ai juste déplacer les tableaux de chaque agents vers les fichier "agant 1.xlsx ..."

2agent-3.xlsx (8.66 Ko)
2agent-2.xlsx (8.67 Ko)
2agent-1.xlsx (8.67 Ko)

Re,

Ok, dès que j'ai un moment je m'y penche dessus...

D'accord .. je vous attend

Re,

Comme tu as demandé que la macro se fasse automatiquement sans bouton Actualiser, j'ai créé dans chaque fichier Agent une macro événementielle Change qui réagit quand on efface, édite ou modifie une cellule de la plage B4:F8. Par ce fait, tous les fichiers Agent (fichiers source) sont devenus des fichiers .xlsm puisqu'il contiennent désormais une macro. En revanche le fichier exemple plan veille (fichier destination) est devenu .xlsx puisqu'il n'a plus de macro.

Le code ouvre automatiquement le fichier destination (exemple plan veille.xlsx) s'il n'est pas déjà ouvert.

Cela signifie qui si tu renommes ce fichier il faudra rectifier le code événementiel Change dans chacun des fichiers Agent. Celui-ci se trouve dans le composant VBA Feuil1 (Feul1). Il y aura deux lignes à modifier, remplacer exemple plan vieille.xlsx par le nouveau nom que tu auras donné (avec son extension). Sinon tu n'as rien à faire.

Le système fonctionnera si tous les fichiers sont dans le même dossier et si le tableau du classeur destination commence, comme dans l'exemple, en A13...

5agent-1.xlsm (19.18 Ko)
4agent-2.xlsm (17.93 Ko)
4agent-3.xlsm (17.97 Ko)

Bonsoir ThauThème,

Merci beaucoup .. ça marche très bien

merci encore une fois

Rechercher des sujets similaires à "afficher resultats tableau"