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 :

Insertion $ dans chaque formules


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Points : 13
    Points
    13
    Par défaut Insertion $ dans chaque formules
    Bonjour à tous !

    Je souhaiterais ajouter un signe dollars ($) devant chaque lettre de colonne, je m'explique

    j'ai ces formules :

    =DECALER('Operations Quantity'!C6;;ENT((LIGNES($1:$1)-1)))
    =DECALER('Operations Quantity'!D6;;ENT((LIGNES($1:$1)-1)))
    =DECALER('Operations Quantity'!E6;;ENT((LIGNES($1:$1)-1)))
    .
    .
    .
    .

    est ainsi de suite sur 384 cellules

    Je souhaiterais créer une macro qui ajoute un $ devant chaque lettre de colonne

    =DECALER('Operations Quantity'!$C6;;ENT((LIGNES($1:$1)-1)))
    =DECALER('Operations Quantity'!$D6;;ENT((LIGNES($1:$1)-1)))
    =DECALER('Operations Quantity'!$E6;;ENT((LIGNES($1:$1)-1)))
    .
    .
    .
    .

    ces formules sont en lignes, le fait que les soient variable complique le problème, quelqu'un aurait une piste ?

  2. #2
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Tu récupères ta formule dans un String dans lequel tu fais une recherche du point d'exclamation et ensuite, avec les fonctions Left() et Mid() tu reconstruis par concaténation ta formule en y insérant le $

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,

    Tu récupères ta formule dans un String dans lequel tu fais une recherche du point d'exclamation et ensuite, avec les fonctions Left() et Mid() tu reconstruis par concaténation ta formule en y insérant le $
    Merci pour ta réponse, j'avais dans l'idée de faire quelque chose de ce genre. Je débute en VBA, pourrais tu juste me donner les principales fonctions à utiliser pour la recherche du point d'exclamation et la reconstruction par concaténation ?

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    les principales fonctions à utiliser pour la recherche du point d'exclamation et la reconstruction par concaténation ?
    Instr (rubrique Instr, fonction de ton aide interne VBA)
    opérateur & de concaténation

    Au passage : intéresse-toi également à la fonction Replace

    Je débute en VBA
    tout cela est justement à la portée de tout débutant. Tu as même, sur ce site, un didacticiel sur le traitement des chaînes de caractères. Je te conseille de le lire.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Points : 13
    Points
    13
    Par défaut
    Pour les personnes intéréssée qui passerons sur ce forum, voici la solution que j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub Macro5()
     
    Dim MaChaine As String, insert As String, a As Long
     
    For i = 10 To 384
     
    MaChaine = Cells(13, i)
    insert = "$"
    a = 32
     
    MaChaine = Left$(MaChaine, a - 1) & insert & Mid$(MaChaine, a)
    Cells(13, i) = MaChaine
     
     
     Next i
     
    End Sub
    Ce code est pour l'insertion d'un caractère à un endroit précis, entre 31 (a-1) et 32 (a), donc entre le 31unième et le 32ième caractère.

    Je me suis également servi de ce code qui sert à modifier un caractère existant dans votre string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Macro6()
     
    Dim Msg As String
     
    For i = 10 To 384
     
    Msg = Cells(13, i)
     
      Mid(Msg, 21, 1) = "u"
     
      Cells(13, i) = Msg
     
      Next i
     
    End Sub
    Ici le code remplace le 21unième caractère par la lettre u. Voila, bonne chance !

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

Discussions similaires

  1. [Toutes versions] insertion d'une formule dans un formatage prédéfini
    Par coolmen dans le forum Excel
    Réponses: 7
    Dernier message: 27/05/2011, 09h25
  2. [XL-2007] Valeur de case dans une formule qui ne change pas à chaque tri.
    Par Lovecr4ft dans le forum Excel
    Réponses: 1
    Dernier message: 27/04/2011, 16h00
  3. [COM] Insertion d'une formule dans une cellule
    Par nicekiller dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 23/06/2010, 10h59
  4. Réponses: 5
    Dernier message: 25/05/2009, 15h58
  5. insertion de cellules dans une formule excel
    Par nazaire dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 19h12

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