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 :

range Variables Offset [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Djromé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 172
    Par défaut range Variables Offset
    Salut les Kracks,


    Je ne trouve pas le setup pour le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
    Comme vous l'avez compris, je souhaiterai sélectionner les cellules de ma variables aux cellules de ma variables et 3 colonnes plus loin!

  2. #2
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour

    Une piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim lastLineComment as Range
     
    Set lastLineComment = Range("A1") ' a adapter
     
    lastLineComment.Offset(0, 3).Select
    Tu dis

    Bon courage

  3. #3
    Membre confirmé Avatar de Djromé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 172
    Par défaut
    Merci Jean-Pierre,

    Je ne cherche pas à sélectionner la cellule en colonne D uniquement mais la cellule de ma variable à la colonne D, du genre:

    A1 étant bien lastLineComment défini comme ta proposition mais D1 devant être:
    lastlinecomment.offset(0,3)

    Il doit y avoir un problème de virgule ou de tréma!!!

    Merci tout de même

  4. #4
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Chez moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim lastLineComment As Range
     
    Set lastLineComment = Range("A1") ' a adapter
     
    Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
    Selectionne bien A1 à D1

    Tu dis

  5. #5
    Membre confirmé Avatar de Djromé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 172
    Par défaut
    Merci Jean-Pierre,

    Chez moi celà fonctionne également, mais j'ai un problème qui se croise dans la définition de la variable.

    En effet, elle est déclarée comme Variant suite au code suivant qui définie l'adresse de la cellule voulue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lastLineComment = Range("A" & 27 + strAccClient + strItemRequestAuditor + 2).Address
    Comme tu peux le voir, il y a d'autres variables référencées!

    Aussi, je souhaiterai fusionner les cellules ".MergeCells=False" comme indiqué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
    With Selection
            .HorizontalAlignment = xlLeft
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = True
            .ReadingOrder = xlContext
            .MergeCells = True
        End With
    Y'a-t-il une déclaration différente à effectuer?

  6. #6
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Il faut déclarer 2 variables
    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lastLineComment = Range("A" & 27 + strAccClient + strItemRequestAuditor + 2).Address
    lastLineComment est un string

    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(lastLineComment, lastLineComment.Offset(0, 3)).Select
    C'est explicitement un range

    Bon courage

  7. #7
    Membre confirmé Avatar de Djromé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 172
    Par défaut
    Jean-Pierre,

    Pourrai-je te demander comment t'y prendrai-tu pour résoudre mon problème.

    lastLineComment récupère l'ADRESSE de la dernière ligne voulue. A ce titre je la déclare donc comme STRING.

    Ensuite je souhaiterai sélectionner le résultat "EX: "$A$46" avec trois colonne suivante, ce qui exige une variable RANGE.

    Comment puis-je passer de mon résultat en STRING à une sélection en RANGE?

    Dois-je créer une autre variable:
    dim lastLineAdress as Range
    lastLineAdress = lastLineComment ???

    Encore merci pour ta persévérance!

  8. #8
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    test

    une piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim lastLineAdress As String
    lastLineAdress = Range("A1").Address ' par exemple
    lastLineAdress = Replace(lastLineAdress, "$ ", " ")
    Range(lastLineAdress).Select
    Cela fonctionne

    Je dois décrocher à demain

  9. #9
    Membre confirmé Avatar de Djromé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 172
    Par défaut
    Salut Jean-Pierre,

    J'ai trouver la solution suivante pour sélectionner deux variables dans un range (mais sans le offset intégré, je déclare ce dernier avant sur une variable string bis )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
     
    Dim lastLineAddress, lastLineAddress2 As String
    lastLineAddress = Range("A65000").End(xlUp).Address
    lastLineAddress2 = Range("A65000").End(xlUp).Offset(0, 3).Address
     
    Range(lastLineAddress, lastLineAddress2).Select
     
    End Sub
    Merci pour ta piste...
    Je suis toujours preneur (plus simple) d'un SETUP "si existant" comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(lamêmeVariable, lamêmeVariable.Offset(0,3)).Select

  10. #10
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour Djromé

    Que veux-tu dire
    Je suis toujours preneur (plus simple) d'un SETUP "si existant" comme suit:
    Voir le post #4 cela fonctionne

    Tu dis

  11. #11
    Membre confirmé Avatar de Djromé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 172
    Par défaut
    Salut Jean-Pierre,

    Je veux dire des variables qui font références à une adresse (donc String si je suis tes instructions).

    Effectivement, avec ton exemple en Range, celà fonctionne!

    @+

  12. #12
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Pour Offset tu dois instancier la cellule de départ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Cellule  As Range
     
    Set Cellule = Range("A1").Address
    Cellule.Offset(0, 3).Select
    Maintenant sit u veux partie d’une adresse ça va être quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Cellule  As Range
    Dim lamêmeVariable As String
     
    lamêmeVariable = Range("A1").Address
     
    Set Cellule = Range(lamêmeVariable)
    Range(Cellule, Cellule.Offset(0, 3)).Select
    Si j’ai bien compris
    Tu dis

  13. #13
    Membre confirmé Avatar de Djromé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 172
    Par défaut
    Salut Jean-Pierre,

    Désolé pour le remerciement en retard,

    Merci beaucoup!

    @+

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

Discussions similaires

  1. [XL-2003] Variable offset boucle
    Par Djromé dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/10/2011, 20h23
  2. [XL-2007] Vlookup et range variable
    Par luko6 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/11/2009, 14h50
  3. Somme d'une colonne (avec nombre de rangée variable)
    Par Berny77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2008, 23h30
  4. Graph et range variable
    Par fantii dans le forum Excel
    Réponses: 14
    Dernier message: 29/02/2008, 20h59
  5. Range variable selon critère
    Par Blobomotz dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/07/2007, 06h41

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