Copier cellules excel dans htmlbody

Résolu
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 5 nov. 2006 à 12:30
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 5 nov. 2006 à 13:24
 Bonjour à tous....

Sur un server local, j'ai un fichier .xls (une seule feuille) dans lequel plusieurs utilisateurs
renseignent certaines cellules (text + coloriage).

Dans le bout de code ci-dessous, j'arrive à insérer le contenu (texte) des cellules de ce .xls
dans le HTMLBody d'un mail (via CDO.Message).

Questions:
- Comment reproduire le contenu de mes cellules (objExcel.Selection.Interior ou ColorIndex) ????;
- Y-a-il une autre méthode pour arriver à copier/coller le contenu et la mise en forme exacte de mes cellules ???

Pour la 2ème question, la réponse est OUI, mais je n'arrive pas (après 3h
de recherches sur google) à retrouver un script vbs qui répondait à cette question !!!

Je code en vbs, mais, même les propositions en vb6 seraient les bienvenues.
Merci de votre attention.

Dim str
str = "<HTML>"
str = str & "Bonjour,

"


str = str & "\"
intRow = intRow + 1
str = str & \" ----
\"
str = str & \" " & objExcel.Cells(intRow,1).Value & ", \"
str = str & \" " & objExcel.Cells(intRow,2).Value & ", \"
str = str & \" " & objExcel.Cells(intRow,3).Value & ", \"
str = str & \" " & objExcel.Cells(intRow,4).Value & ", \"
str = str & \" " & objExcel.Cells(intRow,5).Value & " , \"
str = str & \"\"
str = str & "
"

jean-marc

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 nov. 2006 à 13:07
Salut,

pour récupérer la couleur de la cellule excel et la transformer en couleur HTML, il faut utiliser la fonction de PCPT :

Function GetHtmlColorFromOleColor(ByVal lCol As OLE_COLOR) As String
    Dim R%, G%, B%
    R =  Int(lCol And &HFF)
    G = Int((lCol And &H100FF00) / &H100)
    B = Int((lCol And &HFF0000) / &H10000)
    GetHtmlColorFromOleColor = "#" & Format$(Hex(R), "00") & Format$(Hex(G), "00") & Format$(Hex(B), "00")
End Function

~<small> Mortalino </small>~

Exemple utilisation :

MsgBox GetHtmlColorFromOleColor(Range("A1").Interior.Color)
>> j'ai fait le test avec fond rouge, j'ai vérifié le résultat, il est bon.

Après c'est à toi de déterminer le format de cellule, à savoir si c'est en gras, centré, italique, etc... puis de le transposer en html.

Pour infos, voici un exemple de balise pour faire de "cases" :
"<table border =1 width=""800"" height=""50"" cellspacing=""0"">"

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
3
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
5 nov. 2006 à 12:58
Salut,
Ton problème illustre bien ce que j'appelle le "syndrome du wysiwig".
Tu ne pourras jamais obtenir une image strictement fidèle de ta mise en page excel avec du simple code html.
A la rigueur, tu peux imaginer une règle de transformation qui soit satisfaisante, à l'aide d'une feuille de style par exemple, et soyons ambitieux, que cette feuille de style s'applique à un fichier excel au format xml mais c'est pas simple...

Ou alors, tu "embedde" ton classeur excel directement dans une page web, ce qui te permettrait "d'importer" les possibilités d'excel dans un environnement web.


Apparament tu utilises le mail pour que chacun mettre à jour les cellules qui le concernent.


Tu sais que tu peux aussi partager ton fichier excel et synchroniser les différentes versions, ce qui te permettrais de rester dans le "standard"...


Ce ne sont que quelques pistes....






Jcbé[^]
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
5 nov. 2006 à 13:14
 Bonjour à tous....

Merci 198370 TMONOD  de ta réponse,
En fait, sur site d'infogérance, des utilisateurs (Téléphonie, Windows, AS400...) renseignent
le fichier du jour, après leurs contrôles respectifs.

<colgroup><col style =\"WIDTH: 90pt; mso-width-source: userset; mso-width-alt: 4388\" width=\"120\" /><col style=\"WIDTH: 60pt\" span=\"2\" width=\"80\" /><col style=\"WIDTH: 80pt; mso-width-source: userset; mso-width-alt: 3913\" span=\"2\" width=\"107\" /><col style=\"WIDTH: 72pt; mso-width-source: userset; mso-width-alt: 3510\" width=\"96\" /><col style=\"WIDTH: 60pt\" width=\"80\" /></colgroup>----
ENVIRONNEMENT, RESEAU, SYSTEMES, SAUVEGARDES, APPLICATIONS, TRAITEMENTS, , ----
TELEPHONIE,  ,  ,  ,  ,  , , ----
AS400,  ,  ,  ,  ,  , , ----
NT/2000,  ,  ,  ,  ,  , , ----
, , , , , , , ----
 , Résultat OK,  , Probléme non Bloquant,  , Problème bloquant, ----
, , , , , , , ----
, , , , , , , ----
Synthése des incidents :,  ,  ,  ,  , , ----
 , , , , ,  , , ----
 , , , , ,  , , ----
 , , , , ,  , , ----
 , , , , ,  , , ----
 , , , , ,  , , ----
 , , , , ,  , , ----
 , ,   , , ,  , , ----
 , , , , ,  , , ----
 , , , , ,  , , ----
 , , , , ,  , , ----
 ,  ,  ,  ,  ,  

Mon souhait étant d'optimiser la création du fichier .xls du jour (par rapport à un modèle - ok),
puis la dernière personne à renseigner devra envoyer ce fichier au client.
Pour l'instant, le fichier .xls est en pièce jointe.
Ce fichier se résumant aux cellules A1-F1 jusqu'à A26-F26, je trouve plus convivial d'incruster
le contenu dans le mail plutôt qu'en pièce jointe.

jean-marc
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
5 nov. 2006 à 13:24
 Re,

Merci Mortalino,

Effectivement, la function RGB existe aussi en vbs, mais je ne l'ai jamais utilisée.
RGB([ red], [ green], [ blue])

Arguments
* : redNombre de 0 à 255 représentant la composante rouge de la couleur. * : green<dd>Nombre de 0 à 255 représentant la composante verte de la couleur. * : blue<dd>Nombre de 0 à 255 représentant la composante bleue de la couleur.

Je n'ai plus qu'à tester !!!

jean-marc
0
Rejoignez-nous