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 :

boucles dans une Macro Excel? [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut boucles dans une Macro Excel?
    Bonjour,
    j'aurais besoin d'aide à propos d'une Macro que je souhaite faire dans Excel (2003).
    Je tiens tout d'abord à préciser que c'est la première fois que je touche aux macro, donc je n'y connais pas grand chose. je m'en excuse d'avance...

    Alors voilà le topo: on vient d'acheter au labo une machine (lecteur de microplaques), mais le soft de la machine manque de fonctionnalités quant au traitement des données générées. j'ai donc décidé de faire une macro excel pour gagner du temps par la suite et ne pas refaire 20.000 fois la même chose.

    la machine me génère un fichier excel avec 99 tableaux, les tableaux étant les uns en dessous des autres, espacés de 46 lignes (dont le contenu ne m'intéresse pas ici).
    la première étape que je souhaite faire est de mettre les 99 tableaux les uns en dessous des autres sans les 46 lignes "parasites" entre chaque. pour faire cela, j'utilise ce script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test_machine()
    Sheets("data brutes").Activate
    Range("a37:a45").Copy
    With Sheets("data triées")
    .Range("A1").PasteSpecial Paste:=xlPasteValues
    End With
    Application.CutCopyMode = False
    End Sub
    ceci fonctionne pour 1 tableau, mais je n'ai pas trop envie de faire ça 99 fois, en changeant les coordonnées à chaque fois.
    sachant que les valeurs sont incrémentées de 46 à chaque fois (pour le second tableau, cela donne a91:a99 et A11 pour le lieu où je veux mettre le tableau), ce qui donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("data brutes").Activate
    Range("a91:a99").Copy
    With Sheets("data triées")
    .Range("A11").PasteSpecial Paste:=xlPasteValues
    End With
    Application.CutCopyMode = False
    d'où ma question: est-ce qu'il existe des boucles (ou autre chose?) que je puisse utiliser afin de ne pas faire 99 fois la même chose à la main?

    Merci d'avance pour votre aide
    ce serait vraiment sympas si quelqu'un pouvait me dépanner

    answer3

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour answer3 le forum si tes tableaux se suivent espace de 46 lignes vide tu peus essaye simplement comme cela supprime les lignes vides

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub es()
    Range("A1" & ":A" & Range("a65536").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Delete
    End Sub
    je prends colonne a comme reference si tu peus prendre une autre colonne comme reference si possible si dans ces donnees parasite tu as des colonnes vides a adapter

    pour tes lignes parasites c'est quoi le contenu caractere specifique donnees non numerique ect...

  3. #3
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Je n'ai pas testé le code, mais ca devrait donner quelque chose comme ca

    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
    Sub test_machine()
    Dim i As Integer
    Dim lngLigne As Long
    Dim lngLigneDest As Long
     
    Sheets("data brutes").Activate
     
    lngLigneDest = 1
    lngLigne = 37
     
    For i = 1 To 99
     
        Range("A" & lngLigne & ":A" & lngLigne + 8).Copy
        With Sheets("data triées")
            .Range("A" & lngLigneDest).PasteSpecial Paste:=xlPasteValues
        End With
     
        lngLigneDest = lngLigneDest + 10
        lngLigne = lngLigne + 46 + 8 '46 lignes vides + 8 lignes de tableau
     
    Next i
     
    Application.CutCopyMode = False
     
    End Sub

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut
    Merci à vous deux pour vos réponses super rapides!
    Jérome, ça fonctionne mais ça ne me copie que la colonne A alors que je m'intéresse à 12 colonnes A-L
    j'ai essayé de remplacer A par A:L mais ça plante...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Par défaut
    ok c'est bon autant pour moi...
    Merci!!!

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

Discussions similaires

  1. J'ai besoin faire un compteur dans une macro Excel
    Par sergio_gr66 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 11/06/2009, 17h25
  2. Suppression des doublons par une boucle dans une macro
    Par axamen dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2009, 09h37
  3. erreur d'execution '13' dans une macro Excel lors du passage 2003->2007
    Par Bobsinglar dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/10/2008, 15h16
  4. Impression d'un document Word fermé dans une macro Excel
    Par Le POlonais dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/11/2007, 10h00
  5. pb dans une macro excel VB
    Par syl221 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2005, 17h29

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