Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel > Forum spécial EXCEL 2007

Advertisement

Réponse
 
LinkBack Outils de la discussion
Vieux 14/03/2009, 19h46   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: mars 2009
Messages: 8
Par défaut Formule chimique

Bonjour
Je construit une base de données avec dans une colonne le nom chimique des formules: ex: H2SO4 avec 2 et 4 en indice. Le formulaire de saisie fait en VBA ne peut prendre dans un TextBox ce genre d'écriture. Je veux donc créer un module( sait pas trop à quoi ça sert mais vu sur le web) piloté par un bouton situé sur la feuille 1 (par exemple) ou dans la barre d'outils qui permet de mettre les chiffres de la cellule en indice. Dans une formule chimique seuls les chiffres suivants des lettres sont en indice, ceux qui précedent sont sur la même ligne.
Je veux faire ceci pour éviter de faire à chaque fois clic droit sur la cellule, puis format, police, indice.
J'ai trouvé sur sur le web ce fichier (vieux) mais je n'arrive pas à m'en sortir, et ce sont des macros pour Word.
Je vous remercie.
Fichiers attachés
Type de fichier : zip equabil.zip (21,4 Ko, 14 affichages)
magmatique est déconnecté   Réponse avec citation
ANNONCES
Vieux 15/03/2009, 10h31   #2 (permalink)
JNP
XLDnaute Barbatruc
 
Avatar de JNP
 
Date d'inscription: août 2007
Messages: 2 426
Par défaut Re : Formule chimique

Bonjour Magmatique ,
Voici une sub mettant en indice TOUS les chiffres de ta formule dans la cellule active (attention à ne pas en sélectionner plusieurs, je n'ai pas mis de test pour cela).
Code:
Dim I As Integer, J As Integer
J = Len(ActiveCell)
For I = 1 To J
If IsNumeric(Mid(ActiveCell, I, 1)) = True Then
ActiveCell.Characters(Start:=I, Length:=1).Font.Subscript = True
End If
Next I
Par contre, pour laisser en normal ceux qui sont devant, pas évident, il faudrait que ta nomenclature soit plus précise... Si tu ne mets un chiffre devant que pour le 1er caractère, il te suffit de modifier
Code:
For I = 2 to J
si tu mets un blanc avant le chiffre au milieu, il va falloir compliquer le test, mais tu aura de toute façon un problème sur C14 par rapport à 14C car dans les 2 cas, 4 sera précédé par 1 et donc tu ne saura pas si c'est un blanc avant ou une lettre, ou il faudra encore complexifier le test, de même pour 100 etc.
Teste déjà ce code, après...
Bon dimanche
__________________
« Donnez-moi un point d'appui et je soulèverai le monde » Archimède
« L'important, ce n'est pas de savoir se servir des outils, c'est de savoir que les outils existent » JNP
http://jnp63.labrute.fr
JNP est déconnecté   Réponse avec citation
Vieux 15/03/2009, 18h15   #3 (permalink)
XLDnaute Impliqué
 
Date d'inscription: octobre 2005
Localisation: Paris
Messages: 979
Par défaut Re : Formule chimique

Bonjour le fil, JNP, magmatique

Une petite variante, de la Sub de JNP, qui ne met pas en indice un nombre en début de chaine
Ainsi dans "4 Fe", le 4 ne sera pas mis en indice
Code:
    Dim i%, fin As Integer
    
    fin = Len(ActiveCell)
    
    Application.ScreenUpdating = False
    
    For i = Len(CStr(Val(ActiveCell))) + 1 To fin
        If IsNumeric(Mid(ActiveCell, i, 1)) = True Then ActiveCell.Characters(i, 1).Font.Subscript = True
    Next
    
    Application.ScreenUpdating = True
A plus
soenda est déconnecté   Réponse avec citation
Vieux 15/03/2009, 20h34   #4 (permalink)
XLDnaute Nouveau
 
Date d'inscription: mars 2009
Messages: 8
Par défaut Re : Formule chimique

merci je vais tester.
magmatique est déconnecté   Réponse avec citation
Vieux 15/03/2009, 20h54   #5 (permalink)
XLDnaute Nouveau
 
Date d'inscription: mars 2009
Messages: 8
Par défaut Re : Formule chimique

[url=http://www.hiboox.fr/go/images/divers/indice,6f6baa4c47f7b16c51f39d89016c889c.bmp.html][/url

Voici un exemple le 4 et 2 sont bien en indice, mais le 6 ne doit pas y être.
J'ai testé la 2eme indication.
magmatique est déconnecté   Réponse avec citation
Vieux 15/03/2009, 21h01   #6 (permalink)
XLDnaute Nouveau
 
Date d'inscription: mars 2009
Messages: 8
Par défaut Re : Formule chimique

La 1ère indication produit exactement la même chose, mais cela fonctionne si je tape 6H2O tout seul sans rien devant, le 6 est normal et le 2 en indice.
magmatique est déconnecté   Réponse avec citation
Vieux 15/03/2009, 21h06   #7 (permalink)
XLDnaute Impliqué
 
Date d'inscription: octobre 2005
Localisation: Paris
Messages: 979
Par défaut Re : Formule chimique

Re,

Citation:
Voici un exemple le 4 et 2 sont bien en indice, mais le 6 ne doit pas y être.
Tu aurais dû le dire tout de suite...

En reprenant ton exemple :
avec un espace entre le 4 et le 6, le 4 sera en indice et pas le 6.

Si ça te conviens, je te code ça. (Vois la PJ)

A plus
Images attachées
Type de fichier : png Capture1.PNG (1,1 Ko, 5 affichages)

Dernière modification par soenda ; 15/03/2009 à 21h24.
soenda est déconnecté   Réponse avec citation
Vieux 15/03/2009, 21h47   #8 (permalink)
XLDnaute Impliqué
 
Date d'inscription: octobre 2005
Localisation: Paris
Messages: 979
Par défaut Re : Formule chimique

Re,

Le bout de code suivant règle le cas précité.

Code:
Dim i%, fin As Integer
    
    With ActiveCell
    
        If IsNumeric(.Value) Then Exit Sub
        fin = Len(.Value)
        
        For i = Len(CStr(Val(.Value))) + 1 To fin
            If IsNumeric(Mid(.Value, i, 1)) = True And Mid(.Value, i - 1, 1) <> " " Then _
                .Characters(i, 1).Font.Subscript = True
        Next
        
    End With
en PJ, un exemple qui gère aussi les exposants

A plus
Fichiers attachés
Type de fichier : xlsm Ecriture chimie.xlsm (19,0 Ko, 2 affichages)

Dernière modification par soenda ; 18/03/2009 à 20h23. Motif: Ajout PJ
soenda est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Symbole et Composition Chimique David XLD Applications disponibles dans l'espace de téléchargement 0 15/01/2009 23h41
Formule pour modifier une cellule avec condition d'une autre formule ozzy75 Forum Excel 7 18/09/2007 23h48
Formule dépendant de la derniere cellule d'une colonne + formule sur une durée mrbean2 Forum Excel 8 17/07/2006 01h50
fonction VBA qui inscrit la valeur d'une formule au lieu de la formule man Forum Excel Downloads - Archives 4 29/09/2004 16h40
Formule chimique et USF Le Fnake Forum Excel Downloads - Archives 2 19/08/2003 13h11


Fuseau horaire GMT +2. Il est actuellement 02h05.


(C) 2006 Excel Downloads