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 definir une range à colonne variable ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Comment definir une range à colonne variable ?
    Comment definir un(e) range à colonne variable ?

    Par exemple :

    n : variable, entier representant le nombre de case de decalage

    -------------Colonne-------------Ligne------------
    --------------------------------------------------
    De:--------- A+n------------------1--------------
    --------------------------------------------------
    A:-----------C+n-----------------500-------------
    --------------------------------------------------

    J'ai ecrit qqchose comme ca:

    range("A + n & 1 : C + n & 500")

    mais ce n'est pas bon.

    Je cherche depuis un moment, mais je ne doit pas chercher au bon endroit, car je ne trouve pas.

    Merci d'avance. Jean-Claude.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("A" & n + 1 & ":C" & n + 500)
    ... si j'ai bien compris ce que tu veux...

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Essaie la méthode Offset de l'objet Range. Un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub toto()
        Dim plage As Range, cellule As Range
        Dim n As Integer, nCols As Integer, nRows As Integer
        n = 2
        nCols = 8
        nRows = 12
        Set plage = Range(Range("A1").Offset(0, n), Range("A1").Offset(nRows, n + nCols))
        For Each cellule In plage
            cellule.Value = Round((cellule.Row + cellule.Column) / 2, 2)
        Next
    End Sub

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Remerciments
    Merci, l'ofset de l'objet range marche tres bien !



    Jean-Claude.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/07/2006, 14h09
  2. Comment définir une fonction dans une iframe ?
    Par mercier133 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2006, 18h23
  3. Comment écrire une très longue variable dans un fichier ?
    Par hijodelanoche dans le forum Langage
    Réponses: 8
    Dernier message: 17/11/2005, 17h12
  4. Debutant SQL : Comment inserer une nouvelle colonne dans une
    Par cquadjul dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/07/2005, 22h34
  5. [ADO.NET] Comment rendre une certaine colonne "AutoIncrement" ?
    Par maitrebn dans le forum Accès aux données
    Réponses: 3
    Dernier message: 23/03/2005, 23h12

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