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 :

Valeur absolue dans une macro [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    419
    419 est déconnecté
    Membre confirmé
    Homme Profil pro
    Portage Salarial
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Portage Salarial
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Par défaut Valeur absolue dans une macro
    Bonsoir,
    je ne trouve nul part comment matérialiser un changement de Range dans une macro basée (accessoirement) sur une valeur cible.

    Si je rajoute une ligne dans mon fichier excel, je n'arrive pas à faire que la ou les Range dans ma macro tiennent compte du changement de ligne sur lesquelles s'appliquent la valeur cible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("g91").GoalSeek Goal:=Range("e91").Value, ChangingCell:=Range("M9") 'valeur cible sur le daily rate en fonction du salaire choisi
    et je ne trouve pas comment mettre en valeur relative les Ranges si cela est possible.
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    afin de bien comprendre

    admettons que tu insères une ligne entre la 2 et 3

    que deviens la ligne de code que tu nous montres, quel(s) Range change(nt) ou ne change(nt) pas dans ton souhait ?

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je ne parviens pas non plus à voir quel est le problème, dès lors qu'il s'agit de plages nommées.
    Si on y insère une ligne, le plage s'étend spontanément
    Le "problème" ne se poserait donc que si une ligne était insérée "à l'orée" d'une plage nommée. Elle n'aurait (pas fait exprès de jouer avec "orée") aucune raison valable d'être considérée comme faisant partie d'une plage nommée. Il conviendrait donc bien évidemment dans un tel cas (si on veut qu'elle "allonge" la plage? de redéfinir la plage nommée

  4. #4
    419
    419 est déconnecté
    Membre confirmé
    Homme Profil pro
    Portage Salarial
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Portage Salarial
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Par défaut
    Bonjour,
    pour clarification :

    Ma macro est définie sur des cellules spécifiques.

    Si je rajoute une ou plusieurs lignes dans mon tableau, cela décale le positionnement des cellules sur lesquelles ma macro est basée et elle devient donc inopérante car elle reste figée sur la Range initialement définie.

    Merci

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Dois-je répéter ce que j'ai dit plus haut ?
    Allez ! Montre un court exemple (le code uniquement) qui fait planter ta macro après insertion de lignes.
    J'entends pas là :
    - plage nommée, puis code sur cette plage, puis insertion dans la plage, puis code à nouveau.

  6. #6
    419
    419 est déconnecté
    Membre confirmé
    Homme Profil pro
    Portage Salarial
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Portage Salarial
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Par défaut
    re,
    c'est pas que je veux pas ...

    j'ai déjà fourni mon code.

    Mais je présente mon problème autrement.

    J'ai un fichier avec 95 lignes et 12 colonnes.
    J'ai une macro qui fait une valeur cible en tenant compte de la cellule G91, E91 et M9.

    Quand, pour xx raisons je décide de rajouter une ligne dans mon fichier ou décaler une colonne.. la macro ne marche plus car les données que je dois récupérer sont passées (dans le cas d'un rajout de ligne) de G91, E91 à G92, E92.

    Pour satisfaire Umparia: mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("g91").GoalSeek Goal:=Range("e91").Value, ChangingCell:=Range("M9")
    Quand je rajoute une ligne dans mon tableau ce code ne change pas. mais ce rajout de ligne fait que la bonne macro devient la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("g92").GoalSeek Goal:=Range("e92").Value, ChangingCell:=Range("M9")
    Je parle de rajouter une ligne mais c'est pareil si j'en supprime une ou 10 ou j'en rajoute 4.
    ca parle mieux ou je suis réellement mauvais en explications?

  7. #7
    Membre chevronné
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Par défaut
    Citation Envoyé par 419 Voir le message
    re,



    ...Je parle de rajouter une ligne mais c'est pareil si j'en supprime une ou 10 ou j'en rajoute 4.
    ca parle mieux ou je suis réellement mauvais en explications?

    Re,

    je viens d'essayer ton code en nommant les cellules, et je peux insérer des lignes sans changer le fonctionnement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub essai()
     
    Range("result").GoalSeek Goal:=Range("atteindre").Value, ChangingCell:=Range("change")
    End Sub
    cordialement
    geogeo

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Dis-nous voir, toi :
    voici ce que je t'ai demandé :
    Montre un court exemple (le code uniquement) qui fait planter ta macro après insertion de lignes.
    J'entends pas là :
    - plage nommée, puis code sur cette plage, puis insertion dans la plage, puis code à nouveau.
    Et ta réponse n'est pas ce que je t'ai demandé.
    Elle n'est qu'une répétition de ce que disais ton 1er message.
    Où est donc le code par lequel tu ajoutes ou supprimes une ligne ?
    Et si tu le fais manuellement : quelle était l'adresse de départ et quelle ligne as-tu ajouté ou supprimé ?
    Je répète donc : aucun problème avec plage nommée si ajout ou suppression au sein de la plage nommée.
    Voilà, m'sieu.

  9. #9
    419
    419 est déconnecté
    Membre confirmé
    Homme Profil pro
    Portage Salarial
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Portage Salarial
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Par défaut
    Merci pour vos retours.

    Umparia..
    En fait tu ne comprends pas mes explications

    Où est donc le code par lequel tu ajoutes ou supprimes une ligne ?
    Pas de code qui est lancé. Juste moi qui décide de rajouter une ligne. Le rajout de cette ligne dans mon tableau fait planter ma macro qui ne trouve plus les valeurs des cellules indiquées dans le Range de la macro car ce Range a changé du fait de l'ajout de la ligne.

    Et si tu le fais manuellement : quelle était l'adresse de départ et quelle ligne as-tu ajouté ou supprimé ?
    je le fais manuellement et je rajoute par exemple la ligne 3.

    Je répète donc : aucun problème avec plage nommée si ajout ou suppression au sein de la plage nommée.
    Je n'ai aucune plage. j'ai juste une feuille excel classique, j'ai appliqué une valeur cible via la macro pour éviter de faire à la main la manip. Mais quand je décide de rajouter une ligne dans ma feuille excel, cela décale toutes les lignes y compris celles qui servent à la valeur cible. Ma macro ne changeant pas, elle devient inopérante.

    Je peux pas faire mieux pour tenter de m'expliquer
    Je comprends l'idée de Geogeo70, je vais tester ça. En effet en définissant un nom pour les cellules puis en faisant la macro avec ces noms, le changement de ligne de la cellule doit pouvoir marcher dans la macro.

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je n'ai aucune plage
    Hé bien constitue donc les plages concernée et nomme-les donc !
    Pour mémoire :
    dès lors qu'il s'agit de plages nommées.
    Si on y insère une ligne, le plage s'étend spontanément

  11. #11
    419
    419 est déconnecté
    Membre confirmé
    Homme Profil pro
    Portage Salarial
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Portage Salarial
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Par défaut
    yo,
    je suis arrivé à régler ma problématique selon le point évoqué par Geogeo70, à savoir définir les cellules puis appliquer la macro sur le nom définis.
    Une modification de ligne ou colonne n'affecte pas la macro.

    Umparia,
    pas sur que tu suives mes explications. Je ne vois pas l'intérêt de créer une plage nommée (sauf à ce que tu parles des ranges dans ma macro faisant référence à une seule cellule).
    En tout cas dans mon exemple précis.

    Merci pour vos retours néanmoins.

  12. #12
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je suis arrivé à régler ma problématique selon le point évoqué par Geogeo70, à savoir définir les cellules puis appliquer la macro sur le nom définis.
    Ah !
    Tu m'étonnes, là ...
    Tu as fini par nommer et appliquer au nommage, tout simplement ...
    (ce qui t'était dit depuis le tout début, non ?)
    Bref ...

  13. #13
    419
    419 est déconnecté
    Membre confirmé
    Homme Profil pro
    Portage Salarial
    Inscrit en
    Mars 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Portage Salarial
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 82
    Par défaut
    nommer un range ne me parait pas logique quand je n'ai qu'une seule cellule concernée.

    Mais si c'est la solution pour qu'un ajout ou suppression de ligne ne perturbe pas une macro, je prends.

    Je serais moins catégorique sur le fait que c'était indiqué précédemment !! En tout cas, jusqu'au post de geogeo70 qui parle d'avoir testé en nommant ses cellules.

    Mais pas de soucis, je vous remercie pour vos interventions.

  14. #14
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par 419 Voir le message
    Je serais moins catégorique sur le fait que c'était indiqué précédemment !! En tout cas, jusqu'au post de geogeo70 qui parle d'avoir testé en nommant ses cellules.
    Bonjour,

    et pourtant, voir post #3


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

Discussions similaires

  1. Comment passer la valeur d'une cellule dans une macro
    Par senacle dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2018, 15h34
  2. Macro qui vérifie qu'une valeur est dans une table
    Par Filippo dans le forum Macro
    Réponses: 2
    Dernier message: 23/11/2009, 09h57
  3. Réponses: 2
    Dernier message: 24/02/2009, 17h40
  4. Récupération d'une valeur dans une macro-variable
    Par auredura dans le forum Macro
    Réponses: 16
    Dernier message: 03/09/2008, 17h19
  5. [Access][IHM]valeur absolue dans une textbox
    Par benoit_iund dans le forum IHM
    Réponses: 2
    Dernier message: 28/05/2007, 10h58

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