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 et code de programmation allegé.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur structure
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur structure
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Par défaut VBA et code de programmation allegé.
    Bonjour à tous.

    Je recherche à simplifier quelques lignes de codes telles que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(i,1) = (a,b,c,d,e)
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cells(i,1)= a
    cells(i+1,1)= b ....
    Savez vous si une écriture est possible sous ce genre avec peut-être une autre syntaxe ?

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Exemple

    Par colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("Feuil1")
        .Range(.Cells(i, 1), .Cells(i + 3, 1)) = Application.Transpose(Array(a, b, c, d))
    End With

    Ou par ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("Feuil1")
        .Range(.Cells(1, i), .Cells(1, i + 3)) = Array(a, b, c, d)
    End With

  3. #3
    Invité de passage
    Inscrit en
    Décembre 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1
    Par défaut
    Pourquoi tu fous un with pour une ligne ? Histoire de te la raconter ou par ignorance ?

  4. #4
    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
    Citation Envoyé par zackarry Voir le message
    Pourquoi tu fous un with pour une ligne ? Histoire de te la raconter ou par ignorance ?
    ... je crois que l'ignorant n'est pas celui que tu crois ..

    utilise et essai de comprendre comment marche With

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Pour répondre autrement, je dirais que le with permet d'éviter, en une seule ligne, 3 occurences de "Worksheets("Feuil1")"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil1").Range(Worksheets("Feuil1").Cells(1, i), Worksheets("Feuil1").Cells(1, i + 3)) = Array(a, b, c, d)
    ça ne me parait pas forcément très lisible

    Bon, perso, j'ai tendance à donner des variables courtes à mes onglets, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim WS1 as Worksheet
    Set WS1 = Worksheets("Feuil1")
    WS1.Range(WS1.Cells(1, i), WS1.Cells(1, i + 3)) = Array(a, b, c, d)
    Mais la solution avec le With fonctionne parfaitement, et remplit son role de rendre la ligne plus légère, plus facile à lire. Ca n'est ni de l'ignorance, ni de la frime : c'est de l'élégance au service de la lisibilité et de la maintenabilité. Et même si il y avait eu une seule occurence sur une seule ligne, celà aurait quand même allégé ladite ligne.


    Si je ne l'avais déjà fait, je mettrais un +1 à Mercatog rien que pour ce with.

Discussions similaires

  1. [VBA -A]Code pour répondre au question des msg d'alertes
    Par soad029 dans le forum VBA Access
    Réponses: 8
    Dernier message: 23/03/2006, 12h21
  2. [VBA-E] lancer un programme VB à partir d'un bouton
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 27/02/2006, 10h54
  3. Réponses: 1
    Dernier message: 30/01/2006, 16h07
  4. [VBA-E] Executer un programme à un moment précis
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/11/2005, 19h03
  5. [VBA-E] Toggle button: programmation des actions
    Par micknic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2005, 19h28

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