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 fusion cellules et recopie des données [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Suppression fusion cellules et recopie des données
    Bonjour à tous.

    Je reçois des données sous forme de feuille Excel.
    Je voudrais les lier à une table Access. A priori pas de soucis.
    Mon problème est qu'il y a dans ma feuille Excel des cellules fusionnées de façon aléatoire et sur un nombre de cellules variable.
    Il me faudrait donc faire une boucle qui:
    - me trouve une cellule fusionnée.
    - me copie la valeur
    - me supprime la fusion
    - me colle la valeur dans chaque nouvelle cellule ainsi créée
    - passe à la cellule fusionnée suivante

    Pour l'instant j'ai trouvé dans la Faq, la boucle concernant le repérage des cellules fusionnées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub VisualiserCellulesFusionnees()
    Dim Cell As Range
     
    'Boucle sur les cellules utilisées dans la feuille
    For Each Cell In Worksheets("Feuil1").UsedRange.Cells
        'Si la cellule est fusionnée
        'Colorie en jaune si la cellule est fusionnée
        If Cell.MergeCells Then Cell.MergeArea.Interior.ColorIndex = 6
    Next Cell
    End Sub
    Mais cela ne suffit pas.
    En espérant avoir été clair, je vous remercie par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 353
    Points
    34 353
    Par défaut
    Salut ,

    en partant de ton test
    la demarche sera d'appliquer
    et de recopier la value d'origine dans les cellules videes.

    Cela t'eclaire-t-il ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Jpcheck et Merci


    J'ai l'impression que c'est moi qui dois avoir les cellules vides.

    C'est pour la copie que je coince
    Il faut bien localiser le nombre de cellules vides ainsi créées, ainsi que leur emplacement pour leur coller une valeur?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 353
    Points
    34 353
    Par défaut
    En fait en utilisant l'autre propriete des fusions
    tu testes l'info sur l'appartenance ou non a une cellule fusionnee.

    L'exemple de l'aide en ligne a ce sujet semble correspondre au test que tu souhaites effectuer.

    Reste a creer un tableau pour stocker les donnees avant de les repartir...

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim c As Range, Plg As Range
     
    For Each c In Range("A1:G20")
        If c.MergeCells Then
            Set Plg = c.MergeArea
            c.UnMerge
            c.Copy Plg
        End If
    Next c

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai vu le message de Mercatog en écrivant ma réponse.

    Sinon j'ai trouvé ceci également que je viens d'appliquer:

    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
    Function SupprimFusion()
        Dim rang As Range
        Dim cell As Range
        Dim Adresse As String
        Dim Contenu As Variant
        With ActiveSheet.UsedRange
            For Each cell In .Cells
                With cell
                    If .MergeCells = True Then
                            Adresse = .MergeArea.Address(0, 0)
                            Contenu = .Value
                            .MergeArea.UnMerge
                            For Each rang In Range(Adresse)
                                    rang.Value = Contenu
                            Next rang
                    End If
                End With
            Next cell
        End With
    End Function
    Merci à vous deux. Cà m'a bien aidé car mon niveau Excel est au niveau de mon utilisation: soit très basique...
    Dernière modification par Invité ; 06/08/2010 à 12h55.

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

Discussions similaires

  1. Recopier des données d'une plage vers l'autre, problèmes rencontrés?
    Par nath-0-0 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/06/2010, 15h59
  2. Recopier des données
    Par Décibel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/07/2007, 10h20
  3. Réponses: 4
    Dernier message: 11/09/2006, 13h47
  4. [VBA Excel] Un problème de recopie des données de l'userform
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 14h48
  5. recopi des données d'une table dans une autre
    Par moicats dans le forum Access
    Réponses: 5
    Dernier message: 06/04/2006, 21h12

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