Ecrire dans un autre fichier Excel apres récup données

Bonjour à tous,

j'ai besoin d'exporter des données de ma base excel (fichier base) pour générer une sorte de rapport d'activité. (fichier rapport)

j'arrive à ouvrir et à écrire dans un autre fichier mais données par données

avec par exemple

Workbooks(Fichier).Worksheets("Feuil1").Range("A7") = "Test"

ceci étant dit j'aimerais désormais savoir comment procéder afin de résoudre deux problèmes

1) les données en question sont contenues dans le tableau projects mais les lignes qui m’intéressent (contenant Active) ne sont pas à la suite et j'ai donc tenter la méthode dico mais cela ne me récupère pas toutes les lignes (je me suis certainement planter dans le codage)...

et j'ai pensé aussi à la méthode auto filter mais je ne souhaite pas copier l'intégralité des lignes mais certains champs seulement aussi comment procéder svp?

2) il me faudrait exporter certaines données dans le fichier appelé rapport

mais comment procéder afin que je n'ai pas à mettre donnée par donnée dans ce style

Workbooks(Fichier).Worksheets("Feuil1").Range("A7") = blblba

est il d'ailleurs possible d'exporter les données sous forme de Listbox mais dans le fichier des destination?

j'ai tenté un truc du genre mais cela ne fonctionnait pas...

Workbooks(Fichier).Worksheets("Feuil1").List_Active_Projects.Column = Tbl

j'ai mis un fichier de démo pour illustrer mon soucis

merci à vous par avance pour l'aide que vous pourrez m'apporter

bonne journée

4base.xlsm (26.81 Ko)
3rapport.xlsm (9.80 Ko)

Bonjour,

ci-jointe une proposition

7rapport.xlsm (9.78 Ko)
10base1.xlsm (34.34 Ko)

Bonjour,

grand merci à vous.

cette proposition est parfaitement fonctionnelle et répond très bien à mes attentes

je vais désormais éplucher tout cela pour comprendre le fonctionnement et le rendu afin de l'adapter si besoin.

Je vous confirme que j'ai pu adapter les colonnes à mes besoins, encore merci à vous.

Cependant Thev, j'ai juste une question supplémentaire à vous poser

est il possible de ne pas afficher certains statuts:

Dans mon cas les statuts 'closed' ne sont pas à reporter

Si oui comment procéder svp?

Merci à vous et bonne soirée

est il possible de ne pas afficher certains statuts:

Dans mon cas les statuts 'closed' ne sont pas à reporter

Une première solution est d'effectuer un filtrage sur la feuille Projects et de modifier le code ainsi

            If .DataBodyRange.Rows(i).EntireRow.Hidden = False Then
                If Not dic_statuts.exists(statut) Then Set dic_statuts(statut) = CreateObject("Scripting.Dictionary")
                Set dic_projects = dic_statuts(statut)
                dic_projects(id_projet) = Array(statut, PI_interne, début, fin, commentaire)
                Set dic_statuts(statut) = dic_projects
            End If

une deuxième solution est de modifier le code ainsi

            If statut <> "Closed" Then
                If Not dic_statuts.exists(statut) Then Set dic_statuts(statut) = CreateObject("Scripting.Dictionary")
                Set dic_projects = dic_statuts(statut)
                dic_projects(id_projet) = Array(statut, PI_interne, début, fin, commentaire)
                Set dic_statuts(statut) = dic_projects
            End If

La première a l'avantage d'être paramétrable sans modification de code pour ne pas prendre en compte certains statuts.

merci pour ces deux options

Encore une fois vous me dépannez bien, aussi grand merci!

Bonne soirée à vous

Bonjour Thev,

Désolé de devoir revenir vers vous mais j'ai de nouveau besoin de votre assistance afin de pouvoir compléter le document généré

En effet j'ai besoin de savoir comment récupérer l'id de chaque projet afin d'aller chercher des infos complémentaires dans un autre onglet

je comprends que DataBodyRange.Rows(i). renvoi la ligne mais pas trop dic_projects(id_projet)

comment puis je simplement récupérer id_projet afin de pouvoir ensuite faire une recherche lors du

 For Each clé In dic_statuts

et ensuite afficher le résultat de la recherche sur chaque ligne correspondante?

lors du .

Range("A4").Offset(i).Resize(dic_projects.Count, 6) = Application.Transpose(Application.Transpose(dic_projects.Items))

la recherche se faisant via:

Project_Range = Application.Match(Id_Project, Worksheets("Investigators").Range("A:A"), 0)
Investigator_firstname = Worksheets("Investigators").Range("A:G")(Project_Range, 3)
Investigator_name = Worksheets("Investigators").Range("A:G")(Project_Range, 4)

Merci par avance

bon weekend par avance

comment puis je simplement récupérer id_projet afin de pouvoir ensuite faire une recherche lors du

For Each clé In dic_statuts

et ensuite afficher le résultat de la recherche sur chaque ligne correspondante?

lors du .

Range("A4").Offset(i).Resize(dic_projects.Count, 6) = Application.Transpose(Application.Transpose(dic_projects.Items))

Tout simplement en intégrant votre recherche dans le remplissage du dictionnaire et en y ajoutant vos deux nouveaux éléments : Investigator_firstname et Investigator_name

et en passant l'affichage du résultat à 7 colonnes

Range("A4").Offset(i).Resize(dic_projects.Count, 7) = Application.Transpose(Application.Transpose(dic_projects.Items))

ci-jointe nouvelle version

4base2.xlsm (37.16 Ko)

Bonjour,

Merci à vous pour ce retour plus que rapide.
cela fonctionne parfaitement et vous en remercie

Cependant je dois rajouter une nouvelle contrainte pour cette ligne de code

Project_Range = Application.Match(id_projet, .Range("B:B"), 0)

En effet pour chaque projet j'ai les investigateurs de chaque centre hors ici il ne me faut remonter que celui dont l'id du centre est 1 et placé en colonne A

de sorte à ce que le match = id_projet en colonne B et à l'id du centre en colonne A correspondant à 1.

merci en tout cas pour votre assistance toujours aussi efficace

bonne fin de weekend

j'ai essayé avec cela mais ne fonctionne pas..

Match = Application.Match(id_projet, .Range("B:B"), 0)
derlign = Worksheets("Investigators").Range("A" & Rows.Count).End(xlUp).row
Project_Range = Application.Match("1", .Range("A" & Match & ":A" & derlign), 0)

Bonsoir,

Essayer cette nouvelle version

7base3.xlsm (38.17 Ko)
Rechercher des sujets similaires à "ecrire fichier recup donnees"