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

Excel Discussion :

[VBA-E] Equivalent VBA :fonction " = Cellule"


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [VBA-E] Equivalent VBA :fonction " = Cellule"
    Bonjour,
    Sous Tableur, avant d'avoir mis au point mon petit progamme VBA pour rédiger mes devis plus rapidement, après avoir sélectionnée une cellule j'utilisais la fonction " = Cellule unetelle de l'autre feuille " et NON "Copie". En effet les cellules sources étant le résultat de calcul d'autres calcul, la fonction copie ne renvoyait pas à la feuille source et décalait les calculs, donnant des résultats aberrants.
    De cette façon, et c'est tout l'intérêt, si je modifie un paramêtre antérieur, la valeur de ma cellule s'en retrouve modifiée.( But: ajuster mon devis final)

    Sous VBA, j'ai utilisé, i étant la variable de la dernière ligne d'écriture, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells (i + 1, 4)= Worksheets("Calcul").Range("Z13")
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D" + CStr(i + 1) )=Worksheets("Calcul").Range("Z13")

    Malheureusement, ces fonctions sont identiques et ne prennent que la valeur de la cellule source en coupant les liens. Si je modifie après coups mes indices de poses, la cellule source est bien modifiée mais PAS la destination.
    J'ai essayé sans trops d'espoir:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Calcul").Range("Z13").Copy Range("D" + CStr(i + 1) )
    ( En apparté, si je mets Range(Cells(i + 1, 4) ) à la place ça bogue, pourquoi ?)

    Mais cette formule revient au copiage bête évoqué plus haut donnant des résultats aberrant. (Copy valeurs, format et fonction mais en coupant les liens souces). Copy destination:= ne fonctionne pas mieux. C'est même identique, pourquoi rajouter destination:= ?

    Quelle est donc la fonction VBA qui correspond à la fonction " = Cellule unetelle" ? Merci d'avance.

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    Voir la propriété formula de la cellule ..

    Pourquoi autant de propriétés 'Formula' différentes ?


  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Avec Formula
    Si je mets Formula ça bogue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("F" + CStr(m + 5)).Formula = "=Worksheets("Calcul").Range("AB179")"
    Ne croyez pas que je ne cherche pas. Avant de poster une question, je fouille dans les aides et FAQ parfois plus d'une heure!!

  4. #4
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    ce qu'il faut mettre dans la propriété formula c'est la même chose que sous Excel....

    pour t'aider ..:
    1. Sous Excel place la formule désirée dans une cellule
    2. place ensuite le curseur sur cette cellule
    3. passe ensuite sous l'editeur VBE (alt-f11)
    4. dans la fenêtre exécution Ctrl G
    5. puis saisi : ?ActiveCell.Formula
    6. et le résultat affiché t'aidera à savoir se que tu dois mettre dans la propriété fromula





    dans ton cas ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("F" + CStr(m + 5)).Formula = "=Calcul!AB179"

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Merci bbil !
    Impec!
    J'avais même pas imaginé que l'on puisse procéder ainsi !
    Et comme on ne trouve rien ni dans l'aide, ni dans la FAQ, ni.... nulle part quoi, même pas dans le bouquin "Formation à VBA de dominique Maniez" que je déconseille.(J'ai reçu la version 2000 avec plein d'errurs d'indexation, Merci Amazon...)
    Il ne me reste plus qu'à corriger les 50 pages voir plus de mes codes!

    Merci BEAUCOUP!
    You are The

    PS: Même en cliquant sur le "dieze" avant chaque code ça inscrit (Code)(Code) mais ça ne fait pas l'encadré sur le forum...? Pas très explicite tout ça!

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

Discussions similaires

  1. [XL-2000] recherche equivalent VBA de la fonction NO.SEMAINE
    Par cobra38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2011, 20h25
  2. [VBA]Affectation d'une valeur à une cellule par une fonction
    Par lallougri dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/02/2006, 14h24

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