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 :

Macro copier coller erreur 1004


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Assistant Caisse Centrale
    Inscrit en
    Octobre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Assistant Caisse Centrale

    Informations forums :
    Inscription : Octobre 2018
    Messages : 12
    Par défaut Macro copier coller erreur 1004
    Bonjour à tous,
    Voilà une matinée de passée sans trouver de solution.
    J'ai une macro qui ouvre un document, copier les données et viens les coller dans un classeur.
    Mes données ne sont présentes que dans la colonne A mais sur un nombre de ligne variable.
    Quand j'ai plusieurs la macro fonctionne parfaitement mais lorsque je n'ai qu'une seule ligne contenant des données, la macro s'arrête avec le message suivant :
    ERREUR D’EXÉCUTION '1004' : vous ne pouvez pas coller cet élément ici car les zones Copier et de collage sont de taille différente.
    J'ai tenté en mettant une boucle si dans ma macro mais cela fait planter excel.
    Voici mon code :

    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
    Sub copie_colle_TXT()
    '
     
    Dim chemin As String
    Dim i As Integer
    i = 1
    nb = Sheets("Feuil1").Cells(1, 12)
    MsgBox nb
    For i = 1 To nb
    chemin = Sheets("Feuil1").Cells(i, 1)
     
     
        Workbooks.OpenText Filename:= _
            "V:\_Dossiers personnels\Cédric\Controle billets\2020\FRANCE BILLET\Fichiers_Ventes_2020\" & chemin & ".mjb", Origin:= _
            xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
            TrailingMinusNumbers:=True
     
     
        'Supprimer les lignes vides
        'Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        'Selectionner toutes les cellules pleines
        Dim MaPlage As Range
        Set MaPlage = Range("A1:A" & Range("A1").End(xlDown).Row)
        MaPlage.Select
     
     
        'Range("A1:A65000").Select
        Selection.Copy
        Windows("Analyse_FRANCE BILLET_2020_v1.xlsm").Activate
     
        ActiveSheet.Paste
        'vider le presse papier
        Application.CutCopyMode = False
     
     'Selectionner la première ligne vide
        Range("A65536").End(xlUp).Offset(1).Select
        Windows(chemin & ".mjb").Activate
        ActiveWindow.Close SaveChanges:=False
     
     
    Next
     
     
    End Sub

    Je vous remercie grandement par avance

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Remplace Range("A1").End(xlDown).Row par Cells(Rows.Count, 1).End(xlUp).Row.

    A passage, ton code aurait besoin d'un bon nettoyage : une déclaration Dim dans une boucle , des Select/Activate partout , des assignation de variables inutiles, L'utilisation de Window à la place de Workbook, le nombre de ligne max écrit en dur et obsolète, etc.

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Par défaut Erreur 1004
    Bonjour à tous. J'ai la même erreur 1004 avec ces lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Range("O12:O" & 12 + nbjTri).Copy
            Range("NbGene").ClearContents
            Range("AJ25:AJ" & 25 + nbjTri).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
    J'ai essayé toutes les combinaisons possibles pour coller et rien à faire.
    Le comble c'est que cela fonctionnait et brutalement erreur 1004 et je ne pense pas avoir fait une modif!!!!

    Au fait Menhir, j'ai résolu mon problème "Quitter une Userform". Dès que j'aurais un petit moment je répondrais à la discussion.
    Merci

  4. #4
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2015
    Messages : 28
    Par défaut Erreur 1004
    Petite précision :
    Si je fais cette manip à la main, elle fonctionne!
    C'est ce qui m'inquiète de plus l'onglet n'est pas protégé ......

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Yumat Voir le message
    Bjr à tous. J'ai la même erreur 1004 avec ces lignes :
    Quelle est la ligne désignée par le débugage ?

    Si je fais cette manip à la main, elle fonctionne!
    Il est peut probable que la sélection d'une copie survive à une effacement.
    Dans Excel, quand on fait un "copier", il faut faire le "coller" juste après parce que toute modification dans les cellules supprime l'action du "copier".

    Autre chose : il est préférable d'éviter les Select/Selection, surtout sur les cellules. C'est néfaste à plus d'un titre.

    Et il vaut toujours mieux utiliser des parenthèses dès qu'il y a risque d'ambigüité.

    Donc, ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Range("NbGene").ClearContents
            Range("O12:O" & (12 + nbjTri)).Copy
            Range("AJ25:AJ" & (25 + nbjTri)).PasteSpecial Paste:=xlPasteValues
    Reste encore à savoir ce que contient REELLEMENT la variable nbjTri.

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,
    Citation Envoyé par Yumat Voir le message
    Range("O12:O" & 12 + nbjTri).Copy
    Range("NbGene").ClearContents
    Range("AJ25:AJ" & 25 + nbjTri).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Un petit rappel de la citation précédente de Menhir, en partie applicable à ce code :
    Citation Envoyé par Menhir Voir le message
    A passage, ton code aurait besoin d'un bon nettoyage : ..., des Select/Activate partout ,
    De plus, des "Range" orphelins et un "ClearContents" à l’intérieur d'un séquence Copy / Paste montrent une architecture brouillon et désordonnée ...

    Pour copier des valeurs, il est préférable d'éviter le Presse Papier et d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CelluleCible.Resize(PlageSource.Rows.Count, PlageSource.Columns.Count).Value = PlageSource.Value

  7. #7
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2020
    Messages : 12
    Par défaut
    Bonsoir et merci à tous
    A 80 ans, on en apprend tous les jours😜😜😜
    Mon pb est résolu ! Comment et pourquoi : c'est le ClearContents à l'intérieur du copi-coller qui perturbait tout!

    N'empêche merci pour vos conseils et votre technique qui me laisse pantois. Je m'endormirais bien moins bête ce soir (je rigole mais c'est vrai).
    Une chose est sûre : lorsque mon projet, projet qui me passionne, sera terminé, je revisite rais l'ensemble en tâchant, je dis bien tâchant, d'appliquer un maximum de vos techniques. Mais cela risque d'être extrêmement difficile je le sais déjà à moins... A moins que l'un d'entre vous soit décidé à me guider???
    Qui sait???? Cela est peut-être possible non? Qu'en pensez-vous?

    Encore merci et un autre merci anticipé pour ma suggestion d'aide. Malgré mon (grand) âge je suis tjrs curieux et avide d'apprendre.

    Qui sait À bientôt Peut être.
    Amicalement et respectueusement

Discussions similaires

  1. Macro copier-coller
    Par pucelo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2008, 19h49
  2. [A-00] macro copier coller
    Par nadege46 dans le forum IHM
    Réponses: 1
    Dernier message: 14/10/2008, 21h41
  3. Macro copier/coller avec tri
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2008, 12h44
  4. Macro copier coller première cellule vide
    Par jul85 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/02/2008, 17h06
  5. Macro copier/coller colonne- insérer nouvelle colonne
    Par rembliec dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/11/2007, 16h32

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