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 :

erreur définie par l'application ou l'objet [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 108
    Points : 78
    Points
    78
    Par défaut erreur définie par l'application ou l'objet
    Bonjour,

    Je fais la copie d'une plage d'un classeur à l'autre. Je dois utiliser la fonction collage spécial.
    Voici le 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
    Sub add2perso()
    Dim Cible As Workbook, Source As Workbook
    Dim LastRow As Long, Lastline As Long
    Dim Plage As Range
        Set Source = ThisWorkbook
        LastRow = Workbooks("personnel.xlsx").Worksheets("salaires").Range("A" & Rows.Count).End(xlUp).Row
        Lastline = Source.Worksheets("Stage_terminé").Range("V" & Rows.Count).End(xlUp).Row
        With Source.Worksheets("Stage_terminé")
            Set Plage = .Range("V2:V" & Lastline)
        End With
        Plage.Copy
        Workbooks("personnel.xlsx").Worksheets("salaires").Activate
        Range("A" & LastRow + 1).Select
        'Application.CutCopyMode = False
        ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=True, Transpose:=False
        ThisWorkbook.Save
    J'ai "erreur 1004 définie par l'application ou l'objet" sur la ligne 15/16.

    Je ne comprends pas trop, via l'enregistreur j'ai cette syntaxe. Si je fais un copier/collage spécial sans vba, cela fonctionne.

    Qu'est-ce qui manque ?

    Cordialement,

    Fred

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Essayez avec votre code modifié (ajout et modification signalés par des ///)
    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
    Sub add2perso()
    Dim Cible As Workbook, Source As Workbook
    Dim LastRow As Long, Lastline As Long
    Dim Plage As Range
        Set Source = ThisWorkbook
        LastRow = Workbooks("personnel.xlsx").Worksheets("salaires").Range("A" & Rows.Count).End(xlUp).Row
        Lastline = Source.Worksheets("Stage_terminé").Range("V" & Rows.Count).End(xlUp).Row
        With Source.Worksheets("Stage_terminé")
            Set Plage = .Range("V2:V" & Lastline)
        End With
        Plage.Copy
     
    '/// ajout et modif
    Dim S As Worksheet
    Set S = Workbooks("personnel.xlsx").Worksheets("salaires")
    S.Range("A" & LastRow + 1).Select
        'Application.CutCopyMode = False
    S.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
    '///
     
        ThisWorkbook.Save
    End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 108
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    J'ai modifié le code comme indiqué dans votre réponse. J'ai alors une erreur sur la ligne 18, avec juste "Paste:=" surligné avec comme message d'erreur:
    erreur de compilation
    argument nommé introuvable.


    Ce qui est étonnant, c'est qu'avec le code que je vous ai fourni, je voyais bien la zone à copier sélectionnée. Ce qui n'est plus le cas avec le votre.
    Si j'utilise un paste simple, j'ai #REF qui s'affiche, je suis donc obligé d'utiliser un collage spécial.

    Si cela peut aider, je continue de chercher, je pourrais toujours au pire modifier le fichier Excel mais ça ne m'arrange pas trop.

    Cordialement,

    Fred

    A devenir fou quand on est pas un pro vba

    Voici le code qui ne me retourne aucune erreur mais qui ne copie rien !!!

    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
    Sub add2perso()
    Dim Cible As Worksheet
    Dim Source As Workbook
    Dim LastRow As Long, Lastline As Long
    Dim Plage As Range
        Set Source = ThisWorkbook
        LastRow = Workbooks("personnel.xlsx").Worksheets("salaires").Range("A" & Rows.Count).End(xlUp).Row
        Lastline = Source.Worksheets("Stage_terminé").Range("V" & Rows.Count).End(xlUp).Row
        With Source.Worksheets("Stage_terminé")
            Set Plage = .Range("V2:V" & Lastline)
        End With
        Plage.Copy
        Workbooks("personnel.xlsx").Worksheets("salaires").Activate
        Range("A" & LastRow + 1).Select
        Plage.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=True, Transpose:=False
        ThisWorkbook.Save
     
    End Sub
    Je constate que sur le fichier source la plage est sélectionnée mais pas copiée ??? Que sur le fichier source la cellule de début de copie est bien sélectionnée.

    Cela fait la même chose avec le code suggéré par PMO2017.

    Bon, bon, ce ne doit pas être grand chose mais...

    Cordialement,

    Fred

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    dans le code proposé par PMO2017, essaye de remplacer les lignes 16-17-18-19 par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S.Range("A" & LastRow + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

    sinon, dans ton code, tu fais un collage spécial de ta plage de départ... vers ta plage de départ !
    remplace tes lignes 14-15-16 par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & LastRow + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 108
    Points : 78
    Points
    78
    Par défaut 1004 erreur définie par l'application ou l'objet
    Merci pour ta réponse.
    C'est nickel.

    Cordialement,

    Frfed

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

Discussions similaires

  1. [XL-2007] Erreur d'execution 1004 - Erreur définie par l'application ou l'objet
    Par askior dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/04/2015, 11h34
  2. [XL-2003] erreur définie par l'application ou l'objet après protection feuille
    Par PPN83 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/11/2010, 10h06
  3. Réponses: 2
    Dernier message: 20/10/2009, 16h59
  4. Réponses: 2
    Dernier message: 28/10/2008, 09h30
  5. [VBA-E]erreur définie par l'application ou par l'objet
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 14h51

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