Discussione:
vb e/o macro che crea file html
(troppo vecchio per rispondere)
unknown
2009-07-16 14:13:22 UTC
Permalink
Salve,

ho un foglio excel, in una cella ho come risultato codice html.
Vorrei un pulsante che permetta di creare un file html con tale codice.

Le operazioni *potrebbero* essere:
1) copia del contenuto della cella;
2) apertura di un file.txt
3) incolla dentro tale file
4) salvataggio del file con:
- nome specificato dentro il foglio EXCEL
- estenzione: .html
5) salvataggio su desktop o, ancora meglio, che permetta di scegliere
dove salvare (sfoglia...)

Non è necessario "passare" per un file txt, l'importante è il risultato.
(magari esiste una specifica funzione che io ignoro o altro...)

Grazie.
unknown
2009-07-16 14:53:01 UTC
Permalink
Post by unknown
Salve,
ho un foglio excel, in una cella ho come risultato codice html.
Vorrei un pulsante che permetta di creare un file html con tale codice.
1) copia del contenuto della cella;
2) apertura di un file.txt
3) incolla dentro tale file
- nome specificato dentro il foglio EXCEL
- estenzione: .html
5) salvataggio su desktop o, ancora meglio, che permetta di scegliere
dove salvare (sfoglia...)
Non è necessario "passare" per un file txt, l'importante è il risultato.
(magari esiste una specifica funzione che io ignoro o altro...)
Ho fatto così:

-Registra macro
1) selezione e copia cella (quella col codice html)
2) apri / Nuovo... / Cartella di lavoro vuota
3) seleziona cella A1
4) incolla speciale...
5) valori
6) salva con nome...
7) scelgo il desktop
8) clicco su ok

Smanettando sul codice vb (*ad esempio* cambiando l'estensione del file
generato) posso ottenere più o meno quello che voglio (attendo le vostre
correzioni).

Problema:
il file html generato inizia con dei caratteri strani (non so se li
visualizzerete) tipo:

ÐÏࡱá>þÿ
DþÿÿÿþÿÿÿCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
s ÍÁÀá°Áâ\pFabio B°aÀ=œ¯1/4=àK"?%8X@?"·Ú1Èÿ??"Arial1Èÿ??"Arial1Èÿ??"Arial1Èÿ??"Arial3"¬
"\ #,##0;\-"¬ "\ #,##0="¬ "\ #,##0;[Red]\-"¬ "\ #,##0?"¬ "\
#,##0.00;\-"¬ "\ #,##0.00I""¬ "\ #,##0.00;[Red]\-"¬ "\
#,##0.00q*6_-"¬
Mauro Gamberini
2009-07-16 16:22:15 UTC
Permalink
Post by unknown
ho un foglio excel, in una cella ho come risultato codice html.
Vorrei un pulsante che permetta di creare un file html con tale codice.
<cut>

Le operazioni *sono*:

Public Sub m()

Dim FileNum As Integer
FileNum = FreeFile
Dim sTesto As String
Dim sh As Worksheet

On Error GoTo RigaErrore

Open "C:\tuoFile.html" For Output As #FileNum
Set sh = Worksheets("Foglio1")
With sh
sTesto = .Range("A1").Value
End With

RigaChiusura:
Set sh = Nothing
Print #FileNum, sTesto
Close #FileNum
Exit Sub

RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura

End Sub

Qui il codice si presuppone sia nella cella A1
del Foglio1. Modifica i rferimenti con
i tuoi.
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
unknown
2009-07-16 21:54:01 UTC
Permalink
Post by unknown
ho un foglio excel, in una cella ho come risultato codice html.
Vorrei un pulsante che permetta di creare un file html con tale codice.
<cut>
[...]

Funziona! :)

Avrei bisogno di una modifica ovvero vorrei poter scegliere il nome del
file (questo genera sempre tuoFile.html).

Forse, basterebbe collegare il codice a una cella del foglio in cui c'è
scritto il nome del file.

Sarebbe perfetto se si aprisse la classica finestra windows sfoglia in
modo da poter scegliere nome e percorso.
In questo modo avrei anche il controllo che il file non venga
sovrascritto grazie all'alert di windows.

Chiedo, non so assolutamente se è possibile, se chiedo la luna o se è
semplice. Tentar non nuoce
Mauro Gamberini
2009-07-17 06:57:04 UTC
Permalink
Post by unknown
Funziona! :)
Bene.
Post by unknown
Avrei bisogno di una modifica ovvero vorrei poter scegliere il nome del
file (questo genera sempre tuoFile.html).
Forse, basterebbe collegare il codice a una cella del foglio in cui c'è
scritto il nome del file.
Sarebbe perfetto se si aprisse la classica finestra windows sfoglia in
modo da poter scegliere nome e percorso.
In questo modo avrei anche il controllo che il file non venga sovrascritto
grazie all'alert di windows.
Prova:

Public Sub m()

Dim FileNum As Integer
FileNum = FreeFile
Dim sTesto As String
Dim sh As Worksheet
Dim sPath As String
Dim sNomeFile As String
Dim lRisposta As Long

On Error GoTo RigaErrore

With Application
sPath = .InputBox( _
"Inserire percorso file.") _
& "\"
sNomeFile = .InputBox( _
"Inserire nome file.") _
& ".html"
End With

If Dir(sPath & sNomeFile) <> "" Then

lRisposta = MsgBox( _
Prompt:="Il file esiste. Sovrascriverlo?", _
Title:="Attenzione", _
Buttons:=vbYesNo + vbQuestion)

If lRisposta = vbNo Then
Exit Sub
End If

End If

Open sPath & "\" & sNomeFile _
For Output As #FileNum
Set sh = Worksheets("Foglio1")
With sh
sTesto = .Range("A1").Value
End With

RigaChiusura:
Set sh = Nothing
Print #FileNum, sTesto
Close #FileNum
Exit Sub

RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura

End Sub
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
unknown
2009-07-17 13:22:26 UTC
Permalink
Post by unknown
Sarebbe perfetto se si aprisse la classica finestra windows sfoglia in
modo da poter scegliere nome e percorso.
In questo modo avrei anche il controllo che il file non venga sovrascritto
grazie all'alert di windows.
[...]

Funziona :)

Ancora una, visto che (mi sembra di aver capito) non è possibile far
uscire la classica finestra di windows per scegliere (e non digitare) il
percorso, preferirei avere un percorso fisso tipo *C:/miei_file_html*

Una volta creato il file, smisterò manualmente i files creati.
Mauro Gamberini
2009-07-17 13:38:07 UTC
Permalink
Post by unknown
Ancora una, visto che (mi sembra di aver capito) non è possibile far
uscire la classica finestra di windows per scegliere
Con questa soluzione, no.
Post by unknown
(e non digitare) il percorso, preferirei avere un percorso fisso tipo
*C:/miei_file_html*
Una volta creato il file, smisterò manualmente i files creati.
I pratica torniamo(quasi) al mio primo post.

Public Sub m()

Const sPATH As String = "C:\tuaCartella\"
Dim FileNum As Integer
FileNum = FreeFile
Dim sTesto As String
Dim sh As Worksheet
Dim sNomeFile As String
Dim lRisposta As Long

On Error GoTo RigaErrore

With Application

sNomeFile = .InputBox( _
"Inserire nome file.") _
& ".htm"
End With

If Dir(sPATH & sNomeFile) <> "" Then

lRisposta = MsgBox( _
Prompt:="Il file esiste. Sovrascriverlo?", _
Title:="Attenzione", _
Buttons:=vbYesNo + vbQuestion)

If lRisposta = vbNo Then
Exit Sub
End If

End If

Open sPATH & "\" & sNomeFile _
For Output As #FileNum
Set sh = Worksheets("Foglio1")
With sh
sTesto = .Range("A1").Value
End With

RigaChiusura:
Set sh = Nothing
Print #FileNum, sTesto
Close #FileNum
Exit Sub

RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura

End Sub
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
unknown
2009-07-17 14:53:57 UTC
Permalink
Post by Mauro Gamberini
Post by unknown
Ancora una, visto che (mi sembra di aver capito) non è possibile far
uscire la classica finestra di windows per scegliere
Con questa soluzione, no.
Post by unknown
(e non digitare) il percorso, preferirei avere un percorso fisso tipo
*C:/miei_file_html*
Una volta creato il file, smisterò manualmente i files creati.
I pratica torniamo(quasi) al mio primo post.
Perfetto, grazie.

aggiungo questo per chi leggerà in futuro:
Creare la cartella C:\tuaCartella\ (ovviamente personalizzabile) prima
di avviare la macro.

Saluti.
Mauro Gamberini
2009-07-17 15:38:14 UTC
Permalink
Post by unknown
Perfetto, grazie.
Grazie per il riscontro.
Post by unknown
Creare la cartella C:\tuaCartella\ (ovviamente personalizzabile) prima di
avviare la macro.
Immagino che se metti una costante
come path, tu sappia che quella path esiste...
Ad ogni modo, dai un'occhiatina nella
guida di Excel a:

Istruzione MkDir
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
unknown
2009-07-17 16:32:25 UTC
Permalink
Post by Mauro Gamberini
Immagino che se metti una costante
come path, tu sappia che quella path esiste...
Ad ogni modo, dai un'occhiatina nella
Istruzione MkDir
Beh, hai ragione perfettamente... precisavo per chi, come me, di vb ha
pochissima dimestichezza.

Ciao, grazie ancora.
Mauro Gamberini
2009-07-17 16:34:07 UTC
Permalink
Post by unknown
Post by Mauro Gamberini
Immagino che se metti una costante
come path, tu sappia che quella path esiste...
Ad ogni modo, dai un'occhiatina nella
Istruzione MkDir
Beh, hai ragione perfettamente... precisavo per chi, come me, di vb ha
pochissima dimestichezza.
Ciao, grazie ancora.
;-)
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
Loading...