Macro pour modifier l'unité

yusukens

XLDnaute Occasionnel
Bonjours,

jusqu'a présent j'ai toujours utiliser cette macro si dessous pour mettre une ou plusieur cellule selon une unité de mesure (ici : le €/m²).

Code:
Sub €_m²()
'
'
    ActiveCell.SetPhonetic
    Selection.NumberFormat = "#,##0.00"" €/m²"""
End Sub

et donc ma question et mon probleme est le suivant :
j'aimerai lorsque j'execute cette macro, un petit tableau s'affiche en me demandant l'unité que j'aimerai mettre, ce qui permettra d'enlever tous mes macros avec les différents unité inimaginable (m²; m³ etc...)
si quelqu'un à une idée

MERCI D'AVANCE.
 
Dernière édition:

Hervé

XLDnaute Barbatruc
Re : Macro pour modifier l'unité

bonjour

une proposition en pièce jointe à travers un usf.

celui ci s'ouvre en cliquant droit sur un chiffre et seulement sur un chiffre;

ceci reste bien sur un exemple, à toi d'adapter.


salut
 

Pièces jointes

  • yusu.zip
    9.8 KB · Affichages: 63

Evelynetfrancois

XLDnaute Impliqué
Re : Macro pour modifier l'unité

Bonjour yusukens et hervé
voila ce que j ai compris ???


Sub Format()
ActiveCell.SetPhonetic
Fiche = InputBox("Entrer LA VALEUR ," & Chr(13) & " 2 Pour M2 OU 3 Pour M3 ", "SÉLECTION DU FORMAT.")
If Fiche = 3 Then
Selection.NumberFormat = "#,##0.00"" €/m3"""
ElseIf Fiche = 2 Then
Selection.NumberFormat = "#,##0.00"" €/m2"""
End If
End Sub

a te lire

E et F
 

Hervé

XLDnaute Barbatruc
Re : Macro pour modifier l'unité

re yusu, salut EF :)

quitte à utiliser une variable, autant la déclarer :

Code:
Sub Format()
Dim fiche As Byte

fiche = Application.InputBox("Entrer LA VALEUR ," & Chr(13) & " 2 Pour M2 OU 3 Pour M3 ", "SÉLECTION DU FORMAT.", Type:=1)
If fiche = 3 Then
Selection.NumberFormat = "#,##0.00"" €/m3"""
ElseIf fiche = 2 Then
Selection.NumberFormat = "#,##0.00"" €/m2"""
End If
End Sub
sinon, sans variable :

Code:
Sub Format()

Select Case Application.InputBox("Entrer LA VALEUR ," & Chr(13) & " 2 Pour M2 OU 3 Pour M3 ", "SÉLECTION DU FORMAT.", Type:=1)
    Case 3: Selection.NumberFormat = "#,##0.00"" €/m3"""
    Case 2: Selection.NumberFormat = "#,##0.00"" €/m2"""
End Select

End Sub
salut :)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Macro pour modifier l'unité

Bonsoir E&F, Hello cher ami Hervé, Yusukens, le Forum

Contrairement à Toi, E&F, Hervé a utilisé la Méthode InputBox et non pas la Fonction InputBox.

Si tu regardes l'aide à "Application.InputBox" tu comprendras que l'on peut mieux maîtriser ce que le User va saisir avec un des Types prédéterminés suivants :

0 = A formula
1 = A number
2 =Text (a string)
4 = A logical value (True or False)
8 = A cell reference, as a Range object
16 = An error value, such as #N/A
64 = An array of values

Bonne Soirée
@+Thierry

PS Merci à Magic Ti_ de nous avoir fait découvrir cette InputBox "Magic"
 

yusukens

XLDnaute Occasionnel
Re : Macro pour modifier l'unité

merci, HERVE,Evelynetfrancois et THIERRY.

c'est pratiquement ce que je cherché. c vrai qu'on peut rentrer plusieur unité dans la macro pour avoir les unités qu'on déssire.

mais y'a t'il vraiment pas d'autre moyen qui permet de mettre dans la macro un variable ou autre chose qui permetterai de choisir lors de son execution "l'unité voulu" ?

si y'a pas de solution c'est pas grave, c'est déjà génial comme macro.
 

Evelynetfrancois

XLDnaute Impliqué
Re : Macro pour modifier l'unité

mais y'a t'il vraiment pas d'autre moyen qui permet de mettre dans la macro un variable ou autre chose qui permetterai de choisir lors de son execution "l'unité voulu"

Ce n est pas ce qu on a fait ????
la variable ...tu l as dans l inputBox ! non ?
ou alors envoie un bout de fichier avec se que tu souhaites de facon precise car on a peut etre pas saisie ton soucis !!

a plus
E et F
 

G.David

XLDnaute Impliqué
Re : Macro pour modifier l'unité

perso pour changer les unité dans un petit programme je me sers d'une barre d'outil dediée qi copie le format d'une cellule d'une plage predefinie sur la cellule active je ne sais pas si ce n'est pas moins lourd
 

G.David

XLDnaute Impliqué
Re : Macro pour modifier l'unité

oui il y a des petites macros assujetti aux boutons de la barre d'outils creee mais c'est du genre paste xlfomat
autrement pour un truc plus conséquent la baree d'outil appelle une macro par format
Code:
Sub Concentricité()
    ActiveCell.Select
    Selection.NumberFormat = """Conc.Ø"" ##0.00"
      Selection.Copy
      ActiveCell.Offset(0, 3).Range("A1").Select
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
End Sub
en exemple
celle ci formate deux cellules l'active est sont pendant l'une pour la valeur a mesuré lm'autre pour la valeur relevée
il suffit de rechargé la barre d'outil à l'ouverture du fichier est de la detruire à la fermeture
 

yusukens

XLDnaute Occasionnel
Re : Macro pour modifier l'unité

oui c'est ce que je faisais jusqu'a présent avec le code de mon 1er message.
j'infecté des icones personnalisés à une macro qui permet de changer les unités.

le souci et que parfois j'ai besoin d'autre unité que ceux des boutons.
du genre des unités pas trop utilisé comme le (W/m.K) pour les conductivités.

du coup je dois passer par les format personnalisé pour définir cette unité.

voila le pourquoi de mon probleme.

peu etre que si nous modifions le code de Hervé et Evelynetfrancois nous pourons obtenir un un code qui s'approche plus à ce que je souhaite, je m'explique en couleur :

Code:
Sub Format()

Select Case Application.InputBox("Entrer LA VALEUR ," & Chr(13) & " 2 Pour M² ou 3 Pour M³ ", "SÉLECTION DU FORMAT.", Type:=1)
    Case [b][color=red]3[/color][/b]: Selection.NumberFormat = "#,##0.00""[b][color=blue]€/m³[/color][/b]"""
    Case 2: Selection.NumberFormat = "#,##0.00"" €/m²"""
End Select

End Sub

je mi connais pas beaucoup en VBA mais y'a t'il pas un moyen de dire que le (€/m³ (en bleu) rappel la valeur indiqué en rouge (3)
???

MERCI
 
Dernière édition:

yusukens

XLDnaute Occasionnel
Re : Macro pour modifier l'unité

Je vais répondre à mon propre message =)
en fait si personne n'a une idée pour ce que j'ai demandé au dessu.
voila ce que j'ai pu modifier pour obtenir plus ce que je déssire.
mais probleme probleme,
cela ne marche pas avec toute les unités, pourquoi ? ça je ne sais pas.
voila mon code :

Code:
Sub Format()

    Dim unite As String
    unite = Application.InputBox("Entrer L'unité ," & Chr(13), Type:=2)
    Selection.NumberFormat = "#,##0.00 " & unite
    End Sub

voila quelque unité qui marchent :

a
c

!
o
etc...

Et voici des unité qui ne marchent pas :
y
b
s
d
etc...


si quelqu'un aurait une idée de modification de la macro qui permetterai de mettre toute les unités possible

MERCI D'AVANCE
 

Discussions similaires

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 696
dernier inscrit
BOUNIOL MARC