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 :

Mettre tous les chiffres en indices sur une colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut Mettre tous les chiffres en indices sur une colonne
    Bonjour

    J'ai un tableau avec toute une colonne où je dois mettre les formules moléculaires de produits chimiques ( genre C2H4O, mais avec 2 et 4 en indice). Je sais comment le faire "à la main", mais pas de façon automatique, et je n'y connais rien aux macros ...

    Si vous aviez une idée ...

    Merci d'avance
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  2. #2
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    c'est pas trop compréhensible genre C2H4O, mais avec 2 et 4 en indice ?
    Si tu sais le faire en manuel , tu peux mettre l'enregistreur de macro ( macro -> nouvelle macro ...) , exécuter les opérations manuelles.
    En fin d'enregistrement -> macro -> arrêter l'enregistrement.

    ensuite macro , éditer et tu peux t'inspirer du code généré.

  3. #3
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    oui, mais bon, c'est pas facile de modifier un code, quand on ne connait pas les bases .. En gros, c'est pour une colonne donnée, mettre tous les chiffres en indices ...
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

  4. #4
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Ci dessous une procèdure qui fait cela

    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
    18
    19
    20
    21
    Sub ConvertIndice(Col As Integer)
     
    Dim i As Long
    Dim ICar As Integer
    Dim Rg As Range
     
    For i = 1 To ActiveSheet.Columns(Col).End(xlDown).Row
     
        Set Rg = ActiveSheet.Cells(i, Col)
     
        For ICar = 1 To Len(Rg.Value)
     
            If IsNumeric(Mid(Rg.Value, ICar, 1)) Then
                Rg.Characters(ICar, 1).Font.Subscript = True
            End If
     
        Next ICar
     
    Next i
     
    End Sub
    A executer comme suit pour la colonne C (3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Lancement()
     
    ConvertIndice 3
     
    End Sub
    Jérôme

  5. #5
    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 767
    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 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici un code qui travaille sur un Selection de cellules (A adapter selon test besoins)
    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
    18
    Sub cInd()
     Dim Rng As Range, c As Byte
     For Each Rng In Selection
      With Rng
       With .Font
       .Strikethrough = False
       .Superscript = False
       .Subscript = False
       End With
       For c = 1 To Len(.Value)
        Select Case Asc(Mid(.Value, c, 1))
         Case 48 To 57
          .Characters(Start:=c, Length:=1).Font.Subscript = True
        End Select
       Next c
      End With
     Next Rng
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Merci beaucoup à tous pour votre aide, mais j'ai aussi des compsition comme celle ci FeSO4, 7H2O (avec un grand 7) et j'ai fini de tout faire à la main.
    J'espère que cela pour aider d'autres personnes...
    _____________________________________________
    Tours Football Club - Turonorum Civitas Libera

    Content pas content de ma réponse? N'hésitez pas votez !!

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

Discussions similaires

  1. [MySQL] Lister tous les time d'hier via une colonne last_time
    Par mecmec dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/06/2012, 17h06
  2. Sommer les valeurs des cellules sur une colonne
    Par neon29200 dans le forum Composants
    Réponses: 1
    Dernier message: 10/05/2012, 01h16
  3. Réponses: 1
    Dernier message: 09/03/2010, 08h43
  4. Réponses: 1
    Dernier message: 01/07/2009, 20h12
  5. Réponses: 4
    Dernier message: 10/04/2007, 18h59

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