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 :

Problème VBA copier/coller avec cellule Fusionnée.


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut Problème VBA copier/coller avec cellule Fusionnée.
    Bonjour, je suis débutant en VBA,
    j'ai quelques soucis pour faire une macro qui permet de copier/coller une ligne mais de la recoller dans une ligne ou une cellule fusionnée y passe.
    Je vais expliquer mon problème le plus simplement possible, par image :)

    Comme vous pouvez le voir sur la photo ci-dessous, j'utilise déjà une macro me permettant de dupliquer le modèle se trouvant Ligne 4:5


    Nom : pb1.png
Affichages : 5684
Taille : 271,8 Ko

    Or dans ce modèle j'aimerais pouvoir ajouter une ligne comme sur l'image qui suit. "tout en gardant la fusion de cellule et l'aspect visuel".

    Nom : pb2.png
Affichages : 4815
Taille : 224,8 Ko


    Or le problème et qu'à cause de la fusion de cellule pour la description du défaut, on dirait que la macro n'arrive pas à si retrouver et du coup elle duplique le modèle en étant vide.
    La macro via l'enregistrement que j'avais fait été:


    - Selection Cellule [A4:D5]
    - Selection Row "5"
    - Insertion ligne
    - Copier case [J6:K6]
    - Coller dans [J5:K5]
    - Supprimer contenu de [J6:K6]

    Perso, je trouve ce cycle totalement débile mais je ne vois pas comment le faire autrement, c'est pour cela que je vous sollicite.

    En vous remerciant, et vous souhaitant une agréable fin de matinée 8-)

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 438
    Par défaut MergeArea
    Principe de travail: à l'aide de la fonction MergeArea, détecter les plages fusionnées, les défusionner, ajouter une ligne, les refusionner avec ajout d'une ligne.
    En attaché un exemple.
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Merci pour ton aide, je vais voir comment integrer cela dans mon code.

    Bonne journée

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    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 ajout_ligne_quantite()
    '
    ' Macro2 Macro
    '
     
    '
        Range("A" & (ActiveCell.Row), "D" & (ActiveCell.Row)).Select
        Application.WindowState = xlMaximized
        Selection.UnMerge
        Range("L" & (ActiveCell.Row), "M" & (ActiveCell.Row)).Select
        Selection.UnMerge
        Rows((ActiveCell.Row) - 1).Select
        Rows((ActiveCell.Row) + 1).Select
        LigneActuel = ActiveCell.Row
        Rows((ActiveCell.Row) + 1).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("A" & (LigneActuel), "D" & (LigneActuel) + 3).Select
        Selection.Merge
        Range("L" & (ActiveCell.Row), "M" & (ActiveCell.Row) + 3).Select
        Selection.Merge
    End Sub
    j'ai réussit a faire un truc mais pour le fusionnage à la fin j'arrive pas a faire quelque chose qui suit le total de ligne ajouté.
    en gros ça donne ça au bout de plusieurs ajout de ligne. J'ai pensé a mettre un compteur afin de suivre le nombre de ligne ajouté et de récupérer la valeur pour pouvoir faire le saut vers la selection, mais je ne sais pas comment l'intégrer.

    Nom : pb3.png
Affichages : 4965
Taille : 199,3 Ko

    Les cases en rouge ne sont pas fusionner.

  5. #5
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Pourtant c'est pas compliqué....
    Quand tu agrandi ta plage avec les couleurs et tout a la fin tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A4:D10").Merge 'ou range est ta plage.....

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Je suis d'accord, ça c'est pas compliqué ce que tu as mit. Mais ce que je voudrais c'est que peu importe ou je clique dans ce tableau ci dessous par exemple je puisse ajouté une ligne dans la colone quantité tout en guardant la fusion des colones déscription et quantité total...
    Genre si je clique sur la case 12-13 et que je clique sur la macro ajout ligne quantité, je veux qu'une ligne entre 12 et 13 s'ajoute mais en guardant la fusion de description et le total ...

    Nom : pb4.png
Affichages : 4662
Taille : 201,4 Ko

  7. #7
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Je comprends ce que tu veux faire mais je ne comprends pas le problème que tu rencontre...

    Ceci pour exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveCell.Resize(2, 4).Merge
        ActiveCell.Offset(ColumnOffset:=3).Resize(2, 2).Merge
    Tu te met sur une cellule en colonne A et tu verra que ça fusionne les 4 premiere colonnes sur 2 lignes puis 2 autres colonnes sur deux lignes...

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Enfaite le problème que j'ai c'est que lorsque j'ai rejouté une ligne pour une catégorie à 3 ligne "quantités" j'arrive a remerge les cellule mais au delà de 3 j'arrive pas a lui dire de prendre la position basse et la position haute et de remerge. ça me donne ça

    mes étapes sont :

    - [A:D] unmerge
    - [L:M] unmerger
    - (ActiveCell.row) -1 'pour monter d'une ligne et déselectionner le tout.
    - (ActiveCell.row) +2 'pour descendre de deux ligne dans la partie verte "déscription"
    - Insertion ligne
    - et la j'aimerais remerge les 3lignes dans la colone déscription et quantité totale, le seul soucis je veux pour une infinité d'ajout de ligne pas seulement pour une.

    Je suis désoler mais la je ne sais pas comme l'expliquer autrement.


    Nom : pb3.png
Affichages : 4589
Taille : 199,3 Ko

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Et voilà ce que j'aimerais pouvoir obtenir au final en liberté de mise en forme.


    Nom : pb5.png
Affichages : 4736
Taille : 202,1 Ko

  10. #10
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Moi vendredi + changement d'heure = cerf volant

    Explique moi un truc que je ne comprends pas, tes groupement de lignes vertes et blanche ils sont toujours par paquets de combien ? 2, 3, 4 ,4, variable ?

    Edit : Ok donc variable
    Et qu'est-ce qui détermine le nombre de lignes à regrouper ensemble alors ?

  11. #11
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Ahaha pas de soucis, Vendredi weekend incoming, vacance pour les étudiants ...

    Enfaite tu pars de la base que tu as 2 ligne qui forme 1 vertes 1blanche et 2 quantité "Orange"
    et lorsque tu ajoute une ligne "Orange" tu dois refaire le merging du vert et du blanc.
    Alors je pense que c'est le fait de rajouter une ligne qui sera la chose qui détermine le merging.
    Et perso, je vais pas te mentir je me suis perdu mentalement dans le programme X)
    Je sais plus trop ou j'en suis. j'ai tout sauf le merging finale. "je crois"

  12. #12
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 438
    Par défaut Déjà fait ?!
    Mais c'est ce que faisait l'exemple donné, au détail près qu'il fallait adapter les n° des colonnes contenant les cellules fusionnées.
    Voici donc la même chose avec ces n° de colonnes adaptés.
    Fichiers attachés Fichiers attachés

  13. #13
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Merci à toi ! c'est tout a fait ça. Maintenant il me reste plus qu'à comprendre X)))
    je ne comprennais pas ta façon de programmer enfaite, c'est dû a ça je vais me pencher dessus.
    Encore merci !!

  14. #14
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    @EricDgn à un détails prêt c'est que si tu veux ajouter un nouveau bloc vierge....

    @amaury57280 comment as tu imaginé ça ?

    En fait moi c'est ça que j'arrive pas à imaginer dans ma tête !
    Au départ admettons tu à par défaut une ligne vierge (soit 1 pavé vert, deux lignes orange et un pavé blanc).
    En fonction de quel critères tu décide d'ajouter soit une ligne orange de plus dans le pavé soit un nouveau pavé ??

  15. #15
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Ahhhhhhhhhhh ! alors attends je t'explique.
    IRL:

    Tu as une machine qui te fabrique des pièces.

    Tu as un rebuts "pièces mauvaise" qui sort et qui est répertorier avec un défaut sur le filet.
    Tu marque problème filet dans le "pavet vert" la quantité dans la première cellule orange et tu as ton total avec le graphique qui se fait tout seul...
    ensuite dans la journée tu as des feuilles qui remontent a ton bureau répertoriant 300 types de rebuts et souvent avec des redondances d'où le rajouts de ligne quantité.
    Lorsque tu rencontre un autre défaut filet tu ajoute une ligne "quantité" si tu n'en as pas asser et puis tu remplis.

    Voilà enfaite à quoi ça va me servir X) je suis un fainéant I know. Mais c'est surtout que je m'entraine sur VBA parce que mes profs n'enseigne pas vraiment correctement.
    Et le problème c'est que je ne sais pas comment commencer le VBA.

  16. #16
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ok j'ai compris le process mais toujours pas dans ton classeur tel qu'il est actuellement avec un seul bouton qui du coup rajoute des lignes dans un bloc existant comment tu fait pour ajouter un nouveau bloc

    PS : Ne met pas chaque message en citation merci

  17. #17
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Pour remettre un nouveau bloc j'utilise ça :

    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 Ajout_bloc()
    '
    ' Macro7 Macro
    '
     
        'Selectionne les lignes de la cellule sélectionné, jusqu'à la limite M
     
        Range("A" & (ActiveCell.Row), "M" & (ActiveCell.Row)).Select
        Range("M" & (ActiveCell.Row)).Activate
     
        'Copie la ligne précédente
     
        Application.CutCopyMode = False
        Selection.Copy
     
        'Fait une insertion au-dessus en collant le contenu d'avant
     
        Selection.Insert Shift:=xlDown
     
        'Selectionne sur la ligne inséré les cellule de [A:K] avec les lignes actives et supprime le contenu
     
        Range("A" & (ActiveCell.Row), "K" & (ActiveCell.Row)).Select
        Application.CutCopyMode = False
        Selection.ClearContents
    End Sub

  18. #18
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Pour le code utilise la balise CODE bouton # à côté du bouton pour commentaire

    Ok tu as donc déjà ce qu'il faut.
    Parfait Tu peux tagger résolu alors

  19. #19
    Membre averti
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Décembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 25
    Par défaut
    Yep je l'avais fait ce matin celui là.

    En tout cas encore merci à vous

    Je vous souhaite un agréable weekend.

  20. #20
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Pour finir après avoir regarder vite fait le code d'@EricDgn on peux faire plus simple....

    Ton modèle de base possède deux ligne dans la partie orange donc :
    Si tu te place sur la dernière ligne orange de ton bloc et que tu fait un EntireRow.Insert tu as directement une ligne en plus
    Pas besoin de jouer avec la fusion nucléaire

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Macro VBA Copier-coller avec formatage spécial
    Par brunchinio dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2015, 02h27
  2. [XL-2010] Problème macro copier-coller des cellules dans deux feuilles Excel
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2014, 19h05
  3. [XL-2010] en vba copier coller avec une condition dans des classeurs différents
    Par will83177 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2014, 17h38
  4. [XL-2007] VBA Copier Coller vers cellules precises avec des ranges aleatoires
    Par thibault12500 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/12/2013, 16h47
  5. Problème de copier/coller avec des images
    Par Brossard56 dans le forum Word
    Réponses: 9
    Dernier message: 15/03/2011, 00h00

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