VBA Excel : parcours d'une ligne
Résolu
enigmatoile
Messages postés
730
Statut
Membre
-
Utilisateur anonyme -
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.
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:
- VBA Excel : parcours d'une ligne
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
3 réponses
Bonjour,
Suggestion :
Lupin
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
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 :)
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 :)
Bonjour,
Autre suggestion :
Lupin
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