Transformation tableau double entrée avec VBA

Bonjour,

Je débute en VBA, je suis tombé sur votre forum. je pense que je vais apprendre beaucoup.

Voilà, j'ai un tableau à double entrée. Je précise que pour chaque critère, il y a un nombre de choix variable.

J'ai parfois un commentaire au lieux d'une x

Nom variétéVariété AVariété B
Nom parentFMFM
Critère A1 x
2 xx
3x
Critère B1 x
2xxx
Critère C1
2x x
3 x
4 x
Critère D
Feuilles Rouges

Je voudrais remplacer les x par la valeur de la colonne B, comme suit tout en gardant le texte s'il y a lieu.

Nom variétéVariété AVariété B
Nom parentFMFM
Critère A322
Critère B222
Critère C234
Critère D
Feuilles rouges

Merci de votre aide qui devrait me faire gagner du temps et m'initier au code. Le fichier doit faire 160 colonnes. Je n'ai pas envie de tout faire à la main.

Merci,

bonjour,

une proposition via vba

Sub aargh()
    Dim res()
    With ActiveSheet
        dl = .UsedRange.Rows.Count
        dc = .UsedRange.Columns.Count
        Set ws = Sheets.Add
        .Range("B1").Resize(2, dc).Copy ws.Range("A1")
        ReDim res(1 To dl, 1 To dc)
        For i = 3 To dl
            If .Cells(i, 1) <> "" Then
                k = k + 1
                res(k, 1) = .Cells(i, 1)
            End If
            For j = 3 To dc
                v = .Cells(i, j)
                If v = "x" Then
                    res(k, j - 1) = .Cells(i, 2)
                ElseIf .Cells(i, j) <> "" Then
                    res(k, j - 1) = v
                End If
            Next j
        Next i
        ws.Range("A3").Resize(k, dc) = res
    End With
End Sub

Un grand merci h2so4, cela fonctionne.

Je n'ai pas compris toutes les commandes, mais ça marche.

Rechercher des sujets similaires à "transformation tableau double entree vba"