Problème avec la fonction Format sous VBA

ToTheEnd

XLDnaute Nouveau
Salut,

Alors voilà, j'ai un petit problème avec un code récupéré qui me fait un drôle de truc (Excel 2003 en Anglais).

En bref, alors que je construis un tableau dynammiquement dans une feuille, je lui donne aussi un titre (une date) dynamique à certaines colonnes. Toutefois, pour une raison que j'ignore, quand je veux écrire ma date, elle ne s'affiche pas vraiment comme j'aimerais. Ci-après, le code employé:

Planning.Cells(iMonthLine, iStartColumn) = Format("01." & iMonth & ".2007", "mmmm")

Le problème se situe à droite du égal. Pour commencer, c'est quoi ce "mmmm"? Quand je fais F1 sur la fonction Format, jamais l'aide de Micromou ne m'indique cette option (mmm uniquement, mais pas mmmm).

De plus, j'aimerais bien afficher l'année de manière dynamique mais alors que j'essaie de l'intégrer dans ma formule ('iMonth & iYear' par exemple), la date ne s'affiche pas corrèctement (pourtant la variable existe!).

Quelqu'un a une ou des idées?

T
 

Pierrot93

XLDnaute Barbatruc
Re : Problème avec la fonction Format sous VBA

Bonjour totheend,

essaye peut être comme ci dessous :

Code:
Planning.Cells(iMonthLine, iStartColumn) = Format(CDate("01/" & iMonth & "/2007"), "mmmm")

j'ai remplacé les points par des /
doit te renvoyer dans la cellule le nom du mois (mmmm), enfin chez moi sur version française, à adapter...

bone journée
@+
 

ToTheEnd

XLDnaute Nouveau
Re : Problème avec la fonction Format sous VBA

Merci Pierrot... mais j'ai juste envie de jeter cet ordi avec excel par la fenêtre.

Avec ma proposition de base, la date affichée dans ma cellule est: "1.10.2007" ce qui est juste mais moi, je cherche juste à afficher le mois en fait, voire mois et année comme "octobre 2007".

Quand j'essaie ta proposition avec les /, ça me donne: "January"... si l'affichage du format du mois est OK, comparer à octobre, c'est un peu loin et surtout faux! Preuve qu'il y a un problème je me suis dit que j'obtiendrai le résultat voulu avec "Format(iMonth, "mmmm")" et il me retourne toujours "January"... ce qui est toujours faux par rapport à octobre.

Bref, ces histoires de Format me rendent dingue!!!

Autre idée avant que je mette le feu à tout ça?

T
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Problème avec la fonction Format sous VBA

Bonjour

tu as 2 possibilités

1 - tu veux vraiment l'affichage octobre 2007 en dur donc en texte
Planning.Cells(iMonthLine, iStartColumn) = Format(DateSerial(iyear, imonth, 1), "mmmm yyyy")

2 - tu veux la cellule en date 01/10/2007 mais affichée octobre 2007

Planning.Cells(iMonthLine, iStartColumn) = DateSerial(iyear, imonth, 1)
Planning.Cells(iMonthLine, iStartColumn) .NumberFormat = "mmmm yyyy"
 

ToTheEnd

XLDnaute Nouveau
Re : Problème avec la fonction Format sous VBA

Merci, c'est la seconde solution qui s'est avérée être la bonne... toutefois, ces manipulations ont généré un problème que je n'avais pas avant. Avant ces manipulations, cette date s'affichait sur plusieurs colonnes (ce qui était l'effet recherché), maintenant tout est dans une cellule qui est trop petite pour tout afficher (elle affiche ######).

Si j'agrandis la colonne, la date s'affiche parfaitement en Anglais (October 2007). Toutefois, comment notifier que cette date peut sortir de sa colonne et s'afficher sur plusieurs?

Pour ce qui est de ta seconde intervention... j'ai tout simplement réalisé que ce que je voulais faire ne trouverai pas une réponse "comme ça". La réponse de "Excel-lent" était peut être bonne mais honnêtement, je ne l'ai pas trop comprise et les quelques exemples dispo sont plus des usines à gaz qu'un résumé de ce que je veux faire.

Pour le moment, je nage (coule?) complètement dans mon projet que j'estimais simple mais qui s'avère complexe à cause de ma méconnaissance totale du VBA...

J'ai bien acheté un bouquin pour essayer d'y voir plus clair mais je ne suis pas plus avancé car je ne trouve pas que les livres disponibles sont très didactiques. Pour résumer concrètement mes propos, tous ces bouquins parlent très sommairement de ce que telle ou telle fonction fait, de ce que telle classe apporte, etc. Mais pour le moment, je n'ai pas trouvé grand chose qui lie le tout. L'ensemble me semble assez abstrait car je trouve la documentation et l'aide en ligne de Micromou pathétique comparée à tout ce que j'ai pu voir ailleurs (la référence pour moi étant Apple avec son site de développeur pour Objective-C et autres). De plus, l'éditeur d'Excel montre assez mal les différences entre les différentes syntaxes (j'imagine qu'ils vendent un logiciel bestial de programmation VBA... pour 1'000 euros).

Bref, mon projet, dans l'état actuel de mes connaissances, est un peu au point mort et je n'ose plus appeler mes 2 ou 3 copains qui ont déjà été bien gentil de me faire démarrer.

T
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Problème avec la fonction Format sous VBA

Re

Si tu es au format texte ta date va prendre plusieurs colonnes tant que ta cellule d'à coté est vide mais en date il lui faut la place

Ok pour ta réponse mais mentionne le aussi sur l'autre fil que Excel_lent lise aussi ta réponse
 

Discussions similaires