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 :

Comment faire une boucle ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Par défaut Comment faire une boucle ?
    Bonjour amis developpeurs,

    Je voudrais crée une boucle qui permettrait de copiez d'un tableau la donnée de la cellule la coller dans une case puis activer une autre macro, je voudrais que cette boucle me permettent de descendre a chaque fois d'une case et refaire cette opération.

    Le tableau va de " AP8 " à " AP100 " Je voudrais donc boucler sur cette zone , ou alors arreter le programme des que la case est vide ( ce qui me parait mieux sachant que le nombre de case évolue.. )
    Comment faire ? merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    Salut,

    Tu peux faire ça avec une boucle while, avec une variable integer (qui commence à 8 dans ton cas) que tu incrémente à chaque case, et tu sors de ta boucle while lorsque la valeur de la case est égale à "" par exemple.

    Pour lire la valeur de ta cellule utilise Cells(x,y) avec y correspondant au numéro de la colonne AP.

    Pour plus d'informations sur l'utilisation de ces fonctions regarde dans l'aide d'excel, tout y est détaillé

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Cet article devrait t'aider : http://silkyroad.developpez.com/vba/boucles/

    Philippe

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Par défaut
    j'ai pas d'accées aux aides en lignes,
    je pourrais avoir un plan ? je débute en VB
    je vais lire merci pour le lien.

    Bon j'ai fais un essai avec le tuto mais sa ne marche pas
    je vous met mon code
    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
    dim i as integer
    i=8
     While Not IsEmpty(Cells(i, AP))
        Selection.Copy
        Range("G3:I3").Select
        ActiveSheet.Paste
        ' Lancement de la macro top10 public
        Workbooks.Open FileName:= _
    "\\******Adresse du fichier" _
            , UpdateLinks:=0
        ActiveWindow.SmallScroll Down:=-12
        Calculate
        ActiveWindow.SmallScroll Down:=-21
        Range("C3").Select
        ActiveWindow.SmallScroll Down:=6
        Windows("Portfolio endusers within dealer_template.xls").Activate
        Sheets("Endusers").Select
        Application.Goto Reference:="data"
        Selection.Sort Key1:=Range("J4"), Order1:=xlDescending, Key2:=Range("L4") _
            , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
            :=xlSortNormal
        Calculate
        ActiveWindow.Close False
        Windows("Dashboard Dealers TF_200809.xls").Activate
        Range("I30").Select
        i = i + 1
    Wend
    La fonction not est le probleme ?

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par Tinien Voir le message

    La fonction not est le probleme ?
    Voilà bien (ton expression "fonction") la meilleure preuve de ce que tu as vraiment besoin des bases (donc de ton aide en ligne, sans laquelle nul - même les plus avancés - ne peut aller très loin).
    Not est un opérateur, pas une fonction.... (et c'est très loin d'être similaire).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    Je n'ai pas vraiment le temps de regarder le code à l'intérieur de ta boucle mais, il y a un probleme dans l'utilisation de Cells, tu ne peux pas y mettre AP directement sous cette forme, ça va etre considéré comme une variable. Il faut que tu utilise : Cells(i,42)
    42 correspondant à AP.

    Si tu veux utiliser AP, tu peux mais il faut alors utiliser : Range("AP" + cstr(i))

  7. #7
    Membre chevronné
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Par défaut
    Bonjour,

    Il faudrait expliquer un peu mieux ce que le code devrait faire car ce n'est pas très clair.

    Déjà, il est étonnant de trouver des adresses de cellules en dur dans une boucle :
    Si la selection doit changer à chaque passage dans la boucle, il devrait y avoir quelque chose du genre :

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    Si on ne change pas de colonne, il n'y a pas de probleme à utiliser la lettre en dur, ça a l'air d'etre son cas ici, par contre tout à l'heure on parlait de AP pas C.

    Ensuite, l'utilisation de Select n'est pas la bonne méthode, puisqu'on peut effectuer exactement les memes opérations en partant directement de Cells(X,Y) à la place de Selection...

    Et pour finir le code n'a meme pas l'air d'utiliser la sélection donc ces lignes sont totalement inutiles !

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pourtant ce code fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim i As Integer
    i = 8
     While Not IsEmpty(Cells(i, 42))
     'suite du code
    Comme l'a indiqué Fouinard.

  10. #10
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par Tinien Voir le message
    j'ai pas d'accées aux aides en lignes
    Citation Envoyé par Tinien Voir le message
    je débute en VB
    Et comment comptes-tu t'y prendre?

    Venir nous demander le code tout fait pour tout ce que tu dois développer?

    Ce n'est pas le but d'un forum.

    Il me paraît aberrant de vouloir ou accepter de faire du développement sans les références du langage.
    Comme l'a dit ucfoutu, personne (même les plus expérimentés) ne peut s'en passer.

    Donc, installe ou fais-toi installer l'aide de VBA sans quoi tu ne pourras jamais aller bien loin.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. [Smarty] comment faire une boucle
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/08/2009, 14h36
  2. Réponses: 2
    Dernier message: 06/04/2007, 14h31
  3. [VBA-E] Comment faire une boucle lorsqu'il y a des cellules vides
    Par Annick.w dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2007, 23h39
  4. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 13h00
  5. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 13h58

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