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 :

Problème avec les Range.Offset


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut Problème avec les Range.Offset
    Bonjour,

    Le prg suivant donne des résultats pas cohérents (excel 2010)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       Set Phase1 = Range("A1").Offset(0, 0)
        Set Phase2 = Range("A1").Offset(0, 2)
        Set Phase3 = Range("A1").Offset(0, 4)
        i1 = Phase1.Cells(1, 1).Column
        ' i1 = 1 OK
        i2 = Phase2.Cells(1, 1).Column
        ' i2 = 5 !!!
        i3 = Phase3.Cells(1, 1).Column
        ' i3 = 7 !!!
    J'imagine que c'est parce Phase 1 2 et 3 pointent plus ou moins sur les mêmes objets,
    mais comment travailler sur des vraies copies?

    Merci

  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
    Tu en est sûr des valeurs de i2 et i3?

  3. #3
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,
    Il va falloir que tu re-expliques ce que tu veux faire car pour ma part j'ai rien compris.
    Sur phase1 par exemple ça te paraît logique ce code (représentation de ton code)??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i1 = Range("A1").Offset(0, 0).Cells(1, 1).Column
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    sur un élément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i1 = Phase1.Cells(1, 1).Column 'revient colonne de Phase1, idem Phase1.column
    'Phase1.Cells(1, 1).Column = Phase1.Cells.Offset(0, 0).Column = Phase1.Column = Phase1.Offset(0,0).Column
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Pas possible ton truc.....
    Je viens de tester ton code sur mon Excel 2010 et 2013, le résultat attendu est correct :
    Nom : Animation.gif
Affichages : 598
Taille : 71,4 Ko
    J'ai envie de dire heureusement !!!

    Tu dois avoir inversé quelque chose quelque part, genre le 4 et le 2 ce qui donnerai bien :
    1 + 4 = 5
    5 + 2 = 7
    ......

  6. #6
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    j'ai le même résultat que cerede2000 (1 , 3 , 5) sur excel 2011 (Mac)

    tu peux l'écrire comme ça aussi, c'est le même résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Set Phase1 = Range("A1").Offset(0, 0)
        Set Phase2 = Range("A1").Offset(0, 2)
        Set Phase3 = Range("A1").Offset(0, 4)
        i1 = Phase1.Column
        ' i1 = 1 OK
        i2 = Phase2.Column
        ' i2 = 3 OK
        i3 = Phase3.Column
        ' i3 = 5 OK
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je pense que ma réponse du post #4 à stereo213 doit lui permettre de comprendre la différence entre les "Offset", le fait de mettre directement ".(1,1)" et les variables range
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    L'utilisation de Cells() dans un Range n'est nécessaire que quand le Range contient plus qu'une cellule et donc, Phase1.Cells(1, 1).Column revient à faire Phase1.Column. Par contre, que tu obtiennes 5 et 7 comme résultat est très surprenant !
    Phase1.Cells(1, 1).Column = 1 puisque 1 + 0 = 1, référence à A1
    Phase2.Cells(1, 1).Column = 3 puisque 1 + 2 = 3, référence à C1
    Phase3.Cells(1, 1).Column = 5 puisque 1 + 4 = 5, référence à E1
    Donc, pas logique que tu obtiennes 5 et 7 !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut Merci pour vos retours: c'est réglé ...
    Le fait de savoir que ca marche ailleurs est rassurant:
    j'ai fini par comprendre: il y avait une fusion des cellules A1 à A3 ce qui perturbait les résultats ...

  10. #10
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    AH !!!!!!!!!!!!!
    Les fameuses cellules fusionnées

  11. #11
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut cerede2000,

    tu utilises quel soft pour enregistrer l'écran?
    NB: PatrickToulon avait indiqué, récemment, celui qu'il utilise
    mais j'arrive pas à retrouver le message!
    Merci d'avance.

  12. #12
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    On ne le répètera jamais assez : la fusion c'est le MAAAAALLLLL ! A fuir à tout prix.
    Surtout que, la plupart du temps, on peut s'en passer sans problème, par exemple avec le format "centrer sur plusieurs colonnes".

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

Discussions similaires

  1. [VBA-E] Encore un problème avec les limites de RANGE
    Par durdesfois dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2007, 19h56
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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