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 :

Transformer plusieurs lignes en une ligne


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut Transformer plusieurs lignes en une ligne
    Bonjour

    J’ai dans mon fichier des valeurs « F » qui commence toutes par <polygon et ces valeurs sont sur plusieurs lignes j’aimerais les transformer sur une ligne, j’ai fait un modèle pour être plus explicite

    je vous remercie
    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Tu devrais expliquer ton problème de façon plus détaillée, beaucoup de participants à ce forum n'ouvrent pas les fichiers joints, entre autre pour les raisons expliquées ici : http://www.developpez.net/forums/d84...s-discussions/
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Membre du Club Avatar de Mr.Anime
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2018
    Messages : 28
    Points : 68
    Points
    68
    Par défaut
    Bonjour Forum, bonjour apdf1,

    Ne comprenant pas tous de ton message je vais essayer deux, trois trucs.
    As-tu essayer de sélectionner tes données et d'appliquer l'option "Convertir" sous excel ?
    Cela se trouve sous l'onglet "Données" puis "Outils de données" et enfin "Convertir"

    si ce n'est pas ça que tu recherches à faire, essaye un "Rechercher" --> "Remplacer"

    Bonne journée

    Mr.Anime
    C'est en forgeant que l'on devient forgeron.

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Le résultat en feuille "Feuil2", la plage commence en F5 :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Sub Test()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Chaine As String
        Dim Lig As Integer
     
        Set Plage = DefPlage(Worksheets("Feuil1"), 5, 6)
     
        For Each Cel In Plage.Columns(1).Cells
     
            If Cel.Value <> "" Then
     
                If Chaine <> "" Then
     
                    With Worksheets("Feuil2")
                        Lig = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
                        .Cells(Lig, 1).Value = Chaine
                    End With
     
                    Chaine = ""
     
                End If
     
                Chaine = Chaine & Cel.Value
     
            Else
     
                Chaine = Chaine & Cel.Offset(, 1).Value
     
            End If
     
        Next Cel
     
    End Sub
     
    Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range
     
        On Error GoTo Fin
     
        With Fe
     
            Set DefPlage = .Range(.Cells(L, C), _
                           .Cells(.Cells.Find("*", .[A1], -4123, , _
                           1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                           2, 2).Column))
     
        End With
     
        Exit Function
     
    Fin:
     
        Set DefPlage = Nothing
     
    End Function

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonjour à tous

    Je voudrais savoir s'il est possible de recopier les lignes sur la même feuille et au même endroit

    Merci

    Max

  6. #6
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Avec les valeurs sur la même feuille :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Sub Test()
     
        Dim Tbl() As String
        Dim Plage As Range
        Dim Cel As Range
        Dim Chaine As String
        Dim I As Integer
     
        Set Plage = DefPlage(Worksheets("Feuil1"), 5, 6)
     
        For Each Cel In Plage.Columns(1).Cells
     
            If Cel.Value <> "" Then
     
                If Chaine <> "" Then
     
                    I = I + 1: ReDim Preserve Tbl(1 To I)
                    Tbl(I) = Chaine
                    Chaine = ""
     
                End If
     
                Chaine = Chaine & Cel.Value
     
            Else
     
                Chaine = Chaine & Cel.Offset(, 1).Value
     
            End If
     
        Next Cel
     
        Cells.Clear
        Range(Cells(1, 1), Cells(UBound(Tbl), 1)).Value = Application.Transpose(Tbl)
     
    End Sub

Discussions similaires

  1. [XL-2007] Besoin de transposer un fichier excel en plusieurs colonnes sur plusieurs lignes
    Par le_savoyard dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2015, 16h00
  2. Response.Write sur plusieurs lignes
    Par simoryl dans le forum ASP
    Réponses: 2
    Dernier message: 31/08/2004, 22h49
  3. Réponses: 2
    Dernier message: 10/05/2004, 07h55
  4. TDBGrid - Un enregistrement sur plusieurs lignes
    Par BRODU dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/05/2004, 07h53
  5. Define sur plusieurs lignes
    Par Gogoye dans le forum C
    Réponses: 6
    Dernier message: 06/10/2003, 11h45

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