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


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut Erreur 1004
    Bonjour à tous,

    voici le code que j'ai développé:


    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 alim_table()
     
    y = 2
    x = 7
    Do Until y = 40
        x = 7
        Do Until x = 58
        If Cells(x, y) = "x" Then
        Workbooks.Open Filename:=Range("c63") & "\DT" & "_" & Cells(x, 1) & "_" & Cells(5, y) & ".xls"
     
            Sheets("Temps").Select
            l = Cells(7, 21).Value
     
            x = 10
            Do Until x = 30
            Sheets("Temps").Select
            If Cells(x, 21).Value <> "vide" Then
     
            Sheets("Temps").Select
            c = Cells(x, 21).Value + 3
            t = Cells(x, 18).Value
     
     
            ThisWorkbook.Activate
            Sheets("base").Select
            Cells(l + 3, c).Select
            ActiveCell.Value = t
     
            x = x + 1
            Else
            x = x + 1
            End If
     
            Loop
     
        ActiveWorkbook.Close
        Cells(x, y + 1) = "x"
        Else
        End If
        x = x + 1
        Loop
     
    y = y + 2
    Loop
     
    End Sub

    Une erreur 1004 apparaît au niveau "Cells(l + 3, c).Select"
    Enfait, il s'agit d'alimenter une base de donnée à partir de données situées sur un fichier excel externe....
    Pouvez vous m'aider?

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    et quel est la valeur de c et de l à ce moment là?

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    l=cells(7,21).value mais cette cellule provient de l'autre classeur!!

    Meme chose pour c

    c=cells(x,21).value+3, mais cette cellule provient de la feuille temps de l'autre classeur....

    Je pense également que le probleme vient de la...

    Comment faire?

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    dans un premier temp, simplement t'assurer que les valeurs que tu récupére ne sortent pas du champs d'action

    65536 pour l
    et 255 pour c

    aussi que tu ne récupere pas un champ de type texte.

  5. #5
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    bonjour

    pour les valeurs de i et de c, toi seul peut le dire

    quand tu as l'erreur, tu fais deboggage et quand tu passes le pointeur souris sur les variables, il te donne la valeur de la variable

  6. #6
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Bah justement, quand je passe dessus..rien ne s'affiche.....Désolé je suis un noob

  7. #7
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    juste avant la ligne en question met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox l+3 & vbcr & c

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 288
    Par défaut
    Citation Envoyé par bykeman Voir le message
    Bonjour à tous,

    voici le code que j'ai développé:

    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 alim_table()
     
    y = 2
    x = 7
    Do Until y = 40
        x = 7
        Do Until x = 58
        If Cells(x, y) = "x" Then
        Workbooks.Open Filename:=Range("c63") & "\DT" & "_" & Cells(x, 1) & "_" & Cells(5, y) & ".xls"
     
            Sheets("Temps").Select
            l = Cells(7, 21).Value
     
            x = 10
            Do Until x = 30
            Sheets("Temps").Select
            If Cells(x, 21).Value <> "vide" Then
     
            Sheets("Temps").Select
            c = Cells(x, 21).Value + 3
            t = Cells(x, 18).Value
     
     
            ThisWorkbook.Activate
            Sheets("base").Select
            Cells(l + 3, c).Select
            ActiveCell.Value = t
     
            x = x + 1
            Else
            x = x + 1
            End If
     
            Loop
     
        ActiveWorkbook.Close
        Cells(x, y + 1) = "x"
        Else
        End If
        x = x + 1
        Loop
     
    y = y + 2
    Loop
     
    End Sub

    Une erreur 1004 apparaît au niveau "Cells(l + 3, c).Select"
    Enfait, il s'agit d'alimenter une base de donnée à partir de données situées sur un fichier excel externe....
    Pouvez vous m'aider?
    j'ai cherhcé a savoir a quoi correspond l'erreur 1004 :
    Symptômes
    Lorsque vous essayez de copier et coller par programmation des données filtrées dans un classeur Microsoft Office Excel 2003, l'un des messages d'erreur suivants s'affiche :
    Erreur d'exécution 1004 : La méthode Paste de la classe Worksheet a échoué.
    Erreur d'exécution 1004 : La méthode Copy de la classe Range a échoué.
    Vous recevez l'un de ces messages d'erreur même si les données sont collées dans le classeur.

    Remarque Ce problème ne se produit pas lorsque les données ne sont pas filtrées.
    Cause
    Ce problème peut se produire lorsque l'une des conditions suivantes est remplie : • La macro Microsoft Visual Basic pour Applications (VBA) copie et colle une ligne entière dans un classeur Excel 2003.
    • La macro Microsoft VBA copie et colle une plage de 2 516 lignes ou plus dans un classeur Excel 2003.
    Contournement
    Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie explicite ou implicite. Ceci inclut, de manière non limitative, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.

    Pour contourner ce problème si votre macro VBA copie et colle une ligne entière, modifiez le code de la macro pour copier uniquement la section de la ligne contenant des données. Par exemple, utilisez un code de macro VBA semblable au suivant :Range(Range("A" & ActiveCell.Row), Range("IV" & ActiveCell.Row).End(xlToLeft)).Select
    Pour contourner ce problème si votre macro VBA copie et colle une plage de 2 516 lignes ou plus, modifiez le code de la macro pour s'exécuter en boucle pour copier et coller des plages de données plus réduites jusqu'à ce que toute la plage souhaitée soit copiée et collée.
    ce qui me parait etrange c'est que je n'ai pas vu de copier/coller dans ton code (je ne l'ai peut etre pas vu?)

    je sais pas si ca va t'aider...

    sinon ajoute des msgbox(l) et msgbox(c) pour connaitre leur valeur... c'est peut etre une valeur qui ne peut pas correspondre a un numero de ligne ou de colonne?

Discussions similaires

  1. pb Range: erreur 1004
    Par charlie105 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2006, 18h10
  2. [VB-E] Erreur 1004 dans une boucle For
    Par lycaon dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/11/2006, 23h41
  3. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 11h50
  4. [Excel] Erreur 1004 avec un search
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2005, 14h54
  5. Insérer une image : Erreur 1004
    Par dp_favresa dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/10/2005, 15h01

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