Onglet « Sheet1 » les données
J’ai rajouté un onglet « Résultat » pour les mettre en colonne
Ainsi tu peux onglet « Sheet1 » mettre autant de Jalon que tu veux en colonne et autant de Code Projet que tu veux en ligne
Toutes les informations seront rapportés en colonne onglet « Résultat »
Cliques onglet « Sheet1 » sur le bouton « Traitement » et vérifies la présentation obtenu onglet « Résultat »
Ne pas supprimer les entêtes de colonne onglet « Résultat »
Ce fichier fonctionnant avec du code est de type xlsm
A conserver impérativement
@mimimathy, peux-tu m’expliquer comment tu as réalisé la macro stp ? Tu affiches les résultats à partir de la ligne 9 et colonne B. Comment je fais pour avoir ce meme tabeau mais en L2 stp?
Sub Test()
Dim i%, j%, Dl%, Dc%, lig%, col%
Dim Ws As Worksheet
Set Ws = Sheets(« Sheet1 »)
Dl = Ws.Range(« A » & Rows.Count).End(xlUp).Row
Dc = Ws.Cells(1, Columns.Count).End(xlToLeft).Column - 1
lig = 9
For i = 2 To Dl
col = 2
For j = 3 To Dc
Cells(lig, col) = Cells(i, 1)
Cells(lig, col + 1) = Cells(1, j)
Cells(lig, col + 2) = Cells(i, j)
Cells(lig, col + 3) = Cells(i, Dc + 1)
Cells(lig, col + 4) = Cells(i, 2)
lig = lig + 1
Next j
Next i
End Sub
Sub Test()
'* DECLARATIONS DES VARIABLES *
Dim i%, j%, Dl%, Dc%, lig%, col%
Dim Ws As Worksheet
'* INITIALISATION DES VARIABLES *
Set Ws = Sheets("Sheet1") 'Ws sera le nom de la feuille
Dl = Ws.Range("A" & Rows.Count).End(xlUp).Row 'Dernière ligne remplie de la colonne A
Dc = Ws.Cells(1, Columns.Count).End(xlToLeft).Column - 1 'Dernière colonne remplie de la ligne 1 moins 1 ("Chargé de projet ...")
lig = 9 'N° de la ligne sur laquelle je reproduit les données
For i = 2 To Dl 'Je boucle sur les lignes allant de la ligne 2 à la dernière (DL)
col = 2 'N° de la colonne sur laquelle je reproduit les données
For j = 3 To Dc 'Je boucle sur les colonnes allant de la colonne 3 à l'avant dernière (DC)
Cells(lig, col) = Cells(i, 1) 'la cellule (lig,col) soit cellule B9 = cellule (i,1) soit cellule (A2)
Cells(lig, col + 1) = Cells(1, j) 'Idem, juste à remplacer les variables par les valeurs pour la compréhension
Cells(lig, col + 2) = Cells(i, j)
Cells(lig, col + 3) = Cells(i, Dc + 1)
Cells(lig, col + 4) = Cells(i, 2)
lig = lig + 1 'je descend d'une ligne
Next j 'la prochaine valeur de j sera augmentée de 1 jusqu'à Dc
Next i 'la prochaine valeur de i sera augmentée de 1 jusqu'à Dl
End Sub
Bonjour, désolé pour le délai de réponse.
Merci Mimimathy pour tes explications. J’ai pu déplacer mon tableau avec la transposition
lig = 2
col = 12
mais mes données ne se transposent pas bien ? ESSAI PROJET (1) - Copie.xlsm (19,5 Ko)
Peux-tu regarder le fichier stp ?
Figure-toi que le copier-coller Transpose n’est pas actif car il semble que tes données proviennent d’une page web.
En faisait en premier un copier-coller sur place avec l’option « Respecter la mise en forme de destination », la transposition est devenue disponible
Et en deux clics, le pb me semble résolu… non ?
Pas besoin d’intégrer de code VBA pour cela…!
Enfin, si tu as une version récente d’Excel (avec abonnement), tu as désormais la fonction TRANSPOSE() qui permet de le faire automatiquement avec une fonction native !
Bonjour Charles, j’ai essayer de 1000 façons différentes avec un copier/coller transpose, mais les données ne se mettent pas dans l’ordre que je souhaite.