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 :

Suppression de la fusion des cellules, copie et concaténation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Août 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2013
    Messages : 8
    Par défaut Suppression de la fusion des cellules, copie et concaténation
    Bonjour,

    J'ai un problème avec ce code de concaténation : je dois dé-fusionner les cellules d'une plage mais lors de la copie de celle-ci, seule la cellule A1 est copiée correctement et je n'arrive pas à récupérer l'intégralité des cellules...

    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
    Sub Compilation()
    Dim Temp As String
    Dim Ligne As Long
    Temp = Dir(ActiveWorkbook.Path & "\*.xls")
    Application.DisplayAlerts = False
    Do While Temp <> ""
    If Temp <> "Recap.xls" Then
    Workbooks.Open ActiveWorkbook.Path & "\" & Temp
     
    Range("A1:N36").Select
        With Selection
            .MergeCells = False
        End With
     
    Workbooks(Temp).Sheets(1).Range("A1:N36").CurrentRegion.Copy
     
    Workbooks("Recap.xls").Sheets(1).Activate
     
    Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1
     
    Range("A" & CStr(Ligne)).Select
     
    ActiveSheet.Paste
    Workbooks(Temp).Close
    End If
    Temp = Dir
    Loop
    Range("A1").Select
    Application.DisplayAlerts = True
    End Sub

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2010
    Messages : 270
    Par défaut
    Tu n'as pas quelque chose du style


  3. #3
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    pas trop compris ce que tu demandes
    est ce ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Workbooks("Recap.xls").Sheets(1).Activate
     
    Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1
     
    Range("A" & ligne &":N" & ligne+36).Select

  4. #4
    Membre habitué
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Août 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2013
    Messages : 8
    Par défaut
    En fait, ce programme concatène de nombreux fichiers XL en un seul....Seulement, les fichiers possèdent des cellules fusionnées et je n'arrive pas à résoudre le problème.

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Août 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2013
    Messages : 8
    Par défaut
    En fait j'ai récupéré ce code Extract.xls qui concatène plusieurs fichers XL :

    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
    Sub Compilation()
    Dim Temp As String
    Dim Ligne As Long
    Temp = Dir(ActiveWorkbook.Path & "\*.xls")
    Application.DisplayAlerts = False
    Do While Temp <> ""
    If Temp <> "Recap.xls" Then
    Workbooks.Open ActiveWorkbook.Path & "\" & Temp
    Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy
    Workbooks("Recap.xls").Sheets(1).Activate
    Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1
    Range("A" & CStr(Ligne)).Select
     
    ActiveSheet.Paste
    Workbooks(Temp).Close
    End If
    Temp = Dir
    Loop
    Range("A1").Select
    Application.DisplayAlerts = True
    End Sub
    ça marche très bien sauf pour les fichiers possédant des cellules fusionnées!
    Je voudrais donc l'adapter.

    Merci d'avance

  6. #6
    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
    Les cellules fusionnées sont dans le classeur source ou le classeur destination?

    Sinon, à propos du #5?

  7. #7
    Membre habitué
    Homme Profil pro
    Responsable de Production
    Inscrit en
    Août 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de Production
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2013
    Messages : 8
    Par défaut
    Merci beaucoup de ta réponse mais....ça ne fonctionne pas mieux.

    J'ai joint l'un des fichier source.

    Les cellules fusionnées sont dans le fichier source.
    Fichiers attachés Fichiers attachés

  8. #8
    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
    Si les cellules fusionnées sont dans les fichiers sources, pas besoin de les dé-fusionner avant copie

    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
    Sub Compilation()
    Dim Wbk As Workbook
    Dim Temp As String
    Dim Ligne As Long
     
    Temp = Dir(ThisWorkbook.Path & "\*.xls")
    Do While Temp <> ""
        If Temp <> ThisWorkbook.Name Then
            With ThisWorkbook.Worksheets(1)
                Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            End With
     
            Set Wbk = Workbooks.Open(ThisWorkbook.Path & "\" & Temp)
     
            Wbk.Worksheets(1).Range("A1:N36").Copy ThisWorkbook.Worksheets(1).Range("A" & Ligne)
     
            Wbk.Close False
            Set Wbk = Nothing
        End If
        Temp = Dir
    Loop
    End Sub

  9. #9
    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
    Essaies comme ceci

    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
    Sub Compilation()
    Dim Wbk As Workbook
    Dim Temp As String
    Dim Ligne As Long
     
    Temp = Dir(ThisWorkbook.Path & "\*.xls")
    Do While Temp <> ""
        If Temp <> "Recap.xls" Then
            With ThisWorkbook.Worksheets(1)
                Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            End With
     
            Set Wbk = Workbooks.Open(ThisWorkbook.Path & "\" & Temp)
     
            With Wbk.Worksheets(1).Range("A1:N36").CurrentRegion
                .UnMerge
                .Copy ThisWorkbook.Worksheets(1).Range("A" & Ligne)
            End With
     
            Wbk.Close False
            Set Wbk = Nothing
        End If
        Temp = Dir
    Loop
    End Sub

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

Discussions similaires

  1. adresse des cellules copiées
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/04/2008, 17h19
  2. [HTML] Tableau pbl bordure et fusion des cellules
    Par Epistoliere dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 03/08/2006, 16h42
  3. [JSF] Fusion des cellules
    Par Shivan dans le forum JSF
    Réponses: 3
    Dernier message: 11/04/2006, 10h21
  4. [Swing][JTable]Fusion des cellules d'un tableau
    Par LordBlaize dans le forum Composants
    Réponses: 1
    Dernier message: 23/03/2006, 18h48
  5. [VB6] Problème MsFlexgrid et Fusion des cellules
    Par dubidon dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/02/2006, 09h00

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