Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - transformer des colonnes en lignes

  • Initiateur de la discussion Initiateur de la discussion jcf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jcf

Guest
bonjour tout le monde,

J'ai besoin de vos conseils pour une macro (je débute).
J'ai un fichier Excel avec plusieurs colonnes :



J'aimerai créer une nouvelle ligne pour chaque tranches de SDA (SDA_debut -> SDA_fin) en gardant les infos "code_site", "caisse", "NDI_ref_facturation".

Pour avoir le résultat ci-dessous :



Vous avez des conseils ? une idée du déroulement du script ? des fonctions qui pourraient m'aider ?

Merci d'avance ! 🙂
 
Re : VBA - transformer des colonnes en lignes

Ok, BrunoM45, tu m'as eu !
Cependant, j ai relu la chartre du forum, et rien ne stipule que l'on ne peut pas poster sur un autre forum.
Alors peut etre que cela fait partie des habitudes sur les forums ? je ne sais pas. Tous les demandeurs ne connaissent pas les us et coutumes d’XLD.
J'ai vraiment besoin d'aide sur ce coup, c'est pour une asso, ca aiderait bcp de gens 😀
Merci
 
Re : VBA - transformer des colonnes en lignes

Bonjour à tous, j'ai un souci similaire à la personne qui a ouvert cette discussion et je n'arrive pas à modifier ma macro comme il se doit. Je débute en langage vba et patauge un peu :

J'ai le fichier suivant :

743 marque 1 marque 2 marque 3
877 marque 1 marque 2 marque 3 marque 4
1110 marque 1 marque 2
1123 marque 1 marque 2 marque 3

et je voudrais :

743 marque 1
743 marque 2
743 marque 3
877 marque 1
877 marque 2
877 marque 3
877 marque 4
etc.

Je joins à mon message un exemple du fichier que je veux.

Je vous remercie d'avance pour votre aide...

Aude
 

Pièces jointes

Re : VBA - transformer des colonnes en lignes

Bonjour Aude lapluchouet, bienvenue sur XLD,

C'est tout à fait en rapport avec ce fil, en plus simple :

Code:
Sub Regrouper()
Dim lig&, lig1&, col%
Application.ScreenUpdating = False
For lig = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
  lig1 = lig + 1
  col = 3
  While Cells(lig, col) <> ""
    Rows(lig1).Insert
    Cells(lig1, 1) = Cells(lig, 1)
    Cells(lig1, 2) = Cells(lig, col)
    lig1 = lig1 + 1
    col = col + 1
  Wend
Next
[C:C].Resize(, Columns.Count - 2).ClearContents
End Sub
Votre fichier complété.

A+
 

Pièces jointes

Re : VBA - transformer des colonnes en lignes

Re,

Sur un grand tableau cette macro sera beaucoup plus rapide :

Code:
Sub Regrouper()
Dim tablo, i&, j%, n&, t()
With ActiveSheet.UsedRange
  If .Count = 1 Then Exit Sub 'sécurité
  tablo = .Resize(, .Columns.Count + 1)
End With
ReDim t(Application.CountA([B:B].Resize(, Columns.Count - 1)), 1)
For i = 2 To UBound(tablo)
  j = 2
  While tablo(i, j) <> ""
    t(n, 0) = tablo(i, 1)
    t(n, 1) = tablo(i, j)
    j = j + 1
    n = n + 1
  Wend
Next
If n Then [A2].Resize(n, 2) = t
[C:C].Resize(, Columns.Count - 2).ClearContents
End Sub
En effet elle utilise des tableaux VBA (matrices).

Fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re : VBA - transformer des colonnes en lignes

Re,

J'ai recopié le tableau jusqu'à la ligne 4601, sur Win Xp - Excel 2003 :

- fichier (1) => 42 secondes

- fichier (2) => 0,28 seconde...

A+
 
Dernière édition:
Re : VBA - transformer des colonnes en lignes

Bonjour à tous,
J'ai repris le fil mjo*06/12/2006*11h49#2 pour supprimer les cellules vides des différentes colonnes.
Re : Supprimer des cellules vides en décalant certaines lignes vers la gauche et cela fonctionne très bien.
Encore, merci.

[URL="http://http://www.excel-downloads.com/forum/71606-supprimer-des-cellules-vides-en-decalant-certaines-lignes-vers-la-gauche.html#post381919[/URL]

Bonne soirée
A+
 
Re : VBA - transformer des colonnes en lignes

Bonjour à tous,
Merci à tous pour ce fil qui est très intéressant.
J'ai essayé de retravailler la première macro de Job75 pour mon fichier mais sans succès.
J'ai un fichier avec des données comptable, avec des valeurs pour chaque compte allant de la colonne F à S.

J'aimerai, grâce à une macro (sur la base de ce fil), récupérer chaque numéro compte, en l'insérant dans une colonne (F), et à côté mettre la valeur qui correspond et cela pour chaque ligne.

J'espère que vous me comprendrez.

Merci d'avance à tous ceux qui pourront m'aider.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
7
Affichages
308
Réponses
2
Affichages
149
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…