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 :

incrémenter ou faire une boucle pour copier plusieurs colonnes à la colonne suivante


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 12
    Points
    12
    Par défaut incrémenter ou faire une boucle pour copier plusieurs colonnes à la colonne suivante
    Bonsoir,

    Grâce à votre aide à tous pour bien comprendre VBA, mon programme tourne enfin le seul dernier hic et pas des moindres c'est que j'ouvre bien tous les fichiers que je veux dans ma boucle mais les cellules se copient tous dans la première colonne spécifiée au départ et non dans la colonne suivante à chaque fois.
    les colonnes doivent s'incrémenter comme ci-dessous :

    For x = 3 To 42
    For z = 44 To 83
    For u = 85 To 124
    For v = 126 To 165
    For w = 167 To 206
    J'espère avoir été clair.
    D'avance merci pour votre aide

    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
    Range("C8:C39,C52:C67").Select
                    Selection.Copy
                    Windows("fichier cible.xlsm").Activate
                    Sheets("feuil1").Select
                    Cells(7, x).Select
                    ActiveSheet.Paste
                    Range("D12").Select
                    Windows("fichier source.xls").Activate
                    Range("K8:K39,K52:K67").Select
                    Selection.Copy
                    Windows("fichier cible.xlsm").Activate
                    Sheets("feuil1").Select
                    Cells(7, z).Select
                    ActiveSheet.Paste
                    Range("D12").Select
                    Windows("fichier source.xls").Activate
                    Range("L8:L39,L52:L67").Select
                    Selection.Copy
                    Windows("fichier cible.xlsm").Activate
                    Sheets("feuil1").Select
                    Cells(7, u).Select
                    ActiveSheet.Paste
                    Range("D12").Select
                    Windows("fichier source.xls").Activate
                    Range("O8:O39,O52:O67").Select
                    Selection.Copy
                    Windows("fichier cible.xlsm").Activate
                    Sheets("feuil1").Select
                    Cells(7, v).Select
                    ActiveSheet.Paste
                    Range("D12").Select
                    Windows("fichier source.xls").Activate
                    Range("AU8:AU39,AU52:AU67").Select
                    Selection.Copy
                    Windows("fichier cible.xlsm").Activate
                    Sheets("feuil1").Select
                    Cells(7, w).Select
                    ActiveSheet.Paste
                    Range("D12").Select
                    Windows("fichier source.xls").Activate
                    ActiveWindow.Close
                    x = x + 1
                    z = z + 1
                    u = u + 1
                    v = v + 1
                    w = w + 1

  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,

    Je ne sais pas d'où part ton code, mais si tu fais des boucles For...Next, tu n'as pas besoin d'incrémenter tes variables à la fin.
    Le For Next s'en occupe.

    Il faudrait voir un peu plus comment se font les boucles pour mieux cerner le problème.
    MPi²

  3. #3
    Membre à l'essai
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonsoir,

    Je n'ai pas encore fait de boucle pour cette partie de code. J'ai juste fait une boucle pour ouvrir les fichiers un à un tant qu'ils entrent dans les critères.
    On peut faire une boucle à l'intérieur d'une boucle ? Je dois mettre mes données dans des feuilles différentes en fonction du jour de la semaine.
    Dois je faire une boucle par feuille ?

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    essaye un truc comme cela

    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
    Sub test()
        Dim wsSource, WsCible
        For X = 3 To 42
     
            Z = X + 39
            U = Z + 39
            V = U + 39
            w = V + 39
     
            'Set wsSource = Workbooks("fichier source.xls").Worksheets("feuil1")
            'Set WsCible = Workbooks("fichier cible.xlsm").Worksheets("feuil1")
            Set wsSource = Worksheets("feuil1")
            Set WsCible = Worksheets("feuil2")
            wsSource.Range("C8:C39,C52:C67").Copy WsCible.Cells(7, X)
            wsSource.Range("K8:K39,K52:K67").Copy WsCible.Cells(7, Z)
            wsSource.Range("L8:L39,L52:L67").Copy WsCible.Cells(7, U)
            wsSource.Range("O8:O39,O52:O67").Copy WsCible.Cells(7, V)
            wsSource.Range("AU8:AU39,AU52:AU67").Copy WsCible.Cells(7, w)
     
        Next X
         '   wsSource.Parent.Close
     
    End Sub

  5. #5
    Membre à l'essai
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonjour Oliv et merci mais je n'ai pas du mettre la boucle au bon endroit ou ce n'est pas la bonne boucle car je copie les même colonnes 41 fois
    je veux passer à la colonne suivante du fichier cible la prochaine fois que je copie les cellules du fichier source
    Pour info j'ai une boucle qui fonctionne très bien pour ouvrir les fichiers sources 1 à 1
    Bonne journée

  6. #6
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Merci de ainsi que d'utiliser les boutons et

  7. #7
    Membre à l'essai
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Merci, je planche dessus mais quand on est pas pro en VBA c'est pas facile

  8. #8
    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
    Une fois qu'un fichier est ouvert, quelles sont les plages que tu veux copier et où veux-tu les coller ?
    Ça ne devrait pas prendre de boucle, à ce que je peux comprendre...
    MPi²

  9. #9
    Membre à l'essai
    Femme Profil pro
    assistante
    Inscrit en
    Novembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : assistante

    Informations forums :
    Inscription : Novembre 2015
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Bonsoir à tous et merci à tous
    Grâce à votre aide j'ai réussi à résoudre mon problème, je me suis inspirée du code d'Oliv et en fait il n'y avait pas besoin de boucle, je l'ai insérer dans ma boucle existante.
    Merci Oliv tu allèges mon code je me compliquais la vie mais quand on débute en VBA c'est pas simple
    Bonne soirée à tous

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/05/2014, 17h57
  2. [Débutant] faire une boucle pour lire plusieurs fichiers à la suite
    Par hittie dans le forum MATLAB
    Réponses: 6
    Dernier message: 30/12/2011, 13h39
  3. Réponses: 1
    Dernier message: 04/02/2010, 20h41
  4. Faire une Boucle pour lire dans Settings.settinge
    Par totoen dans le forum Windows Forms
    Réponses: 0
    Dernier message: 27/10/2008, 10h44
  5. Faire une boucle pour l'alphabet
    Par El-Diablo- dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2008, 23h11

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