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 :

Problème (surement simple) de code


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut Problème (surement simple) de code
    Bonjour,

    Qu'est ce qui ne va pas dans cette ligne de code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ws1.Range(Cells(1, 1), Cells(DerL1 - 1, 1)).Copy ws4.Range("A:A")
    J'ai un fichier qui comprend 20000 lignes
    Je cherche à copier les cellules A2 à A19999 de la feuille 1 sur les cellules A1 à A19998 de la feuille 2

    Cordialement

    Vincent

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    J'essaierais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ws1.Range(Cells(2, 1), Cells(DerL1 - 1, 1)).Copy ws4.Range("A1")
    si DerL1=20000

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      'Recherche de la dernière ligne renseignée dans la colonne A de la feuille 1
        DerL1 = ws1.Range("A" & ws1.Rows.Count).End(xlUp).Row
     
        'Recopie de la colonne A2 à Ax-1 de la feuille 1 dans la feuille 4
        ws1.Range(Cells(2, 1), Cells(DerL1 - 1, 1)).Copy ws4.Range("A1")
    Non ça ne fonctionne pas non plus ...

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Qu'est-ce que tu obtiens ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    J'obtiens :

    Erreur d'exécution '1004' :

    La méthode 'Range' de l'objet '_Worksheet' a échoué
    Une idée ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Data Analyste Senior
    Inscrit en
    Août 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Analyste Senior
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2010
    Messages : 53
    Par défaut
    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ws1.Range(Cells(2, 1), Cells(DerL1 - 1, 1)).Copy 
    ws4.Range("A1").Select
    Selection.Paste
    Si ça ne marche pas, peux-tu nous donner la valeur de DerL1 au moment de la sélection ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    9a ne fonctionne pas. Toujours la même erreur.

    Comment puis je trouver la valeur de DerL1 au moment de la sélection ?

    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
    'Déclaration des variables
        Dim ws0 As Worksheet, ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, ws4 As Worksheet
        Const PremL1 = 1 'Première ligne de données dans la feuille 1
        Const PremC1 = 1 'Première colonne de données dans la feuille 1
        Dim DerL1 As Long 'Dernière ligne de données dans la feuille 1
        Dim DerC1 As Long 'Dernière colonne de données dans la feuille 1
        Dim Col As Long
        Dim Lig As Long
        Dim Lign As Long
     
        'Attribution de valeurs
        Set ws0 = Worksheets("Macro")
        Set ws1 = Worksheets("Données brutes") 'L'objet Feuille 1 est attribué à la variable ws1
        Set ws2 = Worksheets("Soustraction") 'L'objet Feuille 2 est attribué à la variable ws2
        Set ws3 = Worksheets("Normalisation") 'L'objet Feuille 3 est attribué à la variable ws3
        Set ws4 = Worksheets("Dérivée")
     
        'Recherche de la dernière ligne renseignée dans la colonne A de la feuille 1
        DerL1 = ws1.Range("A" & ws1.Rows.Count).End(xlUp).Row
        'Recherche de la dernière colonne renseignée dans la ligne 1 de la feuille 1
        DerC1 = ws1.Cells(1, ws1.Columns.Count).End(xlToLeft).Column
     
        'Recopie de la colonne A de la feuille 1 dans les feuilles 2 et 3
        ws1.Range("A:A").Copy ws2.Range("A:A")
        ws1.Range("A:A").Copy ws3.Range("A:A")
        'ws1.Range("A:A").Copy ws4.Range("A:A")
        'Recopie de la colonne A2 à Ax-1 de la feuille 1 dans la feuille 4
        Sheets("Données brutes").Range(Cells(2, 1), Cells(DerL1 - 1, 1)).Copy
        Sheets("Dérivée").Range("A1").Select
        Selection.Paste
    Et le document possède 1738 lignes

  8. #8
    Membre éprouvé
    Homme Profil pro
    Data Analyste Senior
    Inscrit en
    Août 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Analyste Senior
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2010
    Messages : 53
    Par défaut
    pour afficher tes bornes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'Recherche de la dernière ligne renseignée dans la colonne A de la feuille 1
    DerL1 = ws1.Range("A" & ws1.Rows.Count).End(xlUp).Row
    'Recherche de la dernière colonne renseignée dans la ligne 1 de la feuille 1
    DerC1 = ws1.Cells(1, ws1.Columns.Count).End(xlToLeft).Column
    ' Affichage
    Msgbox "DerL1 = " & DerL1 & " - " & "DerC1 = " & DerC1

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Alors DerL1= 1738
    DerC1=1

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ws1.Range(ws1.Cells(2, 1), ws1.Cells(DerL1 - 1, 1)).Copy ws4.Range("A1")
    J'ai honte de ne pas y avoir pensé plus tôt !

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Je regarde demain matin au boulot et je te dis si ta proposition fonctionne correctement


    Bonne soirée

    (PS Daniel, je sais que je suis "Hors la loi" vis à vis du forum et que j'abuse de ta gentillesse, mais j'aurai encore besoin d'un coup de main sur un problème que tu as résolu aujourd'hui, j'ai rajouté un message dans le poste si tu pouvais jeter un coup d'oeil sur ce poste je t'en serais très reconnaissant) :

    http://www.developpez.net/forums/d11...chiers-textes/

    Encore un énorme merci)

    Cordialement

    Vincent

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Bonjour,

    Merci beaucoup Daniel, le code fonctionne parfaitement !

    Cordialement

    Vincent

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

Discussions similaires

  1. Problème d'exécution de code d'un simple bouton
    Par penchu dans le forum ASP.NET
    Réponses: 11
    Dernier message: 23/01/2012, 18h21
  2. [Debugger] Problème de traçage de code
    Par vinny_the_true dans le forum MFC
    Réponses: 2
    Dernier message: 19/12/2005, 00h21
  3. [VB.net]problème de conversion de code c# vers VB.net
    Par cladsam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/10/2005, 14h07
  4. Calcul simple pour code couleur
    Par Boumeur dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 16/04/2005, 10h51
  5. [Débutant] Problème servlet simple
    Par davycrocket dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 30/06/2004, 09h24

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