Manipulation de données, transfert de données entre 2 tableaux au format différent

isywybad

XLDnaute Nouveau
Bonsoir à tous,

Tout d'abord un grand merci pour les nombreuses contributions qui m'ont, jusqu'à aujourd'hui, toujours permis de trouver des solutions.

Là, ... ce soir je bloque.

J'ai un tableau récapitulant en colonnes des personnes, un emplois et les trimestres où ils sont affectés à cet emploi (1 oui, 0 non).

Quand une personne change d'emploi, une nouvelle ligne est créée.
Nom - Nouveau Job - et la série de 1 qui vont bien pour les trimestres concernés.

Mais je cherche à refaire une table en lignes pour les trimestres soit Personnes - Trimestres - Emplois, avec autant de ligne que de trimestre.

Comme un exemple vaut mieux qu'un long discours... ci-joint le fichier excel.

Je recherche donc une formule me permettant de transférer les données de la table 1 dans la table 2.

Merci par avance pour vos pistes de réflexion / aides ! ! !

Bonne soirée / nuit ! ! ! !
 

Pièces jointes

  • Fichier Exemple.xlsx
    16.5 KB · Affichages: 45
  • Fichier Exemple.xlsx
    16.5 KB · Affichages: 52
  • Fichier Exemple.xlsx
    16.5 KB · Affichages: 53

Nairolf

XLDnaute Accro
Re : Manipulation de données, transfert de données entre 2 tableaux au format différe

Salut isywybad, salut le forum,

Je te propose le fichier joint qui traite ta demande avec du vba (peut-être possible avec des formules excel, pour moi c'était beaucoup plus simple en vba pour ce type de besoin).
 

Pièces jointes

  • Fichier Exemple.xlsm
    36.5 KB · Affichages: 49
  • Fichier Exemple.xlsm
    36.5 KB · Affichages: 58
  • Fichier Exemple.xlsm
    36.5 KB · Affichages: 56

isywybad

XLDnaute Nouveau
Re : Manipulation de données, transfert de données entre 2 tableaux au format différe

Hello,

Merci pour cette proposition si rapide:cool:. J'en ai trouvé une autre sans VBA entre temps. :rolleyes:.

J'ai consolidé les deux dans un seul fichier.

Maintenant je cherche à résoudre une complexité.... si la personne est en temps partiel (donc pas 1 dans le tableau) comment puis je en tenir compte dans ma formule ?

Je pense que dans la version VBA cela posera aussi problème.
 

Pièces jointes

  • Fichier Exemple V2.xlsm
    37.7 KB · Affichages: 39
  • Fichier Exemple V2.xlsm
    37.7 KB · Affichages: 51
  • Fichier Exemple V2.xlsm
    37.7 KB · Affichages: 51

isywybad

XLDnaute Nouveau
Re : Manipulation de données, transfert de données entre 2 tableaux au format différe

Yep ! ! ! C'est ça .....

Donc merci pour ta solution et le complément pour le VBA.

Par contre, une idée pour une formule ?

Dans une formule, excel ne comprend pas : <>0
 

isywybad

XLDnaute Nouveau
Re : Manipulation de données, transfert de données entre 2 tableaux au format différe

Nairolf,

J'ai pris un peu de temps hier pour bien comprendre ton VBA (je me débrouille en formule mais je ne suis pas encore un grand adepte du VBA).

Ta macro me permet de transposer ton tableau au format souhaité. Qu'en serait il si la table deux devait être sur un nouvel onglet ?
 

Nairolf

XLDnaute Accro
Re : Manipulation de données, transfert de données entre 2 tableaux au format différe

Salut,

Dans le worksheets tu peux appeler n'importe quel onglet.

J'ai ajouter quelques commentaires dans mon code:

'initialisation de la position de ta première entrée dans Table 2
ligne = 4

'boucle de la première valeur à la dernière valeur de la colonne B de table 1 se trouvant dans Feuil1
'dernière valeur calculer par un décompte de valeurs dans la colonne B de Feuil1
For i = 1 To (WorksheetFunction.CountA(Worksheets("Feuil1").Range("B:B")) - 1)

'boucle de la 4ème colonne à la 16ème colonne de la Feuil1, correspondant à ta table 1
For j = 4 To 16

'contrôle pour chaque et à chaque colonne si ta valeur est supérieure à 0
If Worksheets("Feuil1").Cells(i + 4, j) > 0 Then

'incrémentation de ta position de copie des valeurs dans la Table 2
ligne = ligne + 1

'écrit dans la Table2 (se trouvant ici dans Feuil1) les valeurs de la Table 1
Worksheets("Feuil1").Cells(ligne, 18) = Worksheets("Feuil1").Cells(i + 4, 3)
Worksheets("Feuil1").Cells(ligne, 19) = Worksheets("Feuil1").Cells(4, j)
Worksheets("Feuil1").Cells(ligne, 20) = Worksheets("Feuil1").Cells(i + 4, 2)

End If

Next j

Next i
 

Discussions similaires

Statistiques des forums

Discussions
312 174
Messages
2 085 945
Membres
103 055
dernier inscrit
DrKiwi