VBA Excel : parcours d'une ligne

Résolu
enigmatoile Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

Je souhaite écrire du code afin de transformer untableau de type

TRUC1 | BIDULE1 | BIDULE2 | BIDULE3

en

TRUC1 | BIDULE1
TRUC1 | BIDULE2
TRUC1 | BIDULE3

J'ai compris qu'il fallair que je parcours ma ligne et que tant que je ne rencontre pas une cellule vide, je dois insérer une nouvelle ligne et couper coller les valeurs qui vont bien.

Question : comment faire la boucle de parcours de la ligne?

Un truc genre FOR i=A TO Z mais comment l'incrémenter quand c'est des lettres?

Merci beaucoup pour l'aide que vous pourrez m'apporter.
A voir également:

3 réponses

Utilisateur anonyme
 
Bonjour,

Suggestion :

Sub Transpose()

    Const FleAjout = "Résultats"

    Dim Valeur As Variant, Colonne As Long, Boucle As Long
    Dim Feuille As String
    
    Valeur = ActiveCell.Offset(0, 0).Value
    Colonne = ActiveCell.End(xlToRight).Column
    Feuille = ActiveSheet.Name
    Worksheets.Add.Name = FleAjout
    For Boucle = 2 To Colonne
        ActiveCell.Offset(0, 0).Value = Valeur
        ActiveCell.Offset(0, 1).Value = Sheets(Feuille).Cells(1, Boucle).Value
        ActiveCell.Offset(1, 0).Select
    Next Boucle
    Sheets(Feuille).Select
    MsgBox "Visualiser la feuille [ Résultats ]."

End Sub
'


Lupin
0
enigmatoile Messages postés 730 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci beaucoup Lupin, ton code fonctionne bien :)

Plus qu'à l'améliorer poour qu'il soit capable de traiter plusieurs lignes et pas une seume comme dans l'exemple que j'ai donné, et ça sera nickel, mais ça ça devrait etre à ma portée :)
0
Utilisateur anonyme
 
Bonjour,

Autre suggestion :

Sub TransposeMultiLignes()

    Const FleAjout = "Résultats"

    Dim Valeur As Variant, Colonne As Long, Boucle As Long
    Dim Compteur As Long, Ligne As Long
    Dim Feuille As String
    
    Feuille = ActiveSheet.Name
    Ligne = ActiveCell.Offset(0, 0).End(xlDown).Row
    Worksheets.Add.Name = FleAjout
    For Compteur = 1 To Ligne
        Sheets(Feuille).Select
        Valeur = ActiveCell.Offset(Compteur - 1, 0).Value
        Colonne = ActiveCell.Offset(Compteur - 1, 0).End(xlToRight).Column
        Sheets(FleAjout).Select
        For Boucle = 2 To Colonne
            ActiveCell.Offset(0, 0).Value = Valeur
            ActiveCell.Offset(0, 1).Value = Sheets(Feuille).Cells(Compteur, Boucle).Value
            ActiveCell.Offset(1, 0).Select
        Next Boucle
        Sheets(Feuille).Select
    Next Compteur
    Sheets(Feuille).Select
    MsgBox "Visualiser la feuille [ Résultats ]."

End Sub
'

Lupin
0