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 '1004' vba Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut erreur '1004' vba Excel
    Bonjour,

    C'est encore une erreur '1004'. J'ai tourné en rond sur cette erreur qui doit être le lot des débutants.

    Je voudrait recopier des plages de cellules d'une feuille "origine" vers une autre feuille "destination" suivant un ordre définie par la série de chiffre de 1 à p dans une plage de la feuille "origine".

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sub RecopieCellule()
     
     
    Dim p
    Dim nbligne As Integer
    Dim numligne As Integer
    Dim numlignedest As Integer
    Dim priorité As Range
     
        Set priorité = Worksheets("origine").Range("A1:A100")
        nbligne = WorksheetFunction.Max(priorité)
        numlignedest = 8
        Sheets("origine").Activate
     
        For p = 1 To nbligne
        priorité.Cells.Find(What:=p, LookIn:=xlValues).Activate
        numligne = ActiveCell.Row
        With Sheets("origine")
        Sheets("destination").Cells(numlignedest, 4).Value = ActiveCell.Offset(0, 1).Value
        Sheets("destination").Range(Cells(numlignedest, 1), Cells(numlignedest, 3)).Value = .Range(Cells(numligne, 6), Cells(numligne, 8)).Value
        Sheets("destination").Range(Cells(numlignedest, 5), Cells(numlignedest, 7)).Value = .Range(Cells(numligne, 10), Cells(numligne, 12)).Value
        numlignedest = numlignedest + 1
        End With
        Next
     
    End Sub
    Ca bugg à la ligne

    Sheets("destination").Range(Cells(numlignedest, 1), Cells(numlignedest, 3)).Value = .Range(Cells(numligne, 6), Cells(numligne, 8)).Value

    avec la fameuse erreur d'exécution '1004'
    erreur définie par l'application ou par l'objet

    a l'aide!
    Merci

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Le problème pourrait bien venir de l'usage sans attachement des Cells. Tu pourrais essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim wshO as Excel.worksheet, wshD as Excel.Worksheet
    ...
    Set wshO = Application.Thisworkbook.Worksheets("Origine")
    Set wshD = Application.Thisworkbook.Worksheets("destination")
     
    ...
    wshD.Range(.Cells(...),.Cells(...)).value = wshO.Range(.Cells(...),.Cells(...)).Value
     
    ...
    Set wshO = Nothing
    Set wshD = Nothing
    PGZ

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Re à pgz
    j'ai modifié mon code comme suit
    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
    Sub RecopieCellule()
     
    Dim wshO As Excel.Worksheet, wshD As Excel.Worksheet
     
    Set wshO = Application.ThisWorkbook.Worksheets("Origine")
    Set wshD = Application.ThisWorkbook.Worksheets("destination")
     
    Dim p
    Dim nbligne As Integer
    Dim numligne As Integer
    Dim numlignedest As Integer
    Dim priorité As Range
     
        Set priorité = wshO.Range("A1:A100")
        nbligne = WorksheetFunction.Max(priorité)
        numlignedest = 8
        wshO.Activate
     
        For p = 1 To nbligne
        priorité.Cells.Find(What:=p, LookIn:=xlValues).Activate
        numligne = ActiveCell.Row
            With wshO
            wshD.Cells(numlignedest, 4).Value = ActiveCell.Offset(0, 1).Value
            wshD.Range(Cells(numlignedest, 1), Cells(numlignedest, 3)).Value = .Range(Cells(numligne, 6), Cells(numligne, 8)).Value
            wshD.Range(Cells(numlignedest, 5), Cells(numlignedest, 7)).Value = .Range(Cells(numligne, 10), Cells(numligne, 12)).Value
            numlignedest = numlignedest + 1
     
            End With
        Next
     
        Set wshO = Nothing
        Set wshD = Nothing
     
    End Sub
    j'ai maintenant une autre erreur '1004'
    la méthode 'range' de l'objet 'worksheet' à échoué

    ??

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Tu n'as pas tout à fait appliqué ce que je te suggèrais. Essaie
    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
    Sub RecopieCellule()
     
    Dim wshO As Excel.Worksheet, wshD As Excel.Worksheet
     
    Set wshO = Application.ThisWorkbook.Worksheets("Origine")
    Set wshD = Application.ThisWorkbook.Worksheets("destination")
     
    Dim p
    Dim nbligne As Integer
    Dim numligne As Integer
    Dim numlignedest As Integer
    Dim priorité As Range
     
        Set priorité = wshO.Range("A1:A100")
        nbligne = WorksheetFunction.Max(priorité)
        numlignedest = 8
        wshO.Activate
     
        For p = 1 To nbligne
        priorité.Cells.Find(What:=p, LookIn:=xlValues).Activate
        numligne = ActiveCell.Row
            With wshO
            wshD.Cells(numlignedest, 4).Value = ActiveCell.Offset(0, 1).Value
            wshD.Range(wshD.Cells(numlignedest, 1), wshD.Cells(numlignedest, 3)).Value = .Range(.Cells(numligne, 6), .Cells(numligne, 8)).Value
            wshD.Range(wshD.Cells(numlignedest, 5), wshD.Cells(numlignedest, 7)).Value = .Range(.Cells(numligne, 10), .Cells(numligne, 12)).Value
            numlignedest = numlignedest + 1
     
            End With
        Next
     
        Set wshO = Nothing
        Set wshD = Nothing
     
    End Sub
    Je ne suis pas sûr d'avoir tout vu.

    PGZ

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Cà marche!
    Ca y est. Merci pgz ! je n'aurais pas trouvé tout seul; Que le chemin est long...

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

Discussions similaires

  1. [XL-2010] erreur '1004' vba Excel
    Par chewi90 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/03/2015, 10h22
  2. [XL-2007] erreur d'execution 1004 VBA excel
    Par leheryboriziny dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/11/2012, 19h24
  3. [XL-2003] Erreur '1004' : feuille excel
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/04/2010, 16h27
  4. [E-07] erreur '1004' vba Excel (suite)
    Par mrah1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2009, 17h48
  5. erreur 1004 macro excel
    Par lerab51 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 21h27

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