VBA Excel : parcours d'une ligne

Résolu
enigmatoile Messages postés 724 Date d'inscription   Statut Membre -  
 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.
--
**Enigmatoile**

3 réponses

  1. 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
  2. enigmatoile Messages postés 724 Date d'inscription   Statut Membre 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
  3. 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