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 :

Simplifier code avec offset


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Par défaut Simplifier code avec offset
    Bonjour,
    J'ai une macro qui créer écrit des données dans une feuille et fait des mises en formes
    J'ai utilisé la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    worksheets(nom de la feuille).range("a1").activate
    with selection
    .range("a7").interior.colorindex = "46"
    .range("a7:g7").merge
    etc...

    pensez vous que je devrais remplacer par la fonction offset afin de prendre comme valeur de départ "a1" ? je ne sais pas si je suis clair.
    En faite je veux choisir une cellule de base et que les autres soient dépendantes de celle là par rapport à leur position (ligne et colonne)

    D'ailleurs comment puis je faire un offset pour fusionner des cellules ?

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Sans rentrer dans le débat de l'utilisation du Merge (souvent déconseillé) voici une piste (une méthode parmis d'autres) pour gérer tes plages.
    Tu peux utiliser Cells, qui fonctionne en indiquant le numéro de ligne et de colonne, donc facile de faire + et -
    Exemple:
    s'écrit
    et
    S'écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(cells(3,2),cells(5,4))
    Admettons ta cellule de départ en B3 (cellule active) et ta plage +2 lignes et +3 colonnes, donc range("B3:E5") le code en guise d'exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub format()
     
    'Attention Activecell s'applique sur la feuille ACTIVE !!!
    Range(ActiveCell, Cells(ActiveCell.Row + 2, ActiveCell.Column + 3)).Interior.ColorIndex = 46 'Met la plage en couleur
    Range(ActiveCell, Cells(ActiveCell.Row + 2, ActiveCell.Column + 3)).Merge 'Fusionne la plage
     
    End Sub
    A+

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 106
    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 106
    Par défaut
    Salut
    En complement de ce qui vient d'etre ecrit par Fvandermeulen.

    Gros avantage de cells a mon gout, il supporte cette forme d'écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cells(2,"A") 'cells(2,1)
    ce qui a mon gout est bien plus lisible lorsque l'on recherche quelque chose dans sont code.

    Tu peux aussi faire des recherches (touche F1) sur les fonction suivante
    Offset et Resize

    A++
    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

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Par défaut
    merci à tous pour vos réponses je vais essayer !

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

Discussions similaires

  1. Simplifier code avec strpos
    Par Freedolphin dans le forum Langage
    Réponses: 2
    Dernier message: 17/06/2009, 18h23
  2. [XL-2003] Simplifier code avec condition
    Par AMO05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/05/2009, 12h27
  3. Comment linker avec odbc32.lib dans le code ? (avec gcc)
    Par _Audrey_ dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 06/11/2008, 17h40
  4. help sur un petit code avec XMLHttpRequest et setTimeout
    Par grinder59 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/10/2005, 10h22
  5. [UML] génération de code avec omondo.uml
    Par RENAULT dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/10/2003, 13h14

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