Transposition des données de deux fichiers sur un troisieme.

leXav

XLDnaute Nouveau
Bonjour,

La société qui m'emploi me demande régulierement de lui fournir des tableaux d'activité.

Aujourd'hui il me demande de reprendre tous les tableaux d'activités des 5 dernieres années
et de transposer les informations sous une autre forme dans un autre fichier.

En résumé j'ai deux type de fiche :
version 1 avec les informations sous un aspect
version 2 avec les informations sous un autres aspect a des emplacements different de la Version 1.


Et il faudrait que je genere une version 3 avec les informations sous un autres aspect a des emplacements different de la Version 1 et 2.

Je vous fournit 1 zip du repertoire Afin que vous compreniez bien ma problematique.

Comme cela fait bien longtemps que je n'ai pas utilisé les fonctions de transpositions sous Excel.

j'aurai souhaité un coup de main pour me permetre de me remettre le pied à l'étrier car je ne sais plus trop comment m'y prendre.

En vous remerciant par avance
Cordialement
LeXav
 

Pièces jointes

  • Repertoire1.zip
    7.7 KB · Affichages: 54
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Transposition des données de deux fichiers sur un troisieme.

Bonjour leXav,

Et bien j'espère que le calme reviendra après la tempête ;).

Bon, allons-y pas à pas.

- C'est checker une cellule précise dans chacun des fichiers et coller la réponse dans une feuille, cellule précise de mon récap.
Ceci n'est pas nécessaire car mon code va rechercher le mot "date de la demande" dans le fichier à analyser (quel que soit son emplacement entre la colonne A et I) à cet endroit du code:

Code:
    'on récupère les paramètres "objet de la demande", "date de la demande", etc...
    'en recherchant chacun de ces paramètres dans le fichier "FichTemp".
    'Il faut que le nom soit exactement le même dans les 2 fichiers, ce qui n'est pas le cas pour Marque/Modèle
    'écrit dans les fichiers serveurs alors que ces 2 données sont séparés dans ce classeur. Dans le cas contraire,
    'il faudra revoir cette partie du code.
      For Each Param In .Range("A4:A41")
        Set TrouveParam = FichTemp.Sheets(1).Columns("A:I").Find(Param.Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not TrouveParam Is Nothing Then .Cells(Param.Row, Col).Value = TrouveParam.Offset(0, 1).Value
      Next
En reprenant en détail:
Code:
For Each Param In .Range("A4:A41")
pour chaque élément (j'ai écrit "Param" mais ça peut être toto, titi, ce que tu veux) de la colonne A du fichier tableau récap.,
Code:
Set TrouveParam = FichTemp.Sheets(1).Columns("A:I").Find(Param.Value, LookIn:=xlValues, lookat:=xlWhole)
On cherche ce "paramètre" dans le fichier à analyser
Code:
        If Not TrouveParam Is Nothing Then .Cells(Param.Row, Col).Value = TrouveParam.Offset(0, 1).Value
Si ce paramètre est trouvé on copie la cellule de droite dans le fichier tableau recap.

Cela devrait répondre à tes 2 1er points.

N'hésite pas pour d'autres explications.

On verra après si tu le veut bien pour les cases à cocher.

Bon dimanche
 
Dernière édition:

leXav

XLDnaute Nouveau
Re : Transposition des données de deux fichiers sur un troisieme.

Bonjour Skoobi,

Ce principe marche bien.

Mais j'ai un autre problème qui apparait, certainnes de mes fiches ont des cases fusionnées et la valeur ne s'affiche pas. Je pense que c'est là que ça pêche :

Code:
If Not TrouveParam Is Nothing Then .Cells(Param.Row, Col).Value = TrouveParam.Offset(0, 1).Value

Comment je pourrai faire pour défussionnée en masse mes cellules sur toutes les fiches et recopier les fiches modifier dans un autre répertoire ?

Bon bon esperont que Demain il n'y aura pas d'houragan ... lol

Bon Weekend et Merci d'avance
 

skoobi

XLDnaute Barbatruc
Re : Transposition des données de deux fichiers sur un troisieme.

Bonjour leXav,

Tout dépend quelles cellules sont fusionnées. Imaginons que "paramètre" soit écrit dans la cellule A1 qui est fusionnée avec la cellule B1. Si la valeur se trouve en C1 (vu que A1:B1 sont fusionnés) le fait de défusionner ne va pas résoudre le problème car Offset(0,1) cherche dans la colonne +1 donc B, tu vois ce que je veux dire?
 

leXav

XLDnaute Nouveau
Re : Transposition des données de deux fichiers sur un troisieme.

Oui oui, je comprend bien et c'est bien là que ça pèche car effectivement en defusionnant même manuellement certaines fiches je m'aperçoit que la valeur ne se trouvera pas toujours en col +1.

C'est pourquoi, je m'étais posé la question si en fonction de la version que j'aurai placé en Bx de la feuille 2 de mon récap.

Je ne pourrai pas récupérer des cellules précises dont je connais les coordonnées.

Je fais cela sous forme de feuille supplémentaire "variables" ou j'aurai 4 colonnes représentant chaque cas demandés et en abscisses les coordonnées des champs a utiliser.

Exemple :
Paramètre "OS"
Si cas n°1 c'est la valeur en position "B18",
si cas n°2 "B16",
si cas n°3 "B4",
et enfin si cas n°4 "B6" qu'il faut que je récupère.

1 - Je determine la version de la fiche que je colle en Bx de feuille2
2 - J'applique la récupération des valeurs grace a ma nouvelle feuille variable.
3 - Je transpose les valeurs dans ma feuille "transposition"

Mais comme d'habitude beaucoup d'idées et peu de connaissance pour aboutir.
 

skoobi

XLDnaute Barbatruc
Re : Transposition des données de deux fichiers sur un troisieme.

Bonjour leXav,
si je reprends ton message demandant comment identifier les version, ça donne ceci:
Code:
'Cas n° 1 - Version 1 et Version 2 :
'Présence de "CLIENT" en "D9"
'Présence de "Marque/Modèle" cellule "A21"
If FichTemp.Sheets(1).[D9].Value = "CLIENT" _
And FichTemp.Sheets(1).[A21].Value <> "" Then
.....
'Cas n° 2 - Version 3 :
'Présence de "CLIENT" en "D9"
'Pas de Présence de "Marque/Modèle" cellule "A21"
ElseIf FichTemp.Sheets(1).[D9].Value = "CLIENT" _
And FichTemp.Sheets(1).[A21].Value = "" Then
.....
......
'Cas n° 3 - Version 4 :
'Pas de Présence de "CLIENT" en "D9"
'Pas de Présence de "Marque/Modèle" cellule "A21"
'Présence de "Marque/Modèle" cellule "A23"
ElseIf FichTemp.Sheets(1).[D9].Value <> "CLIENT" _
And FichTemp.Sheets(1).[A23].Value <> "" Then
......
......
'Cas n°4 - Autres versions
'Pas de Présence de "CLIENT" en "D9"
'Pas de Présence de "Marque/Modèle" cellule "A21"
'Pas de Présence de "Marque/Modèle" cellule "A23"
ElseIf FichTemp.Sheets(1).[D9].Value <> "CLIENT" _
And FichTemp.Sheets(1).[A23].Value = "" _
And FichTemp.Sheets(1).[A21].Value = "" Then
.....
......
End If

qui doit remplacer cette partie du code:
Code:
'on récupère les paramètres "objet de la demande", "date de la demande", etc...
    'en recherchant chacun de ces paramètres dans le fichier "FichTemp".
    'Il faut que le nom soit exactement le même dans les 2 fichiers, ce qui n'est pas le cas pour Marque/Modèle
    'écrit dans les fichiers serveurs alors que ces 2 données sont séparés dans ce classeur. Dans le cas contraire,
    'il faudra revoir cette partie du code.
      For Each Param In .Range("A4:A41")
        Set TrouveParam = FichTemp.Sheets(1).Columns("A:I").Find(Param.Value, LookIn:=xlValues, lookat:=xlWhole)
        If Not TrouveParam Is Nothing Then .Cells(Param.Row, Col).Value = TrouveParam.Offset(0, 1).Value
      Next
A la place des "......" tu mets:
Exemple :
Paramètre "OS"
Si cas n°1 c'est la valeur en position "B18",
si cas n°2 "B16",
si cas n°3 "B4",
et enfin si cas n°4 "B6" qu'il faut que je récupère.
 

leXav

XLDnaute Nouveau
Re : Transposition des données de deux fichiers sur un troisieme.

Bonjour tous le monde,

Pour la verif version, je pense que c'est bon.
Par contre, quel est la syntaxe après le "then"

".Cells(3,Col).Value= ... " ?

Et aprés comment mettre en place ma condition de récuperation si c'est cas n°1: B3 / B4 / B6 / B9 / E9 / B12 / B16 / B18 / D18 / B21 / C21 ... l'un en dessous de l'autre dans ma feuille 2 sous nom "Cells(2,Col)" et version "Cells(3,Col)".

Comment faire Transcrire :
Que si la case 2 est cochée afficher dans telle celule sur mon récap "oui" et sinon marquer "non" idem pour mes 4 autres cases. ([2]Office, [3]VNC, [4]Norton, [5]Seagate, [6]Gimp)

Peux tu me montrer la syntaxe exacte pour le cas n°1
Je crois qu'après je touche au but et je n'aurai plus qu'a adapter l'ensemble a mes fiches réelles.

De plus, y'a un truc que je ne vois pas dans la macros ou c'est qu'on lui dis de passer a l'autre fiche et de remplir la colonne a cotés.

Merci d'avance Skoobi
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Transposition des données de deux fichiers sur un troisieme.

Bonjour leXav,
Par contre, quel est la syntaxe après le "then"

".Cells(3,Col).Value= ... " ?

Et aprés comment mettre en place ma condition de récuperation si c'est cas n°1: B3 / B4 / B6 / B9 / E9 / B12 / B16 / B18 / D18 / B21 / C21 ... l'un en dessous de l'autre dans ma feuille 2 sous nom "Cells(2,Col)" et version "Cells(3,Col)".
En partant de With Sheets("Données brutes"):
Code:
    With Sheets("Données brutes")
      'Cas n° 1 - Version 1 et Version 2 :
      'Présence de "CLIENT" en "D9"
      'Présence de "Marque/Modèle" cellule "A21"
      If FichTemp.Sheets(1).[D9].Value = "CLIENT" _
         And FichTemp.Sheets(1).[A21].Value <> "" Then
        'nom du fichier
        .Cells(2, Col).Value = Fichier.Value
        'version (en fonction de la valeur D9 du classeur "FichTemp")
        .Cells(3, Col).Value = IIf(FichTemp.Sheets(1).Range("D9").Value = "Client :", "Version 1", "Version 2")
        'objet demande
        .Cells(4, Col).Value = FichTemp.Sheets(1).Range("B3").Value
        'date demande
        .Cells(5, Col).Value = FichTemp.Sheets(1).Range("B4").Value
        'client
        .Cells(6, Col).Value = FichTemp.Sheets(1).Range("E9").Value
        'demandeur
        .Cells(7, Col).Value = FichTemp.Sheets(1).Range("B6").Value
        'fonction service
        .Cells(8, Col).Value = FichTemp.Sheets(1).Range("B9").Value
        'domaine
        .Cells(9, Col).Value = FichTemp.Sheets(1).Range("D18").Value
        'environnement
        .Cells(10, Col).Value = FichTemp.Sheets(1).Range("B12").Value
        'nom
        .Cells(11, Col).Value = FichTemp.Sheets(1).Range("B16").Value
        'OS
        .Cells(12, Col).Value = FichTemp.Sheets(1).Range("B18").Value
        'CPU/Mem
        'Marque/modèle
        .Cells(14, Col).Value = FichTemp.Sheets(1).Range("B21").Value & "/" & FichTemp.Sheets(1).Range("C21").Value
        'Cas n° 2 - Version 3 :
...........
................
.....................
      End With
Comment faire Transcrire :
Que si la case 2 est cochée afficher dans telle celule sur mon récap "oui" et sinon marquer "non" idem pour mes 4 autres cases. ([2]Office, [3]VNC, [4]Norton, [5]Seagate, [6]Gimp)
Quelque chose come ça:
Code:
'vérifie coche 2
If FichTemp.Sheets(1).Shapes("Case à cocher 2").ControlFormat.Value = xlYes Then
  Texte = FichTemp.Sheets(1).Range("B25").Value
End If
'vérifie coche 3
If FichTemp.Sheets(1).Shapes("Case à cocher 3").ControlFormat.Value = xlYes Then
  Texte = Texte & "/" & FichTemp.Sheets(1).Range("C25").Value
End If
.....
.......
  .Cells(15, Col).Value = Texte
Bon après-midi.
 
Dernière édition:

leXav

XLDnaute Nouveau
Re : Transposition des données de deux fichiers sur un troisieme.

Re,

ça me plante au niveau du "End With" je comprend pas apparement ma macros ne voit pas mon "With" de départ.

Roooooooooo presque presque ... lool
Je joind mes fichiers pour que tu voye l'erreur si tu as le temps d'y jeter un oeil et de me dire ce qui cloche.

@+
LeXav
 

Pièces jointes

  • Fichiers.zip
    26.4 KB · Affichages: 22
  • Fichiers.zip
    26.4 KB · Affichages: 24
  • Fichiers.zip
    26.4 KB · Affichages: 19
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Transposition des données de deux fichiers sur un troisieme.

Il manque un Endif:

Code:
........
....
        .Cells(13, Col).Value = FichTemp.Sheets(1).Range("B18").Value
        'Marque/modèle
        .Cells(14, Col).Value = FichTemp.Sheets(1).Range("B21").Value & "/" & FichTemp.Sheets(1).Range("C21").Value
[B][COLOR=blue]      End If[/COLOR][/B]
    End With
    FichTemp.Close
  Next
...
......
 

leXav

XLDnaute Nouveau
Re : Transposition des données de deux fichiers sur un troisieme.

re,

ça ne me marque rien dans la feuille2 ? :)

ensuite je me pencherai sur les coches, comme m'a dis une personne sage d'ici un probleme a la fois.

Merci de ton aide
Je trouve cela de moins en moins sorcier
 

Pièces jointes

  • fichiers2.zip
    27.4 KB · Affichages: 32
  • fichiers2.zip
    27.4 KB · Affichages: 31
  • fichiers2.zip
    27.4 KB · Affichages: 31
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Transposition des données de deux fichiers sur un troisieme.

Re,

Une petite erreur dans la recherche du mot client:

Code:
      If FichTemp.Sheets(1).[D9].Value = "[B][COLOR=Blue]Client :[/COLOR][/B]" _
..................
.......................
..........
      ElseIf FichTemp.Sheets(1).[D9].Value = "[B][COLOR=Blue]Client :[/COLOR][/B]" _

Bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
312 839
Messages
2 092 686
Membres
105 509
dernier inscrit
hamidvba