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 :

Copier Coller spécial


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Par défaut Copier Coller spécial
    bonjour,,

    Je souhaiterai résumer les productions des différentes feuilles tel que "POT_S" par date qui se situe en L1C1 sur la feuille "résumé et Par produit

    je suis donc parti avec une macro comme ci dessous. Qui se déroulait plutot bien, par contre en arrivant sur le produit "coupelle" de la feuille "COUP"
    en voulant entre la ligne 17 à 22.
    La macro m'écrit 3fois la meme chose une fois sur 2..... En supprimant la limite mise en "a" je remarque que ma boucle ne se termine jamais....

    Pouvez-vous corriger ma macro??? La macro ci dessous à pour but de copier les données en "POT_S" et "COUP" pour les coller dans les tableaux atitrés au chaque en feuille "résumé"

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Max = 3
    Do While Sheets("POT_S").Cells(Max, 1) <> ""
    Max = Max + 1
    Loop
     
    For a = 4 To 12
    For i = 2 To Max
    'production soupe
    Boucle:
    If Sheets("résumé").Cells(a, 2) = "" Then
        If Sheets("POT_S").Cells(i, 2) = Sheets("résumé").Cells(1, 6) Then
        Sheets("résumé").Cells(a, 2) = Sheets("POT_S").Cells(i, 2)
        Sheets("résumé").Cells(a, 3) = Sheets("POT_S").Cells(i, 3)
        Sheets("résumé").Cells(a, 4) = Sheets("POT_S").Cells(i, 4)
        Sheets("résumé").Cells(a, 5) = Sheets("POT_S").Cells(i, 5)
        Sheets("résumé").Cells(a, 6) = Sheets("POT_S").Cells(i, 6)
        Sheets("résumé").Cells(a, 7) = Sheets("POT_S").Cells(i, 7)
        Sheets("résumé").Cells(a, 8) = Sheets("POT_S").Cells(i, 8)
        Sheets("résumé").Cells(a, 9) = Sheets("POT_S").Cells(i, 9)
        Sheets("résumé").Cells(a, 10) = Sheets("POT_S").Cells(i, 10)
        Sheets("résumé").Cells(a, 11) = Sheets("POT_S").Cells(i, 13)
        Sheets("résumé").Cells(a, 12) = Sheets("POT_S").Cells(i, 16)
        Sheets("résumé").Cells(a, 13) = Sheets("POT_S").Cells(i, 19)
        Sheets("résumé").Cells(a, 14) = Sheets("POT_S").Cells(i, 11)
        Sheets("résumé").Cells(a, 15) = Sheets("POT_S").Cells(i, 12)
        Sheets("résumé").Cells(a, 16) = Sheets("POT_S").Cells(i, 14)
        Sheets("résumé").Cells(a, 17) = Sheets("POT_S").Cells(i, 15)
        Sheets("résumé").Cells(a, 18) = Sheets("POT_S").Cells(i, 17)
        Sheets("résumé").Cells(a, 19) = Sheets("POT_S").Cells(i, 18)
        End If
     
    Else:
    a = a + 1
    GoTo Boucle
    End If
    Next i
    Next a
     
    'production coupelle
    Max = 3
    Do While Sheets("POT_S").Cells(Max, 1) <> ""
    Max = Max + 1
    Loop
     
    For a = 17 To 22
    For i = 2 To Max
     
    Boucle2:
    If Sheets("résumé").Cells(a, 2) = "" Then
        If Sheets("coup").Cells(i, 2) = Sheets("résumé").Cells(1, 6) Then
        Sheets("résumé").Cells(a, 2) = Sheets("coup").Cells(i, 2)
        Sheets("résumé").Cells(a, 3) = Sheets("coup").Cells(i, 3)
        Sheets("résumé").Cells(a, 4) = Sheets("coup").Cells(i, 4)
        Sheets("résumé").Cells(a, 5) = Sheets("coup").Cells(i, 5)
        Sheets("résumé").Cells(a, 6) = Sheets("coup").Cells(i, 6)
        Sheets("résumé").Cells(a, 7) = Sheets("coup").Cells(i, 7)
        Sheets("résumé").Cells(a, 8) = Sheets("coup").Cells(i, 8)
        Sheets("résumé").Cells(a, 9) = Sheets("coup").Cells(i, 9)
        Sheets("résumé").Cells(a, 10) = Sheets("coup").Cells(i, 10)
        Sheets("résumé").Cells(a, 11) = Sheets("coup").Cells(i, 13)
        Sheets("résumé").Cells(a, 12) = Sheets("coup").Cells(i, 16)
        Sheets("résumé").Cells(a, 13) = Sheets("coup").Cells(i, 19)
        Sheets("résumé").Cells(a, 14) = Sheets("coup").Cells(i, 11)
        Sheets("résumé").Cells(a, 15) = Sheets("coup").Cells(i, 12)
        Sheets("résumé").Cells(a, 16) = Sheets("coup").Cells(i, 14)
        Sheets("résumé").Cells(a, 17) = Sheets("coup").Cells(i, 15)
        Sheets("résumé").Cells(a, 18) = Sheets("coup").Cells(i, 17)
        Sheets("résumé").Cells(a, 19) = Sheets("coup").Cells(i, 18)
        End If
     
    Else:
    a = a + 1
    GoTo Boucle2
    End If
    Next i
    Next a
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut copier coller special
    bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'production coupelle
    Max = 3
    Do While Sheets("POT_S").Cells(Max, 1) <> ""
    ne serait-ce pas les parties rouges le problème ?

    cordialement,

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Par défaut
    J'ai modifié ma bourde mais rien à faire....

  4. #4
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut copier coller special
    Bonjour,

    Regarde si le fichier joint peut convenir sauvegarde version 2003 et 2013 pour le cas où.

    Avec ce code, les différents tableaux doivent comporter un nombre de lignes identiques et être régulièrement espacés. Voir quel peut être le nombre de lignes maxi.
    Les cellules de la 1ere colonne feuille résumé sont au format date.

    On doit pouvoir faire plus performant mais cela est l'affaire de plus doué que moi.
    Notamment, ne pas fixer un nombre de lignes figés aux tableaux.

    cordialement
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Je pense que dans ton code le problème est là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Boucle:
    If Sheets("résumé").Cells(a, 2) = "" Then
    ...
     
    Else:
     
    GoTo Boucle
    Ton "Boucle:" et ton Goto Boucle => il faut les enlever. Car, ton i ne s'incrémente pas. En effet, ton GoTo est avant le "next i" et du coup ton i ne s'icrémente jamais et tu tourne en rond

    C'est pareil pour ta boucle2.

    Et pour info, les 2 points (":") après le Else ne servent en rien en VBA
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Alimentation

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Par défaut
    Citation Envoyé par nibledispo Voir le message
    Bonjour,

    Regarde si le fichier joint peut convenir sauvegarde version 2003 et 2013 pour le cas où.


    cordialement
    merci bien, j'ai essayé de transférer la macro sur ma feuille, et mettre les tableaux manquant à partir de la ligne 69 ou 70 le programme fait mouliné mon pc et mets en échec et redemarre excel....

  7. #7
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut copier coller special
    Bonsoir Antos 579 et illight,

    Antos 579 : Est-ce que le code fourni sans ajouts de ta part tournait rond chez toi. Sur mon ordinateur c'ést bien le cas.
    Peux-tu joindre ton fichier compléter de tes apports pour que je fasse des essais ?

    illight : Si tu reviens sur cette discussion, peux tu regarder ma proposition de code et proposer des améliorations tant pour le questionneur que pour moi- même.

    Cordialement,

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-2007] Tri + Copier / Coller un peu spécial
    Par mikeactuaire dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/04/2012, 17h55
  3. Copier coller spécial
    Par Lost_in_VBA dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/07/2011, 12h12
  4. Excel vers powerpoint : copier/coller spécial
    Par fabiencal dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/07/2009, 23h31
  5. [VBA-E]Excel vers powerpoint : copier/coller spécial
    Par illight dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/09/2006, 12h41

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