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 ''424'' VBA Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut Erreur ''424'' VBA Excel
    Bonjour à tous,
    J'ai actuellement une erreur ( erreur "424")que je n'arrive pas à résoudre. Je cherche à copier une partie de mon tableau sur un autre fichier.
    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
     
    Sub direction()
    ' déclaration variables
    Dim nbligne As Integer
    nbligne = 9
    Dim case_copie As Integer
    case_copie = 10
    Dim i As Integer
    Dim j As Integer
     
     
    'Nombre de ligne dans tableau 
    Do While (Workbooks("Fichier_Commun_ordo_qs_finition_Test.xlsm").Sheets("Feuil1").Cells(case_copie, 2).Value <> "")
     
     
                nbligne = nbligne + 1
               case_copie = case_copie + 1
        Loop
      ' Copier les case 42 à 46
      j=1
       i = 42
       Do While (i <> 46)
       Range(Cells(9, i), Cells(nbligne, i)).Value.Copy Destination:=Workbooks("direction2.xls").Sheets("Direction").Cells(9, j)
                i = i + 1
                j = j + 1
         Loop
     
    End sub
    le problème se situe au niveau de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(9, i), Cells(nbligne, i)).Value.Copy Destination:=Workbooks("direction2.xls").Sheets("Direction").Cells(9, j)
    j'ai remarqué qu'en enlevant le ".Value" dans cette ligne l'erreur disparaissait, cependant cela prend en compte la formule de la cellule et non la valeur de la cellule.

    Pouvez-vous m'aiguiller ? merci d'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
    Pour la prochaine fois, pense à indiquer le message d'erreur.
    Quasiment personne ne connait les codes d'erreur par chœur et il est difficile d'en trouver la liste.

    Citation Envoyé par SAP_Excel Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(9, i), Cells(nbligne, i)).Value.Copy Destination:=Workbooks("direction2.xls").Sheets("Direction").Cells(9, j)
    j'ai remarqué qu'en enlevant le ".Value" dans cette ligne l'erreur disparaissait,
    Copy est une méthode qui s'applique à l'objet Range.
    Elle ne peut pas s'appliquer à une valeur. Une valeur ne peut pas avoir de membre (ni méthode, ni propriété).

    cependant cela prend en compte la formule de la cellule et non la valeur de la cellule.
    Classiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range(Cells(9, i), Cells(nbligne, i)).Copy 
    Workbooks("direction2.xls").Sheets("Direction").Cells(9, j).PasteSpecial(xlPasteValues)
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Workbooks("direction2.xls").Sheets("Direction")
       .Range(.Cells(9, j), .Cells(nbligne, j)).Value = Range(Cells(9, i), Cells(nbligne, i)).Value
    End With

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut
    Merci Menhir pour ta réponse rapide.
    Promis la prochaine fois j'indique le message d'erreur
    Je ne maitrise pas encore tous les concepts en VBA.
    Je comprends comment fonctionne ton premier code mais pour le deuxième je ne comprends pas la subtilité ( la création d'une boucle With)

  4. #4
    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 SAP_Excel Voir le message
    pour le deuxième je ne comprends pas la subtilité ( la création d'une boucle With)
    With n'est pas une boucle (ne pas confondre avec While). C'est juste la mise en commun d'un objet pour éviter d'avoir à le répéter plusieurs fois dans une partie de code.
    Lire ça : https://msdn.microsoft.com/fr-fr/VBA...with-statement

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 51
    Par défaut
    Merci pour la précision !! Du coup je passe la discussion en mode " Résolu"

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

Discussions similaires

  1. Erreur dans vba excel
    Par rihab92 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/02/2015, 11h36
  2. Erreur Automation VBA excel
    Par icpa38 dans le forum Général VBA
    Réponses: 1
    Dernier message: 05/06/2012, 15h53
  3. [XL-2007] erreur macro vba excel 2007
    Par yan14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/02/2012, 23h04
  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' vba Excel
    Par mrah1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2009, 16h56

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