VBA Excel : parcours d'une ligne

Résolu/Fermé
enigmatoile
Messages postés
730
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
15 mars 2008
- 28 août 2007 à 15:03
 Utilisateur anonyme - 28 août 2007 à 18:54
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.

3 réponses

Utilisateur anonyme
28 août 2007 à 15:38
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
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
15 mars 2008
5
28 août 2007 à 15:54
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
28 août 2007 à 18:54
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