j'ai un programme en VB qui me "remplit" une feuille excel.
Conctretememt une routine me remplit une feuille "data" et depuis-la
j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB
l'ouvre, injecte les valeur, affiche la feuille de presentation.
On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou
"2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general",
j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve
avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas
pourquoi excel s'efforce de me changer le format !!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour Et comment sont alimentées tes données ? Cordialement Pascal "Géo" a écrit dans le message de news:
Hello !
j'ai un programme en VB qui me "remplit" une feuille excel. Conctretememt une routine me remplit une feuille "data" et depuis-la j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB l'ouvre, injecte les valeur, affiche la feuille de presentation. On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou "2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general", j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas pourquoi excel s'efforce de me changer le format !!
Une idee
Amicalement
Géo
Bonjour
Et comment sont alimentées tes données ?
Cordialement
Pascal
"Géo" <nobody@isperfect.coh> a écrit dans le message de
news:418A1F29.6080305@isperfect.coh...
Hello !
j'ai un programme en VB qui me "remplit" une feuille excel.
Conctretememt une routine me remplit une feuille "data" et depuis-la
j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB
l'ouvre, injecte les valeur, affiche la feuille de presentation.
On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou
"2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general",
j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve
avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas
pourquoi excel s'efforce de me changer le format !!
Bonjour Et comment sont alimentées tes données ? Cordialement Pascal "Géo" a écrit dans le message de news:
Hello !
j'ai un programme en VB qui me "remplit" une feuille excel. Conctretememt une routine me remplit une feuille "data" et depuis-la j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB l'ouvre, injecte les valeur, affiche la feuille de presentation. On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou "2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general", j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas pourquoi excel s'efforce de me changer le format !!
Une idee
Amicalement
Géo
ru-th
Salut
une possibilité, rajouter le format local avant [a1].NumberFormatLocal = "??/??" [a1] = 7 / 11
a+ rural thierry "Géo" a écrit dans le message de news:
Hello !
j'ai un programme en VB qui me "remplit" une feuille excel. Conctretememt une routine me remplit une feuille "data" et depuis-la j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB l'ouvre, injecte les valeur, affiche la feuille de presentation. On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou "2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general", j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas pourquoi excel s'efforce de me changer le format !!
Une idee
Amicalement
Géo
Salut
une possibilité, rajouter le format local avant
[a1].NumberFormatLocal = "??/??"
[a1] = 7 / 11
a+
rural thierry
"Géo" <nobody@isperfect.coh> a écrit dans le message de news:
418A1F29.6080305@isperfect.coh...
Hello !
j'ai un programme en VB qui me "remplit" une feuille excel.
Conctretememt une routine me remplit une feuille "data" et depuis-la
j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB
l'ouvre, injecte les valeur, affiche la feuille de presentation.
On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou
"2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general",
j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve
avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas
pourquoi excel s'efforce de me changer le format !!
une possibilité, rajouter le format local avant [a1].NumberFormatLocal = "??/??" [a1] = 7 / 11
a+ rural thierry "Géo" a écrit dans le message de news:
Hello !
j'ai un programme en VB qui me "remplit" une feuille excel. Conctretememt une routine me remplit une feuille "data" et depuis-la j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB l'ouvre, injecte les valeur, affiche la feuille de presentation. On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou "2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general", j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas pourquoi excel s'efforce de me changer le format !!
Une idee
Amicalement
Géo
michdenis
Bonjour Géo,
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7" comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans la cellule.
j'ai un programme en VB qui me "remplit" une feuille excel. Conctretememt une routine me remplit une feuille "data" et depuis-la j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB l'ouvre, injecte les valeur, affiche la feuille de presentation. On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou "2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general", j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas pourquoi excel s'efforce de me changer le format !!
Une idee
Amicalement
Géo
Bonjour Géo,
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas
vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7"
comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu
appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans
la cellule.
"Géo" <nobody@isperfect.coh> a écrit dans le message de news: 418A1F29.6080305@isperfect.coh...
Hello !
j'ai un programme en VB qui me "remplit" une feuille excel.
Conctretememt une routine me remplit une feuille "data" et depuis-la
j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB
l'ouvre, injecte les valeur, affiche la feuille de presentation.
On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou
"2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general",
j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve
avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas
pourquoi excel s'efforce de me changer le format !!
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7" comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans la cellule.
j'ai un programme en VB qui me "remplit" une feuille excel. Conctretememt une routine me remplit une feuille "data" et depuis-la j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB l'ouvre, injecte les valeur, affiche la feuille de presentation. On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou "2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general", j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas pourquoi excel s'efforce de me changer le format !!
Une idee
Amicalement
Géo
Géo
michdenis a écrit:
Bonjour Géo,
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7" comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans la cellule.
le probleme est que ... y'a toujours un probleme :-) ... c'est que je ne suis pas maitre de mes donnees , cela peut etre 2/7 et la fois d'apres 2 ou HS ... cela depend de l'exploitation des unites (c'est des donnees industrielles)
Pour repondre a Papou, mes donnees sont injectee par une boucle depuis VB : '********************************************************************* ' J'ai mes donnees dans un recordset : rs
Dim X As Object Set X = CreateObject("Excel.application")
For j = 0 To rs.RecordCount - 1 colonne = 3 For i = 0 To rs.Fields.Count - 1 ' je boucle sur les champs X.cells(ligne, colonne) = rs.Fields(i).Value colonne = colonne + 1 Next rs.MoveNext ligne = ligne + 1 Next X.sheets("RQ1").Activate X.Visible = True
Set X = Nothing Set rs = Nothing '***********************************************************************
et c'est dans une de ces donnees qui peut contenir des valeurs type 7/2
Je voudrais simplement que excel ne soit pas intellingent et ne prenne pas le dessus sur le type de donnees ...
Amiclement
Géo
michdenis a écrit:
Bonjour Géo,
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas
vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7"
comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu
appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans
la cellule.
le probleme est que ... y'a toujours un probleme :-) ... c'est que je ne
suis pas maitre de mes donnees , cela peut etre 2/7 et la fois d'apres 2
ou HS ... cela depend de l'exploitation des unites (c'est des donnees
industrielles)
Pour repondre a Papou, mes donnees sont injectee par une boucle depuis VB :
'*********************************************************************
' J'ai mes donnees dans un recordset : rs
Dim X As Object
Set X = CreateObject("Excel.application")
For j = 0 To rs.RecordCount - 1
colonne = 3
For i = 0 To rs.Fields.Count - 1
' je boucle sur les champs
X.cells(ligne, colonne) = rs.Fields(i).Value
colonne = colonne + 1
Next
rs.MoveNext
ligne = ligne + 1
Next
X.sheets("RQ1").Activate
X.Visible = True
Set X = Nothing
Set rs = Nothing
'***********************************************************************
et c'est dans une de ces donnees qui peut contenir des valeurs type 7/2
Je voudrais simplement que excel ne soit pas intellingent et ne prenne
pas le dessus sur le type de donnees ...
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7" comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans la cellule.
le probleme est que ... y'a toujours un probleme :-) ... c'est que je ne suis pas maitre de mes donnees , cela peut etre 2/7 et la fois d'apres 2 ou HS ... cela depend de l'exploitation des unites (c'est des donnees industrielles)
Pour repondre a Papou, mes donnees sont injectee par une boucle depuis VB : '********************************************************************* ' J'ai mes donnees dans un recordset : rs
Dim X As Object Set X = CreateObject("Excel.application")
For j = 0 To rs.RecordCount - 1 colonne = 3 For i = 0 To rs.Fields.Count - 1 ' je boucle sur les champs X.cells(ligne, colonne) = rs.Fields(i).Value colonne = colonne + 1 Next rs.MoveNext ligne = ligne + 1 Next X.sheets("RQ1").Activate X.Visible = True
Set X = Nothing Set rs = Nothing '***********************************************************************
et c'est dans une de ces donnees qui peut contenir des valeurs type 7/2
Je voudrais simplement que excel ne soit pas intellingent et ne prenne pas le dessus sur le type de donnees ...
Amiclement
Géo
michdenis
Bonjour Géo,
Tu peux essayer ceci ... j'ai seulement ajouté un petit test pour savoir si le contenu du champ contient un "/" . Évidemment je suppose que ce symbole n'est pas présent dans les autres types de données de ton recordset comme des "Dates".
Dim X As Object, D As Variant Set X = CreateObject("Excel.application") X.Workbooks.Open Filename:=fichier, ReadOnly:=True X.Sheets("Datas").Activate
For j = 0 To rs.RecordCount - 1 colonne = 3 For i = 0 To rs.Fields.Count - 1 ' je boucle sur les champs D = rs.Fields(i).Value If InStr(1, D, "/", vbTextCompare) <> 0 Then X.Cells(ligne, colonne).NumberFormat = "@" X.Cells(ligne, colonne) = D Else X.Cells(ligne, colonne) = D colonne = colonne + 1 End If Next rs.MoveNext ligne = ligne + 1 Next X.Sheets("RQ1").Activate X.Visible = True
Set X = Nothing Set rs = Nothing
Salutations!
"Géo" a écrit dans le message de news: michdenis a écrit:
Bonjour Géo,
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7" comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans la cellule.
le probleme est que ... y'a toujours un probleme :-) ... c'est que je ne suis pas maitre de mes donnees , cela peut etre 2/7 et la fois d'apres 2 ou HS ... cela depend de l'exploitation des unites (c'est des donnees industrielles)
Pour repondre a Papou, mes donnees sont injectee par une boucle depuis VB : '********************************************************************* ' J'ai mes donnees dans un recordset : rs
Dim X As Object Set X = CreateObject("Excel.application")
For j = 0 To rs.RecordCount - 1 colonne = 3 For i = 0 To rs.Fields.Count - 1 ' je boucle sur les champs X.cells(ligne, colonne) = rs.Fields(i).Value colonne = colonne + 1 Next rs.MoveNext ligne = ligne + 1 Next X.sheets("RQ1").Activate X.Visible = True
Set X = Nothing Set rs = Nothing '***********************************************************************
et c'est dans une de ces donnees qui peut contenir des valeurs type 7/2
Je voudrais simplement que excel ne soit pas intellingent et ne prenne pas le dessus sur le type de donnees ...
Amiclement
Géo
Bonjour Géo,
Tu peux essayer ceci ... j'ai seulement ajouté un petit test pour savoir si le contenu du champ contient un "/" .
Évidemment je suppose que ce symbole n'est pas présent dans les autres types de données de ton recordset comme des
"Dates".
Dim X As Object, D As Variant
Set X = CreateObject("Excel.application")
X.Workbooks.Open Filename:=fichier, ReadOnly:=True
X.Sheets("Datas").Activate
For j = 0 To rs.RecordCount - 1
colonne = 3
For i = 0 To rs.Fields.Count - 1
' je boucle sur les champs
D = rs.Fields(i).Value
If InStr(1, D, "/", vbTextCompare) <> 0 Then
X.Cells(ligne, colonne).NumberFormat = "@"
X.Cells(ligne, colonne) = D
Else
X.Cells(ligne, colonne) = D
colonne = colonne + 1
End If
Next
rs.MoveNext
ligne = ligne + 1
Next
X.Sheets("RQ1").Activate
X.Visible = True
Set X = Nothing
Set rs = Nothing
Salutations!
"Géo" <nobody@isperfect.coh> a écrit dans le message de news: 418A2B88.50200@isperfect.coh...
michdenis a écrit:
Bonjour Géo,
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas
vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7"
comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu
appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée
dans
la cellule.
le probleme est que ... y'a toujours un probleme :-) ... c'est que je ne
suis pas maitre de mes donnees , cela peut etre 2/7 et la fois d'apres 2
ou HS ... cela depend de l'exploitation des unites (c'est des donnees
industrielles)
Pour repondre a Papou, mes donnees sont injectee par une boucle depuis VB :
'*********************************************************************
' J'ai mes donnees dans un recordset : rs
Dim X As Object
Set X = CreateObject("Excel.application")
For j = 0 To rs.RecordCount - 1
colonne = 3
For i = 0 To rs.Fields.Count - 1
' je boucle sur les champs
X.cells(ligne, colonne) = rs.Fields(i).Value
colonne = colonne + 1
Next
rs.MoveNext
ligne = ligne + 1
Next
X.sheets("RQ1").Activate
X.Visible = True
Set X = Nothing
Set rs = Nothing
'***********************************************************************
et c'est dans une de ces donnees qui peut contenir des valeurs type 7/2
Je voudrais simplement que excel ne soit pas intellingent et ne prenne
pas le dessus sur le type de donnees ...
Tu peux essayer ceci ... j'ai seulement ajouté un petit test pour savoir si le contenu du champ contient un "/" . Évidemment je suppose que ce symbole n'est pas présent dans les autres types de données de ton recordset comme des "Dates".
Dim X As Object, D As Variant Set X = CreateObject("Excel.application") X.Workbooks.Open Filename:=fichier, ReadOnly:=True X.Sheets("Datas").Activate
For j = 0 To rs.RecordCount - 1 colonne = 3 For i = 0 To rs.Fields.Count - 1 ' je boucle sur les champs D = rs.Fields(i).Value If InStr(1, D, "/", vbTextCompare) <> 0 Then X.Cells(ligne, colonne).NumberFormat = "@" X.Cells(ligne, colonne) = D Else X.Cells(ligne, colonne) = D colonne = colonne + 1 End If Next rs.MoveNext ligne = ligne + 1 Next X.Sheets("RQ1").Activate X.Visible = True
Set X = Nothing Set rs = Nothing
Salutations!
"Géo" a écrit dans le message de news: michdenis a écrit:
Bonjour Géo,
Si tu donnes à tes cellules un format "Texte" avant d'insérer tes données, cela doit fonctionner. L'inverse n'est pas vrai. Comme excel est "intelligent", il tente de décoder l'information que la cellule contient et il interprète "2/7" comme un format de date possible qu'il s'empresse de transformer en valeur numérique (affichage date). Même si tu appliques un format "Texte" subséquemment, tu vas le faire à la valeur numérique pas à la valeur originale insérée dans la cellule.
le probleme est que ... y'a toujours un probleme :-) ... c'est que je ne suis pas maitre de mes donnees , cela peut etre 2/7 et la fois d'apres 2 ou HS ... cela depend de l'exploitation des unites (c'est des donnees industrielles)
Pour repondre a Papou, mes donnees sont injectee par une boucle depuis VB : '********************************************************************* ' J'ai mes donnees dans un recordset : rs
Dim X As Object Set X = CreateObject("Excel.application")
For j = 0 To rs.RecordCount - 1 colonne = 3 For i = 0 To rs.Fields.Count - 1 ' je boucle sur les champs X.cells(ligne, colonne) = rs.Fields(i).Value colonne = colonne + 1 Next rs.MoveNext ligne = ligne + 1 Next X.sheets("RQ1").Activate X.Visible = True
Set X = Nothing Set rs = Nothing '***********************************************************************
et c'est dans une de ces donnees qui peut contenir des valeurs type 7/2
Je voudrais simplement que excel ne soit pas intellingent et ne prenne pas le dessus sur le type de donnees ...
Amiclement
Géo
Géo
michdenis a écrit:
Bonjour Géo,
Tu peux essayer ceci ... j'ai seulement ajouté un petit test pour savoir si le contenu du champ contient un "/" . Évidemment je suppose que ce symbole n'est pas présent dans les autres types de données de ton recordset comme des "Dates".
....
D = rs.Fields(i).Value If InStr(1, D, "/", vbTextCompare) <> 0 Then X.Cells(ligne, colonne).NumberFormat = "@" X.Cells(ligne, colonne) = D Else X.Cells(ligne, colonne) = D colonne = colonne + 1 End If
Cela fais une condition de plus ... mais je croix que je ne vais pas y couper :-) Des fois on cherche plus complique que ce n'est !
Merci
Géo
PS : N'impeche qu'y m'enerve Excel des jours :-) pour une fois qu'on lui demanderai de ne pas s'ccuper de ce qu'on lui injecte ...
michdenis a écrit:
Bonjour Géo,
Tu peux essayer ceci ... j'ai seulement ajouté un petit test pour savoir si le contenu du champ contient un "/" .
Évidemment je suppose que ce symbole n'est pas présent dans les autres types de données de ton recordset comme des
"Dates".
....
D = rs.Fields(i).Value
If InStr(1, D, "/", vbTextCompare) <> 0 Then
X.Cells(ligne, colonne).NumberFormat = "@"
X.Cells(ligne, colonne) = D
Else
X.Cells(ligne, colonne) = D
colonne = colonne + 1
End If
Cela fais une condition de plus ... mais je croix que je ne vais pas y
couper :-)
Des fois on cherche plus complique que ce n'est !
Merci
Géo
PS : N'impeche qu'y m'enerve Excel des jours :-) pour une fois qu'on lui
demanderai de ne pas s'ccuper de ce qu'on lui injecte ...
Tu peux essayer ceci ... j'ai seulement ajouté un petit test pour savoir si le contenu du champ contient un "/" . Évidemment je suppose que ce symbole n'est pas présent dans les autres types de données de ton recordset comme des "Dates".
....
D = rs.Fields(i).Value If InStr(1, D, "/", vbTextCompare) <> 0 Then X.Cells(ligne, colonne).NumberFormat = "@" X.Cells(ligne, colonne) = D Else X.Cells(ligne, colonne) = D colonne = colonne + 1 End If
Cela fais une condition de plus ... mais je croix que je ne vais pas y couper :-) Des fois on cherche plus complique que ce n'est !
Merci
Géo
PS : N'impeche qu'y m'enerve Excel des jours :-) pour une fois qu'on lui demanderai de ne pas s'ccuper de ce qu'on lui injecte ...
Modeste
Bonsour ® Géo qui n'est pas de la douce Touraine,
-----Message d'origine----- une possibilité, rajouter le format local avant [a1].NumberFormatLocal = "??/??" [a1] = 7 / 11 rural thierry
oui thierry mais si tu rentres 7/2 tu obtiens : 3 1/2 ;o)))
tout dépend de l'usage ultérieur ????? si l'on veut garder visuellment en A1 : 7/2 il suffit d'ajouter une simple quote devant la fraction .... A1='7/2 cela sera bien sur un texte inutilisable en calcul.... :-( ex :B1= 1*A1 renvoie 38024 soit 7/2/2004
-------------------------- pour pouvoir faire des calculs il faudra utiliser une fonction (chère à PFFFFF..) telle que ;o)))))
Function EvaluatePffffff(target) If Not IsNumeric(target) Then EvaluatePffffff = Evaluate("" & target & "") Else EvaluatePffffff = 1 * target ' Pffffff....;o)) End If End Function
j'ai un programme en VB qui me "remplit" une feuille excel.
Conctretememt une routine me remplit une feuille "data" et depuis-la
j'ai des liaisons qui pointes sur les "vraies" cellules pour affichage.
En fin de compte cette feuille n'est jamais enregistree, le programme VB
l'ouvre, injecte les valeur, affiche la feuille de presentation.
On peut la consulter, l'imprimer mais pas l'enregistre (en lecture seule)
Mon probeleme est que certaines de ces valeurs sont de forme "7/2" ou
"2/11" qu'excel me transforme aimablement en 7 fevrier et 2 novembre.
Meme si j'ouvre le fichier , mets le format a "texte" ou "general",
j'enregistre --> la fois suivante ou je passe mes donnees je me retrouve
avec mes 2 fevrier et 7 novembre.
Y'a pa sun moyen de bloquer ce format de chiffre ? je ne comprends pas
pourquoi excel s'efforce de me changer le format !!
Une idee
Amicalement
Géo
.
Bonsour ® Géo qui n'est pas de la douce Touraine,
-----Message d'origine-----
une possibilité, rajouter le format local avant
[a1].NumberFormatLocal = "??/??"
[a1] = 7 / 11
rural thierry
oui thierry mais si tu rentres 7/2
tu obtiens : 3 1/2 ;o)))
tout dépend de l'usage ultérieur ?????
si l'on veut garder visuellment en A1 : 7/2
il suffit d'ajouter une simple quote devant la
fraction ....
A1='7/2
cela sera bien sur un texte inutilisable en calcul.... :-(
ex :B1= 1*A1 renvoie 38024 soit 7/2/2004
--------------------------
pour pouvoir faire des calculs
il faudra utiliser une fonction (chère à PFFFFF..)
telle que ;o)))))
Function EvaluatePffffff(target)
If Not IsNumeric(target) Then
EvaluatePffffff = Evaluate("" & target & "")
Else
EvaluatePffffff = 1 * target ' Pffffff....;o))
End If
End Function
-----Message d'origine----- une possibilité, rajouter le format local avant [a1].NumberFormatLocal = "??/??" [a1] = 7 / 11 rural thierry
oui thierry mais si tu rentres 7/2 tu obtiens : 3 1/2 ;o)))
tout dépend de l'usage ultérieur ????? si l'on veut garder visuellment en A1 : 7/2 il suffit d'ajouter une simple quote devant la fraction .... A1='7/2 cela sera bien sur un texte inutilisable en calcul.... :-( ex :B1= 1*A1 renvoie 38024 soit 7/2/2004
-------------------------- pour pouvoir faire des calculs il faudra utiliser une fonction (chère à PFFFFF..) telle que ;o)))))
Function EvaluatePffffff(target) If Not IsNumeric(target) Then EvaluatePffffff = Evaluate("" & target & "") Else EvaluatePffffff = 1 * target ' Pffffff....;o)) End If End Function