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 :

copier coller d'une feuille à une autre


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut copier coller d'une feuille à une autre
    Salut
    j'ai une feuille1 qui contient des ligne que je veut les copier dans une autre feuille2 de façon faire recopier chaque ligne N fois dans la deuxième feuille.

    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
    Sub FiltreLulu()
    
      Dim Lig     As Long
      Dim ind     As Long
      Dim NbrLig  As Long
      Dim NumLig  As Long
      
      Sheets("feuil2").Activate ' feuille de destination
      
      
      With Sheets("feuil1")     ' feuille source'
      
      Nb_Lignes = Range("A65536").End(xlUp).Row
      For Lig = 2 To Nb_Lignes         'n° de la 1ere ligne de données'
       
          .Rows(Lig).Copy
          
          For ind = 1 To 24  'je cherche à copier 24 instance de cette ligne'
         
          Sheets("feuil2").Activate ' feuille de destination
                     
          Sheets("Feuil2").Rows(Lig).Paste  'ici pour insérer coller'
                 
          Next
                
          Lig = Lig + 1
      Next
      End With
    
    End Sub
    le probleme est que j'ai une erreur dans la ligne du collage (Paste), l'erreru dit "Propriété ou méthode non gérée par cet objet".
    est ce que vous pouvez m'aider à résoudre ce problème ? merci

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub FiltreLulu()
    Dim LastLig As Long, NewLig As Long, i As Long
     
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To LastLig
            NewLig = Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Rows(i).Copy Sheets("feuil2").Range("A" & NewLig & ": A" & NewLig + 23)
        Next
    End With
    End Sub

  3. #3
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    je viens d'essayer votre code mais rien ne ce copie sur la Feuille2, et en suivant l'exécution sa ne rentre pas dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 2 To LastLig
            NewLig = Sheets("Feuil2").Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Rows(i).Copy Sheets("feuil2").Range("A" & NewLig & ": A" & NewLig + 23)
    parce que la valeur de LastLig était toujours égale à 1 alors j'ai modifier le code comme suite


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub FiltreLulu()
    Dim LastLig As Long, NewLig As Long, i As Long
     
    Application.ScreenUpdating = False
    With Sheets("Sheet1")
        LastLig = Range("A65536").End(xlUp).Row
        For i = 2 To LastLig
            NewLig = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Rows(i).Copy Sheets("Sheet2").Range("A" & NewLig & ": A" & NewLig + 23)
        Next
    End With
    End Sub
    maintenant, il parcoure tous le code mais rien ne s'affiche sur la Feuille2 ???

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Le code proposé est à adapter sur le nom des feuilles et sur la colonne dans laquelle on cherche le dernière cellule remplie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With Sheets("Feuil1")
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
    est le n° de ligne de la dernière cellule remplie de la colonne 1 de la feuille nommée "Feuil1"

  5. #5
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    malgré sa, la deuxième feuille est toujours vide et rien ne ce remplis ???

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Recommençons
    1. Ta feuille source s'appelle Feuil1, c'est ça?
    2. Combien tu as de lignes de données en colonne A de cette feuille?
    3. Ta feuille destination s'appelle Feuil2, c'est ça?

    malgré sa, la deuxième feuille est toujours vide et rien ne ce remplis ???
    Crois tu en lisant ce type de phrases (ou question à la place), notre boule de cristal saura prédire où est cachée la clé du coffre?

    ps: au moins, mets ton code tel que testé en entier

  7. #7
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    Voila la totalité de 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
     
    Sub FiltreLulu()
    Dim LastLig As Long, NewLig As Long, i As Long
     
    Application.ScreenUpdating = False
    With Sheets("Sheet1")
        LastLig = Range("A65536").End(xlUp).Row
        For i = 2 To LastLig
            NewLig = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Rows(i).Copy Sheets("Sheet2").Range("A" & NewLig & ": A" & NewLig + 23)
        Next
    End With
    End Sub
    1. Ta feuille source s'appelle Feuil1, c'est ça? OUI
    2. Combien tu as de lignes de données en colonne A de cette feuille? il y a 09 colonnes et 254 Ligne
    3. Ta feuille destination s'appelle Feuil2, c'est ça? OUI

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    ici Feuil1
    1. Ta feuille source s'appelle Feuil1, c'est ça? OUI
    et dans le code Sheet1
    Quelque chose ne m'est pas claire
    [QUOTE]2. Combien tu as de lignes de données en colonne A de cette feuille?/QUOTE]
    Je précise, en colonne A de la feuille source, combien tu as de cellules non vides?

    Edit:
    encore il fallait revoir la ligne de LastLig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub FiltreLulu()
    Dim LastLig As Long, NewLig As Long, i As Long
     
    Application.ScreenUpdating = False
    With Sheets("Sheet1")
        LastLig = .Range("A65536").End(xlUp).Row
        'LastLig = .Cells(rows.count,1).End(xlUp).Row 'ça revient presque au même
        For i = 2 To LastLig
            NewLig = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Rows(i).Copy Sheets("Sheet2").Range("A" & NewLig & ": A" & NewLig + 23)
        Next
    End With
    End Sub
    Edit2: quelle version d'excel tu as?

  9. #9
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 643
    Points : 94
    Points
    94
    Par défaut
    sa marche maintenant Merci.
    j'ai une version anglaise d'Office 2007, je n'est pas voulue vous déranger avec le nommage des feuille alors je faisais la conversion (français -> anglais).

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

Discussions similaires

  1. [XL-2010] Copier Coller des colonnes d'une feuille à une autre en fonction d'un critère
    Par Groggy78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/07/2014, 19h12
  2. Réponses: 1
    Dernier message: 24/02/2014, 15h48
  3. Réponses: 4
    Dernier message: 17/12/2012, 13h29
  4. [XL-2007] Copier/Coller de formules d'une feuille à une autre
    Par Maady dans le forum Excel
    Réponses: 4
    Dernier message: 09/09/2010, 16h59

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