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 :

VBA boucle 720points [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut VBA boucle 720points
    bonjour,
    j'ai un petit probléme
    alors je n'arrive pas a faire ma boucle
    alors je dois selectionner les 720 premier points de ma liste pour les mettre dans la colonne 1 de ma deuxieme feuilles
    puis les 720 autres points pour les coller dans la colonne 2
    et tout cela 8fois et bien sur a l'aide d'une boucle
    si quelqu'un peut m'aider

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    tu as oublié de nous dire comment ce présenté ta liste ... de toutes façons avec deux boucles Imbriqué cela devrait se faire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    iLigneSource =1
    POUR iColonne = 1 a 8
      Pour iLigne = 1 a 720 
             Pose élément de la ligne iLigneSource vers colonne : iColonne , Ligne iLigne 
         Ajoute 1 à iLigneSource
      FIN Pour iLigne
    FIN POUR iCOLONNE

  3. #3
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    bonjour

    je n'ai pas tout compris, un petit code en fonction de ce que j'ai compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    pnt = 0
    col = 1
    ligne = 0
    for i = 1 to xxxx ' xxxx ta valeur
         pnt = pnt + lavaleur
         ligne = ligne + 1
         cells(ligne, col) = lavaleuràmettre
         if pnt = 720 then
               pnt = 0
               ligne = 0
               col = col +1
         end if
    next

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    alors j'ai une liste de point sur une seul colonne
    et sur mon autre feuille j'ai 8colonne
    en gros je dois selectionner les 720 premier point les coller dans la colonne un puis les 720autres et les coller dans la colonne 2

    j'ai commencer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For i=1 to nbcycle
    sheets("donner brut""").Select
    Range("A5:A724").select <----c'est la que sa coince , j'arrive pas a faire comme je veux
    selection.copy
    sheets("donner preparer""").select
    cells(2,i).select
    activesheet.paste
    next

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 127
    Par défaut
    Salut

    Juste pour savoir, c'est un exo ou c'est perso/boulo? Je pense que je suis pas le seul a me poser la question au vu de la 1ere réponse

    Si tu veux mettre une variable nbcycle, le mieux serait de trouver cette valeur en fonction du nombre de ligne contenu dans ta colonne de départ.
    Cherche sur le forum y'a plein d'exemple à base de .End(xlup)... qui te permet de déterminer la dernière cellule non vide. Ensuite tu divises par 720.

    Ce qui faut éviter c'est d'utiliser les Select, il n'est pas utile de sélectionner une feuille ou une cellule pour la modifier. Tu peux utiliser des variables par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Declaration
    Dim FeuilleBase as Worksheet
     
    'Initialisation, en faisant référence au classeur et a la feuille
    Set FeuilleBase = Thisworkbook.sheets("donner brut")
     
    'Utilisation
    FeuilleBase.Range("A1") = "Bonjour"
    Pour l'utilisation de Copy, regarde l'aide, il est possible de passer directement en paramètre la destination.

    Si tu veux sélectionner une plage "variable" tu peux utiliser des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'Declaration
    Dim LigneDepart as integer, LigneFin as Integer
     
    '...
    For i=0 to nbcycle-1
       'Dans ta boucle tu dois faire en sorte de définir LigneDepart et LigneFin
       'Par exemple
       LigneDepart = i * 720 + 5 
       LigneFin = LigneDepart + 720
     
       'Par la suite tu pointes la plage de cellules qui correspond
       With FeuilleBase 'Voir l'aide pour With
          .range(.cells(LigneDepart,"A"),.Cells(LigneFin,"A"))
       End With
    Je n'ai bien sur pas tester le code, a toi de le pofiner et ça n'est qu'une approche, tu peux en imaginer d'autre, on t'en a d’ailleurs donné d'autre, mais je trouver intéressant de partir du code que tu proposais.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    c'est pour un exo , je suis en bts mci et on fais des macros enregistrer pour nos relever de point dans les cycle moteur
    et meme si l'exo n'est pas obligatoir j'aimerais bien comprendre et reussir celui ci

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    j'ai un léger probléme , je débute
    quand je rentre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .range(.cells(LigneDepart,"A"),.Cells(LigneFin,"A"))
    j'ai une erreur de compilation: erreur syntaxe

  8. #8
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 127
    Par défaut
    Salut

    Ok pour l'exo.

    En ce qui concerne l'enregistreur de macro, perso je pense que l'approche est surtout intéressante pour obtenir des éléments de syntaxe.
    Mais attention à deux choses, l'enregistreur crée des codes très verbeux et il faut absolument les retravailler, et la 2ème chose porte sur le fait qu'il ne connait pas toutes les méthodes et fonctions que peuvent contenir les différents objets et a fortiori, les fonction propre au langage VB.

    [Edit]
    Donne le code complet, cette partie du code sorti de son contexte ne peut par fonctionner.
    As-tu regardé l'aide concernant With? (clique sur le mot With dans VBA et touche F1)
    [/Edit]
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. [VBA]Boucle et Pièces Jointes sur mailing list
    Par delcroixf dans le forum VBA Access
    Réponses: 7
    Dernier message: 23/03/2007, 10h11
  2. [Excel/VBA] Boucle et test cellule
    Par Myogtha dans le forum Access
    Réponses: 9
    Dernier message: 19/02/2007, 11h35
  3. [VBA] Boucle do while
    Par Pitou5464 dans le forum Access
    Réponses: 8
    Dernier message: 23/08/2006, 10h17
  4. aide vba boucle for each paramétrée en range
    Par gotlieb dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2006, 08h55
  5. [VBA] Boucle Do While
    Par jmde dans le forum Access
    Réponses: 4
    Dernier message: 16/10/2005, 20h23

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