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 :

Et la boucle est difficile à écrire! (executer un code selon les valeurs d'une liste) [XL-2010]


Sujet :

Macros et VBA Excel

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Et la boucle est difficile à écrire! (executer un code selon les valeurs d'une liste)
    Bonsoir à tous,

    J'ai un tableau qui fait office de questionnaire que je souhaiterais publiposter (le terme est à peu près adapté). Je souhaite en fait adresser à de nombreuses personnes différentes ce questionnaire qui se personnalise à l'aide de plusieurs Recherchev par rapport à la valeur de ma cellule B1 (l'identifiant du compte qui fait l'objet du questionnaire). Une personne peut avoir 1 à N questionnaires.

    La cellule B1 peut contenir les valeurs non continues (sur 4 caractères numériques) d'une liste Excel nommée "ListeComptes".

    J'ai écrit un code en VBA pour exporter mon questionnaire en fichier Excel avec une personnalisation du nom, auteur, sujet, etc. en fonction des paramètres du questionnaire, ça, ça marche bien!

    Le problème c'est que je dois changer manuellement la valeur de B1 et appuyer sur exécuter la fonction "Export" pour chaque valeur de "ListeComptes" et il y en a 500 différentes ;-)! Je pense que le problème peut être solutionné à l'aide d'une boucle bien écrite, j'ai tenté quelques adaptations mais ça n'a absolument rien donné. Je crois que je sèche sur le fait que mes valeurs ne sont pas continues et appartiennent à une liste, j'ai aussi du mal à lui faire exécuter plusieurs choses pendant l’exécution des pas de la boucle.

    Je souhaiterais en fait :

    Pour chaque Valeur de "ListeComptes"
    Changer B1 en Valeur
    Lancer fonction Export
    Recommencer Valeur suivante de "ListeComptes"
    S'arrêter à la fin de "ListeComptes"

    Pourriez-vous s'il vous plaît m'aiguiller sur la rédaction de cette procédure en code VBA? Je n'ai pas réussi à trouver de sujet similaire, peut être que je n'ai pas tapé pas les bons mots clés .

    Je vous remercie d'avance pour votre aide et vous souhaite une bonne soirée,

    Michaël

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Points : 215
    Points
    215
    Par défaut
    Bonjour,

    Ceci-devrait marcher (en supposant que tu aies nommé la plage de cellules dans laquelle tu as ta liste de valeurs "ListeComptes" et que tu lances la macro depuis la feuille où tu as la valeur B1 qui te sert pour ta macro exporter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
     
    Set Mafeuille = ActiveSheet
    Set listecomptes = ActiveSheet.Range("ListeComptes")
     
    For Each c In listecomptes
        Mafeuille.Range("B1") = c
        Application.Calculate
       Call exporter
    Next c
    End Sub
    Bien cordialement,

    Poulpe

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Le problème est résolu !

    J'ai juste eu à changer la valeur du deuxième Set car la liste était sur une feuille différente.

    Merci beaucoup pour ta réponse.

    Bonne journée,

    Michaël

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 12/10/2008, 11h30
  2. Concaténer les valeurs dans une boucle
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2007, 20h08
  3. 1er Execution du code Ok, les réexecutions trop long
    Par novicenovice dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2007, 17h16
  4. Réponses: 2
    Dernier message: 01/09/2006, 00h02
  5. [C#]Comment executer du code qui se trouve dans une string ?
    Par freddyboy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/02/2005, 16h31

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