Modifier format cellule via VBA

Fermé
Carochris13010 Messages postés 7 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 octobre 2017 - 28 févr. 2016 à 13:17
Carochris13010 Messages postés 7 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 octobre 2017 - 28 févr. 2016 à 19:36
Bonjour, je désire modifier le format d'une cellule à l'aide d'un code VBA en fonction d'un texte se trouvant dans une autre colonne.

Cellule en colonne J : 3000
Cellule en colonne K : FH

Si dans la cellule se trouvant en colonne K j'ai "FH" alors modifier le format de la cellule en colonne J en hh:mm

Cela fait quelques temps que j'essaie cela mais n'ayant pas de grande connaissance en VBA, c'est pas évident!
Je vous remercie
A voir également:

1 réponse

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 28/02/2016 à 14:42
Bonjour

pourquoi cherche dans VBA ce que peux faire une mise en forme conditionnelle par formule.
avec un format de base standard, MFC par formule:
=K1="FH" et format personnalisé [hh]:mm:ss

mais 3000 en format heures, ça fait un bon nombre d'heures puisqu'Excel prend ça pour 3000 jours

crdlmnt


La qualité de la réponse dépend surtout de la clarté de la question, merci!
0
Carochris13010 Messages postés 7 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 octobre 2017
28 févr. 2016 à 14:51
Bonjour,
Merci de votre réponse, je voulais faire cela via VBA car mon tableau est assez grand et cela me permettait d'automatiser cette action.
En réalité, FH signifie Flight Hour, sinon je n'ai pas saisie le principe de =K1="FH".
Je suis désolé mais que devrais-je faire au juste?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
28 févr. 2016 à 15:29
Sélectionnez le champ J sur la hauteur utile, pour l'exemple de J2 à J1000 à adapter

__Ruban / onglet accueil / icône mis en forme conditionnelle / et dans le menu qui s'affiche: "nouvelle règle"
__dans la fenêtre suivante: "utiliser une formule"

__entrez dans le cadre la formule:
=$K2="FH" . c'est à dire la formule qui correspond à la 1° cellule du champ (les autres lignes sélectionnées vont s'ajuster automatiquement)

et cliquez sur format
format / "personnalisé" et entrez dans type:
[hh]:mm:ss
si vous voulez des secondes
ou
[hh]:mm si vous ne voulez que les minutes, ou encore : [hh] pour les heures seulement

les crochets imposent à Excel d'afficher le total des heures sinon, seul le reste de la division par 24 s'affiche (mais la valeur num de la cellule reste inchangée)

ensuite OK et OK

vos cellules en J gardent le, format initial tant que sur la même ligne K ne contient pas DFH et sinon passe dans le format entré dans la MFC

vous pouvez aussi y associer des couleurs ou autres

crdlmnt
0
Carochris13010 Messages postés 7 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 octobre 2017 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
28 févr. 2016 à 16:39
Je vous remercie de votre réponse, je ne comprenais pas pourquoi je ne trouvais pas ces options de MFC mais Excel sur Mac ne le propose pas, j'ai donc essayé sur Windows et cela fonctionne, le seul problème est que mon nombre 3000 en colonne J est alors converti en 72000:00 et non en 3000:00.

Auriez vous une petite idée afin de palier à cela?

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
28 févr. 2016 à 18:36
non, pas d'idée autres que modifier la valeur entrée, sauf si c'est un résultat de formule, auquel cas vous pouvez transformer en h en divisant par 24
soit donc:
=(formule)/24

ou éventuellement entrer 24 dans une cellule hors champ, la copier, sélectionner le champ, à modifier et clic droit /collage spécial/ "division"

explication: l'unité horaire d'Excel est le jour de 24h et donc 3000 dans la cellule correspond à 3000 jours

mais si aucun de ces cas n'est possible chez vous, il faudra passer effectivement par VBA (ce n'est pas dans mes capacités, mais il y a ici pas mal de personnes compétentes dans ce domaine)

crdlmnt
0
Carochris13010 Messages postés 7 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 octobre 2017
28 févr. 2016 à 19:36
Je vais étudier encore un peu cela, mais je vous remercie néanmoins de toutes vos explications et d'avoir pris le temps de me répondre et de chercher des solutions à mon problème.

Cordialement et bonne soirée
0