Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Conversion colonne ligne

  • Initiateur de la discussion Initiateur de la discussion joseph01
  • 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 !

J

joseph01

Guest
Bonjour à tous,

je sais ce que je veux obtenir, je sais à peux près écrire la macro, SAUF le déplacement et positionnement dans le tableau.
J'ai créé un tableau d'exemple.

Si quelqu'un peut me donner un coup de main, ce serait sympa et je suis preneur.

Merci.

Bonne nuit.

Joseph
 

Pièces jointes

Re : Conversion colonne ligne

Bonsoir

Ci dessous un début de macro
Code:
Option Explicit
Sub travdem()
Dim cellule As Range
Dim nomfeuille1 As String
Dim data1 As String, col As String
Dim data2 As String
Dim i As Long, pos As Byte
' pour boucler sur la colonne 1

nomfeuille1 = "Feuil1"

With Sheets(nomfeuille1)
For Each cellule In .Range("b2:b" & .Cells(Columns(2).Cells.Count, 2).End(xlUp).Row)
    If cellule.Value = "Désignation" Then
        For i = 1 To 30
            If cellule.Offset(i, 0) = "Désignation" Then Exit For
        Next i
    ' i -1 contient le nombre de lignes
        For i = 0 To i - 1
            Select Case i
                Case 0
                    .Range("d" & cellule.Row) = cellule
                Case Else
                If cellule.Offset(i, 0) <> "" Then
                    pos = InStr(1, cellule.Offset(i, 0), ":")
                    If pos > 0 Then
                        data1 = Mid(cellule.Offset(i, 0), 1, pos - 1)
                        data2 = Trim(Mid(cellule.Offset(i, 0), pos + 1, 100))
                        col = ""
                        Select Case Trim(data1)
                            Case "Code article"
                                col = "E"
                            Case "Fabricant nom (1)"
                                col = "F"
                            [COLOR="Red"]
                                 Case " nom pour identifier" 
                                col = nom de la colonne
[/COLOR]
                            Case "Fabricant ref (2)"
                                col = "i"
                        End Select
                        If col <> "" Then .Range(col & cellule.Row) = data2
                    Else
                        .Range("d" & cellule.Row) = .Range("d" & cellule.Row) & " " & cellule.Offset(i, 0)
                    End If
                End If
            End Select
        Next i
    End If
Next cellule
End With
End Sub

A compléter en rajoutant
Code:
Case " nom pour identifier" 
col = nom de la colonne

JP
 
Re : Conversion colonne ligne

Merci JP (les mêmes initiales que moi).

Je testerai ça demain matin, il se fait tard en Mandchourie, et je suis crevé.

Encore merci pour ton coup de main.

Joseph
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
395
Réponses
6
Affichages
366
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…