Transposer des données en colonne en lignes selon condition

  • Initiateur de la discussion Initiateur de la discussion stsym
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

stsym

XLDnaute Nouveau
Bonjour,

J'ai utilisé le moteur de recherche du forum et ai trouvé un fichier et un code
qui correspond parfaitement à ma demande.
En effet je souhaite transposer des données présentes sous format colonnes et format lignes et créer une colonne
correspondant à celle de l'entête.

Post : Efgé du 26/07/2011

Dans mon tableau j'ai des donneés dont les valeurs sont saisies en rouge et je souhaite transposer en lignes que ces dernières.
Cela est-il possible ?

Si cela l'est ma demande devient plus compliquée.
Dans ce tableau j'ai des données saisies en rouge et d'autres en vert.
Est-il possible de transposer dans un onglet les données rouge et dans un autre celles en vert.

D'avance merci pour votre aide
StSym

Private Sub CommandButton1_Click()
Dim Tablo(), Col&, Rw&, i&, j&, k&
With Sheets("Feuil1")
Col = .Cells(1, Columns.Count).End(xlToLeft).Column - 1
Rw = .Cells(Rows.Count, 1).End(xlUp).Row
ReDim Tablo(1 To (Rw * Col) + 1, 1 To 3)
For i = 2 To Rw
For j = 2 To Col + 1
k = k + 1
Tablo(k, 1) = .Cells(i, 1)
Tablo(k, 2) = .Cells(1, j)
Tablo(k, 3) = .Cells(i, j)
Next j
Next i
End With
Cells(2, 1).Resize(UBound(Tablo, 1), 3) = Tablo
End Sub
 
Re : Transposer des données en colonne en lignes selon condition

Bonsoir stsym, le forum,
Je pense que si tu joins un petit fichier d’exemple (quelques lignes, sans données confidentielles), tu auras plus de chance d’obtenir de l’aide.
Cordialement,
Bernard
 
Re : Transposer des données en colonne en lignes selon condition

Bonjour


Remplaces ta macro existante par celle-ci
Code:
Sub Formeautomatique1_QuandClic()
Dim tablo(), Col&, Rw&, i&, j&, k&
With Sheets("Donnees")
    Col = .Cells(1, Columns.Count).End(xlToLeft).Column - 1
    Rw = .Cells(Rows.Count, 1).End(xlUp).Row
    ReDim tablo(1 To (Rw * Col) + 1, 1 To 3)
    For i = 2 To Rw
        For j = 2 To Col + 1
        k = k + 1
        If .Cells(1, j).Font.ColorIndex = 3 Or .Cells(i, j).Font.ColorIndex = 3 Then
            tablo(k, 1) = .Cells(i, 1)
            tablo(k, 2) = .Cells(1, j)
            tablo(k, 3) = .Cells(i, j)
        End If
        Next j
    Next i
End With
Application.ScreenUpdating = False
Cells(2, 1).Resize(UBound(tablo, 1), 3).Clear
Cells(2, 1).Resize(UBound(tablo, 1), 3) = tablo
With Range("A1:C" & [A65536].End(xlUp).Row)
.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
.Borders.LineStyle = xlContinuous
End With
With Range("C2:C" & [C65536].End(xlUp).Row).Font
.Bold = True
.ColorIndex = 3
End With
Application.ScreenUpdating = True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
237
Réponses
4
Affichages
177
Réponses
8
Affichages
467
Réponses
7
Affichages
280
Réponses
3
Affichages
665
Réponses
10
Affichages
281
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Retour