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 :

Optimisation code avec boucle


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
    Rédacteur technique
    Inscrit en
    Novembre 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 38
    Par défaut Optimisation code avec boucle
    Bonjour;

    Je me remet depuis peu sur excel VBA
    Je cherche a créer une boucle d'un userform sur une feuille excel afin de copier plusieurs lignes à la suite suivant les combobox renseignés
    ça fonctionne avec le code ci dessous mais je pense qu'il y a plus simple avec une boucle d'autant que j'ai une centaine de combobox a renseigner, si quelqu’un peut m'aider ?
    Merci d'avance
    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
     
    With Sheets("Data")
        .Range("a" & i + 1).Value = .Range("a" & i).Value + 1
        .Range("b" & i + 1).Value = ComboBox1.Value
        .Range("c" & i + 1).Value = ComboBox101.Value
        .Range("d" & i + 1).Value = ComboBox121.Value
        .Range("e" & i + 1).Value = ComboBox141.Value
        .Range("f" & i + 1).Value = ComboBox161.Value
     
        .Range("a" & i + 2).Value = .Range("a" & i).Value + 2
        .Range("b" & i + 2).Value = ComboBox2.Value
        .Range("c" & i + 2).Value = ComboBox102.Value
        .Range("d" & i + 2).Value = ComboBox122.Value
        .Range("e" & i + 2).Value = ComboBox142.Value
        .Range("f" & i + 2).Value = ComboBox162.Value
     
        .Range("a" & i + 3).Value = .Range("a" & i).Value + 3
        .Range("b" & i + 3).Value = ComboBox3.Value
        .Range("c" & i + 3).Value = ComboBox103.Value
        .Range("d" & i + 3).Value = ComboBox123.Value
        .Range("e" & i + 3).Value = ComboBox143.Value
        .Range("f" & i + 3).Value = ComboBox163.Value
      etc.
     
    End With

    A vous lire
    Phileas

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    optimiser quoi?
    l'ecriture du code ou la vitesse
    en terme de vitesse tu gagnera rien en bouclant

    en terme d'ecriture de code il y a diverses manieres de faire

    mais je vois un "etc.." en fin de code :peu etre que si tu veux que l'on aide il faudrait donner le code en entier, tout du moins pour ce qui est du tranfert de données


    en l'etat sans connaitre le reste du code pour eclairsir le code boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim e
    With Sheets("Data")
       For e = 0 To 2
          .Range("a" & i + 1 + e).Value = .Range("a" & i).Value + 1+e
        .Range("b" & i + 1 + e).Value = Me.Controls("ComboBox" & (1 + e)).Value
        .Range("c" & i + 1 + e).Value = Me.Controls("ComboBox" & (101 + e)).Value
        .Range("d" & i + 1 + e).Value = Me.Controls("ComboBox" & (121 + e)).Value
        .Range("e" & i + 1 + e).Value = Me.Controls("ComboBox" & (141 + e)).Value
        .Range("f" & i + 1 + e).Value = Me.Controls("ComboBox" & (161 + e)).Value
     Next
    'etc...
    End With
    peu etre devrait tu t'intérésser au events calculate et autre joyeuseté
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Novembre 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 38
    Par défaut
    Bonjour et merci Patrick de ta réponse


    pour la question sur l'optimisation , c'est le code que je souhaite optimiser et non la vitesse,
    PS:le "ect." était pour exprimer la suite des combobox a renseigner !!

    pour être plus clair et plus précis dans ma demande:
    J'ai un usf qui comporte 200 combobox à remplir
    10 colonnes (colonne 1 -->combobox de 101 a 120 , colonne 2 -->121 à 140 , colonne 3 de 141 à 160, etc.)sur 20 lignes , je souhaites que chaque ligne soient enregistrer en un en une seule fois dans une feuille excel (pour générer une table)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    peu être devrait tu t'intérésser au events calculate et autre joyeuseté
    ; c'est a dire?

    merci
    Phileas

Discussions similaires

  1. Optimisation code avec une boucle For
    Par latour500 dans le forum jQuery
    Réponses: 7
    Dernier message: 11/04/2014, 15h02
  2. [MySQL] Optimisation code double boucle while
    Par heretik25 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/11/2011, 15h38
  3. Optimisation code/ Probleme boucle while
    Par yannou63360 dans le forum Langage
    Réponses: 5
    Dernier message: 11/11/2010, 10h07
  4. Optimiser code avec date
    Par kopouge dans le forum Macro
    Réponses: 3
    Dernier message: 07/06/2010, 11h56

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