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 :

Macro pour copier d'une feuille vers une autre [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Macro pour copier d'une feuille vers une autre
    Bonjour à tous,

    J'ai besoin d'aide svp!
    j'ai un classeur qui a beaucoup de lignes et copier cellule par cellule me prend beaucoup de temps.

    J'aimerai avoir une macro qui va me permettre de copier en comparant. Par exemple sur la feuille1 il on trouve dans une cell ''6'', copie le cotenu de la 3eme cellule devant ''6'' et aller coller sur la feuille2 à la 7eme cellule devant ''6''.

    Pareil pour tout ce qu'il sur la feuille1.
    Qu'il le fasse jusqu'à la 5000ème ligne.

    Voir le classeur pour mieux comprendre je sais que je me suis pas bien fait comprendre.

    Aidez moi à avancer plus vite svp!!

    Merci d'avance.

    Classeur2.xlsx

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Voici un exemple simple
    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
    Sub Transfert()
        Dim I As Long
        Dim Recherche As Range
     
        For I = 5 To 18 'modifier au besoin
            If Sheets("Feuil1").Range("K" & I) <> "" Then
                Set Recherche = Sheets("Feuil2").Range("K6:K32").Find(Sheets("Feuil1").Range("K" & I), LookIn:=xlValues, LookAt:=xlWhole)
                If Not Recherche Is Nothing Then
                    Sheets("Feuil2").Range("R" & Recherche.Row) = Sheets("Feuil1").Range("N" & I)
                End If
            End If
        Next
        For I = 26 To 39 'modifier au besoin
            If Sheets("Feuil1").Range("K" & I) <> "" Then
                Set Recherche = Sheets("Feuil2").Range("K33:K59").Find(Sheets("Feuil1").Range("K" & I), LookIn:=xlValues, LookAt:=xlWhole)
                If Not Recherche Is Nothing Then
                    Sheets("Feuil2").Range("R" & Recherche.Row) = Sheets("Feuil1").Range("N" & I)
                End If
            End If
        Next
    End Sub
    MPi²

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    ça marche, mais je trouve que le code sera un peu long. Parce que j'aurai au moins 125 partie à ecrire.
    ça m'avance mais n'y a-t-il pas moyen de généraliser ça sur tout le classeur .?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Peut-être essayer ainsi ?
    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 Transfert()
        Dim I As Long, J As Long, nbLignes As Long
        Dim Debut1 As Long, Fin1 As Long
        Dim Debut2 As Long, Fin2 As Long
        Dim Recherche As Range
     
        nbLignes = Sheets("Feuil1").Cells(Rows.Count, "K").End(xlUp).Row
     
        Debut1 = 5  'début de série sur Feuil1
        Debut2 = 6  'début de série sur Feuil2
     
        For J = Debut1 To nbLignes
            Fin1 = Sheets("Feuil1").Range("B" & J).Rows.MergeArea.Count + Debut1 - 1
            Fin2 = Sheets("Feuil2").Range("B" & J + 1).Rows.MergeArea.Count + Debut2 - 1
     
            For I = Debut1 To Fin1
                If Sheets("Feuil1").Range("K" & I) <> "" Then
                    Set Recherche = Sheets("Feuil2").Range("K" & Debut2 + 1 & ":K" & Fin2 + 1).Find(Sheets("Feuil1").Range("K" & I), LookIn:=xlValues, LookAt:=xlWhole)
                    If Not Recherche Is Nothing Then
                        Sheets("Feuil2").Range("R" & Recherche.Row) = Sheets("Feuil1").Range("N" & I)
                    End If
                End If
            Next
     
            Debut1 = Fin1 + 1
            Debut2 = Fin2 + 1
        Next
    End Sub
    MPi²

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Un gros merci!! ça marche à la perfection.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/01/2015, 22h17
  2. Déplacer une image d'une feuille vers une autre dans un fichier Excel
    Par helenaide dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 14h27
  3. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  4. [XL-2007] copier une ligne d'une feuille vers une autre feuille
    Par scarfunk dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/05/2010, 22h18
  5. Macro Copier données d'une feuille vers une feuille cible
    Par La Zélie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2008, 10h01

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