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 dans cellules


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de stocks (Pharmacie)
    Inscrit en
    Septembre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Gestionnaire de stocks (Pharmacie)
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2018
    Messages : 18
    Points : 26
    Points
    26
    Par défaut Formule dans cellules
    Salut chers tous
    J'ai une plage de cellules D8:D20 que je renseigne avec des chiffres
    Je voudrais à l'aide d'une macro insérer devant chaque chiffre le signe =
    J'ai essayé avec mes maigres connaissances de concocter cette macro et il semble manquer quelque chose mais je ne sais quoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cel As Range
    For Each cel In Range("D8:D20")
    cel.FormulaR1C1 = "= cel.Value"
    Next cel

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Si j'ai bien compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For Each cel In Range("D8:D20")
            cel = "'=" & cel
        Next cel
    Cdlt

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de stocks (Pharmacie)
    Inscrit en
    Septembre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Gestionnaire de stocks (Pharmacie)
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2018
    Messages : 18
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Si j'ai bien compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For Each cel In Range("D8:D20")
            cel = "'=" & cel
        Next cel
    Cdlt
    MERCI

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 960
    Points : 28 970
    Points
    28 970
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je profite de cette discussion pour rappeler que l'apostrophe que l'on place devant une valeur numérique pour forcer celle-ci à être considérée comme du texte n'est pas considérée comme une valeur dans la cellule.

    Il n'y a donc pas de possibilité de faire un Rechercher/Remplacer de ' par rien par exemple ni de vérifier si le premier caractère de gauche de la cellule est égal à l'apostrophe car en effet l'apostrophe dans ce cas précis est considéré comme un caractère préfixé

    Si on souhaitait faire en sorte que des nombres précédés par ce préfixe redeviennent des nombres on utilisera en VBA la propriété PrefixCharacter de l'objet Range
    Code pour rétablir les nombres alphanumériques comme de valeurs nnumériques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Cel as range
    For Each cel In Range("D8:D20")
      With cel
         If .PrefixCharacter = "'" Then
            .Value = .Value
         End If
      End With
    Next
    End Sub
    J'ai voulu évoquer cette propriété parce-qu'il existe un autre façon de faire (comme le code ci-dessous) qui consiste à multiplier la valeur contenue dans la cellule texte par 1.
    Cependant pas dans ce cas de figure où la valeur est précédée par le signe d'égalité.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim cel As Range
    For Each cel In Range("F8:F20")
      With cel
       .Value = .Value * 1
      End With
    Next

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut Supprimer l'aspostrophe en préfixe
    Bonjour Philippe,

    Il y a un moyen tout simple pour supprimer l’apostrophe en préfixe (et qui conserve les formules) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim cel As Range
    For Each cel In Range("A1:A10")
      With cel
       .Formula = .Formula
      End With
    Next

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 960
    Points : 28 970
    Points
    28 970
    Billets dans le blog
    53
    Par défaut
    Bonjour Patrice,
    Il y a un moyen tout simple pour supprimer l’apostrophe en préfixe (et qui conserve les formules)
    Le but de mon intervention était de faire remarquer que l'apostrophe n'était pas un caractère traitable comme une chaîne de caractères mais je suis tout à fait d'accord avec toi.

    On peut également utiliser la procédure ci-dessous si l'on souhaite ne conserver que le résultat de la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim cel As Range
    For Each cel In Range("A1:A10")
      With cel
       .Value = .Formula
      End With
    Next
    J'utilise d'ailleurs cette instruction en lieu et place du Copier/Collage Special -Valeur

Discussions similaires

  1. [BO XI][DESKI] PROBLEME FORMULE DANS CELLULE
    Par jbouat dans le forum Deski
    Réponses: 4
    Dernier message: 24/04/2008, 23h34
  2. calculs de formules dans cellules
    Par bobby5169 dans le forum Excel
    Réponses: 14
    Dernier message: 24/09/2007, 08h25
  3. [VBA-E]Formule dans cellule en VBA
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/06/2007, 14h03
  4. [VBA-E] insertion de formule dans cellule
    Par jeff37 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/05/2006, 13h53
  5. [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Par Albertolino dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2003, 14h18

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