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 :

Formule STXT en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Formule STXT en VBA
    Bonjour,
    J’essaie d’écrire la formule =STXT(G108,2,NBCAR(G108)) en VBA où la ligne est variable, pour enlever le 1er caractère de gauche du contenu d’autre cellule de la colonne G (par exemple, la cellule G108). La formule fonctionne lorsque je l’écris dans la cellule, mais je n’arrive pas à la faire fonctionner en VBA. Il n’y a pas de message d’erreur, mais la cellule reste vide ou affiche le numéro de la ligne. J’ai essayé toutes sortes de combinaisons et je ne sais plus quoi inventer pour que ça fonctionne. Voici ce que j’ai essayé jusqu’à présent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ligne = ActiveCell.Row
    ActiveCell.Offset(0, 5) = "=MID(G" & CStr(Ligne) & "," & CStr(2) & ",LEN(G" & CStr(Ligne) & ")"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ligne = ActiveCell.Row
    ActiveCell.Offset(0, 5) = "=MID(G" & CStr(Ligne) & ",2,LEN(G" & CStr(Ligne) & ")"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ligne = ActiveCell.Row
    ActiveCell.Offset(0, 5) = "=MID(G" & Ligne & ",2,LEN(G" & Ligne & ")"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Ligne = ActiveCell.Row
    ActiveCell.Offset(0, 5) = "=" & VBA.Mid("G" & CStr(Ligne), 2, Len("G" & CStr(Ligne)))
    Aucun de ces codes n'a fonctionné. Quelqu'un a une autre idée?

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bonjour,
    Par défaut si on ne précise pas la propriété, c'est la valeur de la cellule.
    Pour mettre à jour la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Offset(0, 5).Formula = ...

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    En utilisant Formula comme stipulé par arkham46, j'opterais pour la 3e formule.
    MPi²

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Voici une réponse 100% VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Ligne As Double
    Dim Cellule As Range
     
    Ligne = ActiveCell.Row
    Set Cellule = Cells(Ligne, 7)
     
    ActiveCell.Offset(0, 5) = Right(CStr(Cellule.Value), Len(CStr(Cellule.Value)) - 1)
    J'espère que ça répond à ta demande.

  5. #5
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    tu peux également utiliser mid directement car c'est un fonction VBA comme Len

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Syntaxe :Mid ( text, start_position, number_of_characters )
     
    Dim Ligne, Lign2 As long
    Ligne =7
    Lign2 =8   'par exemple
    Cells(Lign2, 7).value  =Mid(cells(Ligne,7).value, 2,4) ' prend les 4 caractère en commençant par la deuxième
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci à tous pour vos réponses. Bon point Arkham46. Je ne m'étais pas aperçu que je ne l'écrivais pas comme il faut, concentrant toutes mes efforts à l'autre côté de l'équation. Finalement, j'ai opté pour la solution de OBO29.

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

Discussions similaires

  1. formule Excel dans VBA
    Par ninette24 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/07/2008, 14h31
  2. formule excel vers VBA
    Par kedas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2007, 18h18
  3. Parseur formule Excel <-> Code VBA
    Par gretch dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2007, 18h08
  4. Correspondance formules excel et VBA
    Par abu143 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2006, 17h54
  5. [EXCEL][VBA] Utilisation des formules Excel en VBA
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 15h08

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