Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Estrarre N caratteri da un testo

123 views
Skip to first unread message

Ricky

unread,
Oct 1, 2005, 4:47:00 AM10/1/05
to
Ciao,
ho scoperto che la segnalazione di errore nell'esecuzione
di una macro, dipende dalla lunghezza del testo
contenuto in una cella che vado a fargli inserire nella mail.
Non puň superare i 630 caratteri.

Fermo restando che se qualcuno capisse
come ovviare questa limitazione, mi farebbe cosa grata... :-)
pensavo di ovviare in parte al problema,
eliminando dal testo della cella in questione,
tutto quello che non mi serve.

Piů precisamente, vorrei
1. estrarre eliminare dal testo
tutto quanto si trova a destra di "Nome:"
e tutto quanto si trova a sinistra di "Data segnalazione:" (compreso "Data
segnalazione:")

In N7
"------------------Nome:---------Data segnalazione:-------------"
------------------ -------------------------------
da eliminare da eliminare

2. Calcolare la lunghezza della parte del testo che rimane dopo
l'eliminazione del superfluo,
e tagliare la parte dopo il 630° carattere

Il testo cosě ottenuto, potrebbe ad esempio apparire in M7


Riporto il codice (il solito...),
nel caso qualcuno trovasse il modo di ovviare al problema.
Il testo della cella N7 č quello che alimenta la variabile "testottmail"
Alla fine ho scoperto che questo non puň essere superiore a 630 caratteri,
per limitare la lunghezza di "body" (=FraseIniziale + FraseFinale(= ---- +
testottmail)
entro 770 caratteri
Oltre, viene segnalato errore


Public Sub PREPARAmail()

Dim destinatario As String
Dim FraseFinale As String
destinatario = ActiveCell.Value

Oggetto = "Risposta a sua richiesta"
FraseIniziale = "Gentile " & ActiveCell.Offset(0, 1) & " " &
ActiveCell.Offset(0, 2) & "," _
& "%0A"
testottmail = ActiveCell.Offset(0,
Worksheets("QUERY").Range("C6").Value).Value

FraseFinale = "%0A" & "Cordiali saluti" _
& "%0A" & Foglio2.Range("E2").Value _
& "%0A" & "Servizio Clienti" _
& "%0A" & "%0A" & "-----------" _
& "%0A" & "Account: " & ActiveCell.Offset(0, 4) & "%0A" & testottmail

Body = FraseIniziale & "%0A" & FraseFinale

URL = "mailto:" & destinatario & "?subject=" & Oggetto & "&body=" & Body
On Error GoTo fine
ActiveWorkbook.FollowHyperlink URL

Exit Sub
fine:
Dim Msg, Style, Title, Response
Msg = "IMPOSSIBILE CREARE eMail in automatico!" &
Chr(13) _
& "Puoi comunque incollare nella mail che scriverai" &
Chr(13) _
& "il TEMPLATE che hai appena selezionato"
Style = vbInformation
Title = "ATTENZIONE!"
Response = MsgBox(Msg, Style, Title)


End Sub


Rémi

unread,
Oct 1, 2005, 9:39:27 AM10/1/05
to
Ciao,

penso che questa funzione ti risolvera il problema (a mettere in N7 :

=SINISTRA(CONCATENA(SINISTRA(M7;RICERCA("nome:";M7)+4);STRINGA.ESTRAI(M7;RIC
ERCA("Data segnalazione:";M7)+18;LUNGHEZZA(M7)));630)

--
Alcuni esempi VBA Excel
http://remigueudelot.free.fr/

Spero di aver risposto bene alla tua domanda.
Rémi.

"Ricky" <Rick...@libero.it> a écrit dans le message de
news:82s%e.5175$ID6....@twister2.libero.it...


> Ciao,
> ho scoperto che la segnalazione di errore nell'esecuzione
> di una macro, dipende dalla lunghezza del testo
> contenuto in una cella che vado a fargli inserire nella mail.

> Non può superare i 630 caratteri.


>
> Fermo restando che se qualcuno capisse
> come ovviare questa limitazione, mi farebbe cosa grata... :-)
> pensavo di ovviare in parte al problema,
> eliminando dal testo della cella in questione,
> tutto quello che non mi serve.
>

> Più precisamente, vorrei


> 1. estrarre eliminare dal testo
> tutto quanto si trova a destra di "Nome:"
> e tutto quanto si trova a sinistra di "Data segnalazione:" (compreso "Data
> segnalazione:")
>
> In N7
> "------------------Nome:---------Data segnalazione:-------------"
> ------------------ -----------------------------
--
> da eliminare da eliminare
>
> 2. Calcolare la lunghezza della parte del testo che rimane dopo
> l'eliminazione del superfluo,
> e tagliare la parte dopo il 630° carattere
>

> Il testo così ottenuto, potrebbe ad esempio apparire in M7


>
>
> Riporto il codice (il solito...),
> nel caso qualcuno trovasse il modo di ovviare al problema.

> Il testo della cella N7 è quello che alimenta la variabile "testottmail"
> Alla fine ho scoperto che questo non può essere superiore a 630 caratteri,

Ricky

unread,
Oct 2, 2005, 11:59:02 AM10/2/05
to

"Rémi" <masremi(senza)@aol.com> ha scritto nel messaggio
news:u8HAQ2ox...@TK2MSFTNGP10.phx.gbl...

> Ciao,
>
> penso che questa funzione ti risolvera il problema (a mettere in N7 :
>
> =SINISTRA(CONCATENA(SINISTRA(M7;RICERCA("nome:";M7)+4);STRINGA.ESTRAI(M7;RIC
> ERCA("Data segnalazione:";M7)+18;LUNGHEZZA(M7)));630)

Grazie Rèmi per il tempo dedicatomi!
la tua formula restituiva però il testo che volevo eliminare,
non quello da conservare.

Ti devo ringraziare ugualmente,
per avermi dato uno spunto prezioso
per creare la formula che mi interessava.
Il limite di 630 caratteri diventavas ininfluente,
è l'ho potuto eliminare.
Ti dico la formula che ho fatto: (da mal di testa....)

=SOSTITUISCI(SOSTITUISCI(M7;(SINISTRA(M7;RICERCA("Nome:";M7)-1));"");STRINGA.ESTRAI(M7;RICERCA("Data
segnalazione:";M7);200);"")

Ricky


Rémi

unread,
Oct 2, 2005, 12:05:38 PM10/2/05
to
Ciao,

Forse avevo mal capito allora ... L'importante sia che abbia risolto !!!
Mi piacerebbe comunque sapere il perchè di questa limite di 630 caratteri ?!

--
Alcuni esempi VBA Excel
http://remigueudelot.free.fr/

Spero di aver risposto bene alla tua domanda.
Rémi.

"Ricky" <Rick...@libero.it> a écrit dans le message de

news:atT%e.7478$ID6.1...@twister2.libero.it...

=SOSTITUISCI(SOSTITUISCI(M7;(SINISTRA(M7;RICERCA("Nome:";M7)-1));"");STRINGA
.ESTRAI(M7;RICERCA("Data
> segnalazione:";M7);200);"")
>
> Ricky
>
>


Ricky

unread,
Oct 2, 2005, 12:29:16 PM10/2/05
to

"Rémi" <masremi(senza)@aol.com> ha scritto nel messaggio
news:%237R0ls2...@TK2MSFTNGP09.phx.gbl...

> Ciao,
>
> Forse avevo mal capito allora ... L'importante sia che abbia risolto !!!
> Mi piacerebbe comunque sapere il perchè di questa limite di 630 caratteri
> ?!

Ciao Rèmi,
vorrei sapere anch'io il perchè di questo limite....! Mah!
Nel mio post iniziale,
ho riportato il codice che prende il valore della formula da te e me
realizzata,
e che dà errore se il "body" è superiore a 770 caratteri.

A presto e grazie ancora
Ricky


0 new messages