IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Séparation ligne en bloc de colonnes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut Séparation ligne en bloc de colonnes
    Bonjour à tous !

    Après plusieurs heure de recherche infructueuse je me tourne vers ce forum.

    Je suis à la recherche d'une méthode afin de séparer une ligne par bloc de 15 colonnes et d'ensuite réaligner ces colonnes. Pour être plus clair, j'ai un tableau de donnée :

    Nom A ;Prénom A ;Tél A ;Adresse A ;Nom B ;Prénom B ;Tél B Adresse B ;
    Nom A2; Prénom A2 ;TélA2 ;Adresse A2 ;Nom B2 ;PrénomB2 ;Tél B2;..
    Nom A3; Prénom A3;... ;Nom B3; Prénom B3;...


    Et j'aimerais ces données sous la forme :

    Nom A ;Prénom A ;Tél A ;Adresse A;
    Nom A2; Prénom A2 ;TélA2 ;Adresse A2
    Nom A3; Prénom A3,...
    Nom B ;Prénom B ;Tél B Adresse B ;
    Nom B2 ;PrénomB2 ;Tél B2;..
    Nom B3...

    C'est a dire séparer mes lignes par bloc. Dans mon exemple ca serait par bloc de quatre colonnes et 3 lignes et ensuite les aligner...

    Je recherche cela car j'aimerais couper ces quelques longues lignes et les mettre en colonnes afin d'avoir chaque catégorie A B C... l'une en dessus de l'autre au lieu de les avoir aligner. En d'autres mots, au lieu d'avoir mes blocs de données en lignes A11 A12 A13 A14B11 B12 B13 B14 C11 C12 C13 C14...
    A21 A22 A23 A24 B21 B22 B23 B24 C21 C22 C23 C24...

    J aimerais avoir

    A11 A12 A13 A14
    A21 A22 A23 A24
    B11 B12 B13 B14
    B21 B22 B23 B24
    C11 C12 C13 C14
    C21 C22 C23 C24
    ...

    Est ce que mes explications sont assez clair ?

    Enfin j'espère que vos lumières pourrons m'aider à résoudre mon problème !

    Merci d'avance !

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour, ci-après code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Reorganiser()
    Const X As Byte = 4                                'Nombre de colonnes dans un bloc
    Const Y As Byte = 3                                'Nombre de lignes dans un bloc
    Const DEB As Integer = 2                           'Ligne de début
    Dim LastCol As Integer, i As Integer
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")                          'A Adapter
        LastCol = .Cells(DEB, .Columns.Count).End(xlToLeft).Column
        If LastCol > X Then
            For i = X + 1 To LastCol Step X
                .Range(.Cells(DEB, i), .Cells(DEB + Y, i + X - 1)).Cut .Cells(.Rows.Count, 1).End(xlUp)(2)
            Next i
        End If
    End With
    End Sub

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Une autre version pour plusieurs blocs lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub test()
    Dim DerLig As Long, Ligne As Long
    Dim DerCol As Integer, Col As Integer
    Const BlocLignes = 3
    Const BlocColonnes = 15
        Application.ScreenUpdating = False
        With Worksheets("Feuil1")
            DerLig = .Range("A" & Rows.Count).End(xlUp).Row
            DerCol = .Cells(1, Columns.Count).End(xlToLeft).Column
            For Ligne = DerLig - BlocLignes + 1 To 1 Step -BlocLignes
                For Col = DerCol - BlocColonnes * 2 + 1 To 1 Step -BlocColonnes
                    .Cells(Ligne, Col).Resize(BlocLignes, BlocColonnes).Cut
                    .Cells(Ligne, DerCol - BlocColonnes + 1).Resize(BlocLignes, BlocColonnes).Insert Shift:=xlShiftDown
                Next Col
            Next Ligne
            .Cells(1, DerCol - BlocColonnes + 1).Resize(DerLig * DerCol / BlocColonnes, BlocColonnes).Cut .Cells(1, 1)
        End With
    End Sub
    Cordialement.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut
    Mille Merci à vous mercatog et gFZT82 !!

    Je viens de tester votre code et c'est exactement ce que je voulais !

    Je ne sais comment vous remercier d'avantage !

    Excellent dimanche à vous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Figer la première ligne et la première colonne d'un tableau
    Par kcizth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/06/2006, 10h48
  2. Réponses: 7
    Dernier message: 06/06/2006, 16h40
  3. Etat avec resultats en ligne plutot qu'en colonne
    Par petitours dans le forum Access
    Réponses: 3
    Dernier message: 05/04/2006, 18h20
  4. [VBA-E]Numero de ligne et boucle de colonne
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2006, 12h10
  5. Listview selection d'une ligne et d'une colonne
    Par PierreBord dans le forum Composants VCL
    Réponses: 1
    Dernier message: 13/02/2006, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo