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 :

Réorganiser et copier des lignes en colonnes [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Réorganiser et copier des lignes en colonnes
    Bonsoir,

    Voilà, j'ai besoin de votre aide... Je ne sais pas comment organiser ma pensée pour écrire une macro. Et je suis convaincu que vous serez un bon soutien
    Je m'explique,

    J'ai un fichier où je dois copier et réorganiser des cellules, comme je ne sais pas trop comment le décrire j'ai placé un exemple ci-dessous.
    Voici un exemple de mon fichier (A à M sont les noms des colonnes) :

    A ----- B -C --- D ---- E ---- F ---- G -- H--I--J--K--L--M
    SL-123 ... ... ChemA ChemB
    RG-985 ... ... Supp5 ChemJ ChemA SUPP
    SL-569 ... ... CHTU02 SuppK SuppP CHER98


    Et voici ce à quoi j'aimerai bien arriver dans une autre feuille du fichier :

    A--------B
    SL-123 ChemA
    SL-123 ChemB
    RG-985 Supp5
    RG-985 ChemJ
    RG-985 ChemA
    RG-985 SUPP
    SL-569 CHTU02
    SL-569 SuppK
    SL-569 SuppP
    SL-569 CHER98


    Vous aurez donc peut-être compris là où je veux en arriver.
    *Les colonnes B et C de ma 1ère feuille ne m'intéresse pas.
    *Ce que contient la colonne A (de ma 1ère feuille) se décline en 10 colonnes (de la D à la M), mais il n'y a pas forcément des informations dans les 10 colonnes (ici je n'ai pas mis d'exemple où les 10 colonnes contiennent de l'info).
    *La 2ème feuille doit donc reprendre ce qui se trouve dans la colonne A de la 1ère feuille autant de fois qu'il y a d'infos dans les colonnes D à M et les infos dans ces colonnes sont autant de lignes pour ma 2ème feuille.

    J'espère ne pas être trop flou et que vous avez des pistes pour m'aider.
    Merci beaucoup, bonne soirée

    Henri

  2. #2
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir
    Ci_joint une proposition basique utilisant les variables tableaux
    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
    19
    20
    21
    22
    23
    Sub Reorganiser()
    Dim i As Long, n As Long
    Dim j As Byte
    Dim Res() As String
    Dim Tb
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")                          'Adapte les noms des feuilles
        Tb = .Range("A2:M" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value
    End With
     
    For i = 1 To UBound(Tb, 1)
        For j = 4 To 13
            If Tb(i, j) <> "" Then
                n = n + 1
                ReDim Preserve Res(1 To 2, 1 To n)
                Res(1, n) = Tb(i, 1)
                Res(2, n) = Tb(i, j)
            End If
        Next j
    Next i
    If n > 0 Then Worksheets("Feuil2").Range("A1").Resize(n, 2) = Application.Transpose(Res)
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Superbe
    Formidable Mercatog, merci merci

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Encore une petite chose.
    Bonjour,
    Si je peux me permettre... comment-il possible d'obtenir cela ?

    A--------B
    SL-123 1
    SL-123 2
    RG-985 1
    RG-985 2
    RG-985 3
    RG-985 4
    SL-569 1
    SL-569 2
    SL-569 3
    RG-455 1

    Donc si dans la colonne A mon item est représenté 1x alors, il y aura un 1 dans la colonne B, s'il est représenté 2x, alors il y aura 1 puis 2 dans la cellule du dessous, s'il est représenté 3x, 1 puis 2 puis 3, etc.

    C'est faisable svp ?

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

Discussions similaires

  1. copier des lignes sous conditions (dans 2 colonnes différentes)
    Par olive08 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 12/10/2007, 14h44
  2. [VBA_E]:copier des lignes d'une feuille à une autre
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/06/2006, 16h42
  3. copier des lignes excel
    Par deathsurfer dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2006, 10h39
  4. [T-SQL] Convertir des lignes en colonne
    Par cortex93 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/12/2005, 16h17
  5. Copier des lignes d'une table
    Par thomas_strass dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 01/07/2005, 15h42

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