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 plage de données en fonction d'une condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Par défaut Copier plage de données en fonction d'une condition
    Bonjour à tous,

    J'ai actuellement 2 fichiers Excels :
    - Le fichier A : Liste de données avec coordonnées x, y et z.
    - Le fichier B : Macro permettant d'écrire dans SolidWorks (logiciel de conception 3D).

    Problème :
    J'aimerais copier/coller des données du fichier A au fichier B suivant le processus suivant :
    1. Tester valeur de Z dans la colonne C du fichier A.
    2. Sélectionner les colonnes A, B et C pour des valeurs de Z identiques (que celles égales à 0, puis que celles égales 0,05,...) -> 200 lignes à chaque fois.
    3. Copier ces valeurs dans le fichier B
    4. Exécuter la macro "Private Sub btnLines_Click()" du fichier B.
    5. Accorder un délais de 5 secondes pour le temps de traitement de la macro du fichier B.
    6. Renouveler l'opération.

    J'ai un début de code mais il me manque de quoi tester la valeur et attendre...
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Copier_desiner()
     
    ' Copie valeur fichier A vers fichier B. Exécute la macro du fichier B. Attend 10 secondes.
     
        Range("A1:C200").Select
        Selection.Copy
        Windows("trace_des_points_sur_un_part__xyz_v3.xls").Activate
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("A201").Select
        Application.CutCopyMode = False
     
    End Sub

    Merci d'avance pour votre aide !

    Les fichiers sont joint.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu dois copier des données suivant conditions, je ne peux que te conseiller l'utilisation de la méthode AdvancedFilter de l'objet Range (Filtre avancé d'excel).

    A lire Les filtres avancés ou élaborés dans Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Par défaut
    Dans le cas où mes données sont toujours à intervalle de 200 lignes, n'y a-t-il pas un moyen de l'écrire de cette façon ?
    Car je n'arrive pas à écrire le fait de changer de plage de données.

    Voici le code que j'ai fait pour le "timer".

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Attendre(Secondes As Single)
    ' Cette procédure temporise pendant le nombre de secondes qu'on lui transmet en argument
    Dim Début As Long, Fin As Long, Chrono As Long
    Début = Timer
    Fin = Début + Secondes
    Do Until Timer >= Fin
        DoEvents
    Loop
    End Sub

    Merci encore pour votre réponde !

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/04/2016, 16h18
  2. [XL-2010] Incrémenter une donnée en fonction d'une plage horaire.
    Par sevy1 dans le forum Excel
    Réponses: 2
    Dernier message: 29/04/2013, 09h50
  3. Réponses: 13
    Dernier message: 28/05/2010, 10h06
  4. Réponses: 4
    Dernier message: 11/08/2008, 15h29
  5. Réponses: 2
    Dernier message: 22/01/2008, 10h46

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